From d598f1bf0f4fd3d7d56d2d6c76e60ef071b903c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=8C=E5=85=88=E8=88=9C?= <2499071264@qq.com> Date: Fri, 23 Oct 2026 17:12:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=A1=A5=E5=85=85=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../budwk/app/base/constant/RoleConstant.java | 5 ++ ...wBranchUnionPublicityCommitteeHandler.java | 54 +++++++++++++++++++ ...FlowBranchUnionSportsCommitteeHandler.java | 54 +++++++++++++++++++ ...lowBranchUnionWelfareCommitteeHandler.java | 54 +++++++++++++++++++ ...wBranchUnionWomenWorkCommitteeHandler.java | 54 +++++++++++++++++++ ...wBranchUnionYouthWorkCommitteeHandler.java | 54 +++++++++++++++++++ 6 files changed, 275 insertions(+) create mode 100644 src/main/java/com/budwk/app/flow/handler/FlowBranchUnionPublicityCommitteeHandler.java create mode 100644 src/main/java/com/budwk/app/flow/handler/FlowBranchUnionSportsCommitteeHandler.java create mode 100644 src/main/java/com/budwk/app/flow/handler/FlowBranchUnionWelfareCommitteeHandler.java create mode 100644 src/main/java/com/budwk/app/flow/handler/FlowBranchUnionWomenWorkCommitteeHandler.java create mode 100644 src/main/java/com/budwk/app/flow/handler/FlowBranchUnionYouthWorkCommitteeHandler.java diff --git a/src/main/java/com/budwk/app/base/constant/RoleConstant.java b/src/main/java/com/budwk/app/base/constant/RoleConstant.java index 5c11041..ab3f6e9 100644 --- a/src/main/java/com/budwk/app/base/constant/RoleConstant.java +++ b/src/main/java/com/budwk/app/base/constant/RoleConstant.java @@ -50,6 +50,11 @@ RoleConstant { BRANCH_UNION_SHENGGHUO_WY("分工会生活委员"), BRANCH_UNION_TIAOJIE_WY("分工会调解委员"), BRANCH_UNION_WENTI_SPORTS("分工会文体福利委员"), + BRANCH_UNION_YOUTH_WORK_COMMITTEE("分工会青工委委员"), + BRANCH_UNION_WOMEN_WORK_COMMITTEE("分工会女工委委员"), + BRANCH_UNION_WELFARE_COMMITTEE("分工会福利委员"), + BRANCH_UNION_SPORTS_COMMITTEE("分工会文体委员"), + BRANCH_UNION_PUBLICITY_COMMITTEE("分工会宣传委员"), UNIT_PARTY_SECRETARY("单位党委书记"), diff --git a/src/main/java/com/budwk/app/flow/handler/FlowBranchUnionPublicityCommitteeHandler.java b/src/main/java/com/budwk/app/flow/handler/FlowBranchUnionPublicityCommitteeHandler.java new file mode 100644 index 0000000..ef01109 --- /dev/null +++ b/src/main/java/com/budwk/app/flow/handler/FlowBranchUnionPublicityCommitteeHandler.java @@ -0,0 +1,54 @@ +package com.budwk.app.flow.handler; + +import cn.hutool.core.util.StrUtil; +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; +import com.budwk.app.flow.engine.model.TaskModel; +import com.budwk.app.sys.models.Sys_role; +import com.budwk.app.sys.models.Sys_user_role; +import com.budwk.app.sys.services.SysRoleService; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; + +import java.util.List; + +public class FlowBranchUnionPublicityCommitteeHandler implements AssignmentHandler { + @Override + public List assign(TaskModel model, Execution execution) { + Dao dao = ServiceContext.find(Dao.class); + SysRoleService sysRoleService = ServiceContext.find(SysRoleService.class); + Sys_role role = sysRoleService.getByCode(RoleConstant.BRANCH_UNION_PUBLICITY_COMMITTEE); + if (role == null || role.isDisabled()) { + throw new BaseException("分工会宣传委员角色未配置或已禁用,请联系校工会!"); + } + String unionId = StrUtil.blankToDefault(execution.getArgs().getStr(FlowConst.INITIATOR_UNIT_UNION_ID), SecurityUtil.getUnionId()); + if (StrUtil.isBlank(unionId)) { + throw new BaseException("无法确定所属分工会,请联系校工会!"); + } + List relations = dao.query(Sys_user_role.class, + Cnd.where(Sys_user_role::getRoleId, "=", role.getId()) + .and(Sys_user_role::getUnionId, "=", unionId) + .and(Sys_user_role::getEnable, "=", true)); + List userIds = relations.stream().map(Sys_user_role::getUserId) + .filter(StrUtil::isNotBlank).distinct().toList(); + if (userIds.isEmpty()) { + throw new BaseException("分工会宣传委员没有设置,请联系校工会!"); + } + return userIds; + } + + @Override + public String getMessage() { + return "流程发起人所属分工会宣传委员"; + } + + @Override + public int getOrder() { + return 15; + } +} diff --git a/src/main/java/com/budwk/app/flow/handler/FlowBranchUnionSportsCommitteeHandler.java b/src/main/java/com/budwk/app/flow/handler/FlowBranchUnionSportsCommitteeHandler.java new file mode 100644 index 0000000..f89a454 --- /dev/null +++ b/src/main/java/com/budwk/app/flow/handler/FlowBranchUnionSportsCommitteeHandler.java @@ -0,0 +1,54 @@ +package com.budwk.app.flow.handler; + +import cn.hutool.core.util.StrUtil; +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; +import com.budwk.app.flow.engine.model.TaskModel; +import com.budwk.app.sys.models.Sys_role; +import com.budwk.app.sys.models.Sys_user_role; +import com.budwk.app.sys.services.SysRoleService; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; + +import java.util.List; + +public class FlowBranchUnionSportsCommitteeHandler implements AssignmentHandler { + @Override + public List assign(TaskModel model, Execution execution) { + Dao dao = ServiceContext.find(Dao.class); + SysRoleService sysRoleService = ServiceContext.find(SysRoleService.class); + Sys_role role = sysRoleService.getByCode(RoleConstant.BRANCH_UNION_SPORTS_COMMITTEE); + if (role == null || role.isDisabled()) { + throw new BaseException("分工会文体委员角色未配置或已禁用,请联系校工会!"); + } + String unionId = StrUtil.blankToDefault(execution.getArgs().getStr(FlowConst.INITIATOR_UNIT_UNION_ID), SecurityUtil.getUnionId()); + if (StrUtil.isBlank(unionId)) { + throw new BaseException("无法确定所属分工会,请联系校工会!"); + } + List relations = dao.query(Sys_user_role.class, + Cnd.where(Sys_user_role::getRoleId, "=", role.getId()) + .and(Sys_user_role::getUnionId, "=", unionId) + .and(Sys_user_role::getEnable, "=", true)); + List userIds = relations.stream().map(Sys_user_role::getUserId) + .filter(StrUtil::isNotBlank).distinct().toList(); + if (userIds.isEmpty()) { + throw new BaseException("分工会文体委员没有设置,请联系校工会!"); + } + return userIds; + } + + @Override + public String getMessage() { + return "流程发起人所属分工会文体委员"; + } + + @Override + public int getOrder() { + return 14; + } +} diff --git a/src/main/java/com/budwk/app/flow/handler/FlowBranchUnionWelfareCommitteeHandler.java b/src/main/java/com/budwk/app/flow/handler/FlowBranchUnionWelfareCommitteeHandler.java new file mode 100644 index 0000000..ddf0c1f --- /dev/null +++ b/src/main/java/com/budwk/app/flow/handler/FlowBranchUnionWelfareCommitteeHandler.java @@ -0,0 +1,54 @@ +package com.budwk.app.flow.handler; + +import cn.hutool.core.util.StrUtil; +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; +import com.budwk.app.flow.engine.model.TaskModel; +import com.budwk.app.sys.models.Sys_role; +import com.budwk.app.sys.models.Sys_user_role; +import com.budwk.app.sys.services.SysRoleService; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; + +import java.util.List; + +public class FlowBranchUnionWelfareCommitteeHandler implements AssignmentHandler { + @Override + public List assign(TaskModel model, Execution execution) { + Dao dao = ServiceContext.find(Dao.class); + SysRoleService sysRoleService = ServiceContext.find(SysRoleService.class); + Sys_role role = sysRoleService.getByCode(RoleConstant.BRANCH_UNION_WELFARE_COMMITTEE); + if (role == null || role.isDisabled()) { + throw new BaseException("分工会福利委员角色未配置或已禁用,请联系校工会!"); + } + String unionId = StrUtil.blankToDefault(execution.getArgs().getStr(FlowConst.INITIATOR_UNIT_UNION_ID), SecurityUtil.getUnionId()); + if (StrUtil.isBlank(unionId)) { + throw new BaseException("无法确定所属分工会,请联系校工会!"); + } + List relations = dao.query(Sys_user_role.class, + Cnd.where(Sys_user_role::getRoleId, "=", role.getId()) + .and(Sys_user_role::getUnionId, "=", unionId) + .and(Sys_user_role::getEnable, "=", true)); + List userIds = relations.stream().map(Sys_user_role::getUserId) + .filter(StrUtil::isNotBlank).distinct().toList(); + if (userIds.isEmpty()) { + throw new BaseException("分工会福利委员没有设置,请联系校工会!"); + } + return userIds; + } + + @Override + public String getMessage() { + return "流程发起人所属分工会福利委员"; + } + + @Override + public int getOrder() { + return 13; + } +} diff --git a/src/main/java/com/budwk/app/flow/handler/FlowBranchUnionWomenWorkCommitteeHandler.java b/src/main/java/com/budwk/app/flow/handler/FlowBranchUnionWomenWorkCommitteeHandler.java new file mode 100644 index 0000000..e088410 --- /dev/null +++ b/src/main/java/com/budwk/app/flow/handler/FlowBranchUnionWomenWorkCommitteeHandler.java @@ -0,0 +1,54 @@ +package com.budwk.app.flow.handler; + +import cn.hutool.core.util.StrUtil; +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; +import com.budwk.app.flow.engine.model.TaskModel; +import com.budwk.app.sys.models.Sys_role; +import com.budwk.app.sys.models.Sys_user_role; +import com.budwk.app.sys.services.SysRoleService; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; + +import java.util.List; + +public class FlowBranchUnionWomenWorkCommitteeHandler implements AssignmentHandler { + @Override + public List assign(TaskModel model, Execution execution) { + Dao dao = ServiceContext.find(Dao.class); + SysRoleService sysRoleService = ServiceContext.find(SysRoleService.class); + Sys_role role = sysRoleService.getByCode(RoleConstant.BRANCH_UNION_WOMEN_WORK_COMMITTEE); + if (role == null || role.isDisabled()) { + throw new BaseException("分工会女工委委员角色未配置或已禁用,请联系校工会!"); + } + String unionId = StrUtil.blankToDefault(execution.getArgs().getStr(FlowConst.INITIATOR_UNIT_UNION_ID), SecurityUtil.getUnionId()); + if (StrUtil.isBlank(unionId)) { + throw new BaseException("无法确定所属分工会,请联系校工会!"); + } + List relations = dao.query(Sys_user_role.class, + Cnd.where(Sys_user_role::getRoleId, "=", role.getId()) + .and(Sys_user_role::getUnionId, "=", unionId) + .and(Sys_user_role::getEnable, "=", true)); + List userIds = relations.stream().map(Sys_user_role::getUserId) + .filter(StrUtil::isNotBlank).distinct().toList(); + if (userIds.isEmpty()) { + throw new BaseException("分工会女工委委员没有设置,请联系校工会!"); + } + return userIds; + } + + @Override + public String getMessage() { + return "流程发起人所属分工会女工委委员"; + } + + @Override + public int getOrder() { + return 12; + } +} diff --git a/src/main/java/com/budwk/app/flow/handler/FlowBranchUnionYouthWorkCommitteeHandler.java b/src/main/java/com/budwk/app/flow/handler/FlowBranchUnionYouthWorkCommitteeHandler.java new file mode 100644 index 0000000..3f32f2a --- /dev/null +++ b/src/main/java/com/budwk/app/flow/handler/FlowBranchUnionYouthWorkCommitteeHandler.java @@ -0,0 +1,54 @@ +package com.budwk.app.flow.handler; + +import cn.hutool.core.util.StrUtil; +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; +import com.budwk.app.flow.engine.model.TaskModel; +import com.budwk.app.sys.models.Sys_role; +import com.budwk.app.sys.models.Sys_user_role; +import com.budwk.app.sys.services.SysRoleService; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; + +import java.util.List; + +public class FlowBranchUnionYouthWorkCommitteeHandler implements AssignmentHandler { + @Override + public List assign(TaskModel model, Execution execution) { + Dao dao = ServiceContext.find(Dao.class); + SysRoleService sysRoleService = ServiceContext.find(SysRoleService.class); + Sys_role role = sysRoleService.getByCode(RoleConstant.BRANCH_UNION_YOUTH_WORK_COMMITTEE); + if (role == null || role.isDisabled()) { + throw new BaseException("分工会青工委委员角色未配置或已禁用,请联系校工会!"); + } + String unionId = StrUtil.blankToDefault(execution.getArgs().getStr(FlowConst.INITIATOR_UNIT_UNION_ID), SecurityUtil.getUnionId()); + if (StrUtil.isBlank(unionId)) { + throw new BaseException("无法确定所属分工会,请联系校工会!"); + } + List relations = dao.query(Sys_user_role.class, + Cnd.where(Sys_user_role::getRoleId, "=", role.getId()) + .and(Sys_user_role::getUnionId, "=", unionId) + .and(Sys_user_role::getEnable, "=", true)); + List userIds = relations.stream().map(Sys_user_role::getUserId) + .filter(StrUtil::isNotBlank).distinct().toList(); + if (userIds.isEmpty()) { + throw new BaseException("分工会青工委委员没有设置,请联系校工会!"); + } + return userIds; + } + + @Override + public String getMessage() { + return "流程发起人所属分工会青工委委员"; + } + + @Override + public int getOrder() { + return 11; + } +}