This commit is contained in:
@jyuhsin
2025-09-03 18:24:29 +08:00
parent 3110ffd35e
commit f65a2340ed
4 changed files with 31 additions and 6 deletions
@@ -1,8 +1,12 @@
package com.budwk.app.flow.handler;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.exception.BaseException;
import com.budwk.app.flow.constant.FlowConst;
import com.budwk.app.flow.engine.AssignmentHandler;
import com.budwk.app.flow.engine.core.Execution;
import com.budwk.app.flow.engine.core.ServiceContext;
@@ -10,6 +14,10 @@ import com.budwk.app.flow.engine.model.TaskModel;
import com.budwk.app.sys.models.Sys_user;
import com.budwk.app.sys.models.Sys_user_role;
import com.budwk.app.web.controllers.open.commons.service.CommonService;
import com.budwk.app.zhgh.club.model.SysClubManager;
import org.nutz.json.Json;
import org.nutz.lang.Lang;
import org.nutz.lang.util.NutMap;
import java.util.List;
@@ -19,14 +27,20 @@ import java.util.List;
public class FlowClubPresidentByArgsAssignmentHandler implements AssignmentHandler {
@Override
public List<String> assign(TaskModel model, Execution execution) {
String clubId = execution.getArgs().getStr("clubId");
if (StrUtil.isBlank(clubId)) {
String clubId = execution.getArgs().getStr("clubId");
if (StrUtil.isBlank(clubId)) {
throw new BaseException("参数 clubId 不能为空");
}
CommonService commonService = ServiceContext.find(CommonService.class);
List<Sys_user> users = commonService.findUserInfoByRoleCode(Sys_user_role::getClubId, clubId, RoleConstant.CLUB_PRESIDENT);
return users.stream().map(Sys_user::getId).toList();
if(Lang.isEmpty(users)) {
throw new BaseException("未查询到相关审批人");
}
return users.stream().map(Sys_user::getId).toList();
}
@Override
@@ -5,6 +5,7 @@ import com.budwk.app.base.service.BaseService;
import com.budwk.app.sys.models.Sys_user;
import com.budwk.app.sys.models.Sys_user_role;
import org.nutz.dao.Cnd;
import org.nutz.dao.util.lambda.PFun;
import javax.validation.Valid;
import java.util.List;
@@ -62,7 +63,7 @@ public interface CommonService extends BaseService {
*/
List<String> findUserRoleByRoleCode(@Valid List<String> roleCode);
List<Sys_user> findUserInfoByRoleCode(Function<Sys_user_role, String> column, String columnValue, RoleConstant... roleConstants);
<T> List<Sys_user> findUserInfoByRoleCode(PFun<T, ?> name, String columnValue, RoleConstant... roleConstants);
/**
@@ -14,10 +14,13 @@ import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.lambda.LambdaQuery;
import org.nutz.dao.util.lambda.PFun;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.function.Function;
@@ -85,9 +88,15 @@ public class CommonServiceImpl extends BaseServiceImpl implements CommonService
}
@Override
public List<Sys_user> findUserInfoByRoleCode(Function<Sys_user_role, String> column, String columnValue, RoleConstant... roleConstant) {
public <T> List<Sys_user> findUserInfoByRoleCode(PFun<T, ?> name, String columnValue, RoleConstant... roleConstant) {
String column = LambdaQuery.resolve(name);
return null;
List<String> list = Arrays.stream(roleConstant).map(o -> {
Sys_role role = sysRoleService.getByCode(o.name());
return role.getId();
}).toList();
return findUserInfoByRoleCode(column, columnValue, list);
}
@Override
@@ -128,6 +128,7 @@ public class ClubUserJoinApplyController {
Dict args = Dict.create();
args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode());
args.set(FlowConst.FORM_DATA, clubUserApply);
args.set("clubId", clubUserApply.getClubId());
ProcessInstance instance = flowEngine.startProcessInstanceByKey("XHRH", clubUserApply.getId(), SecurityUtil.getUserId(), args);
// 自动完成第一个申请任务