From 9e84b050bf1bd8679f1a3512149c20317ff6c35e Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 22 Aug 2025 11:10:52 +0800 Subject: [PATCH] =?UTF-8?q?refactor(klp-flowable):=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E4=B8=8B=E4=B8=80=E4=B8=AA=E5=A4=84=E7=90=86=E4=BA=BA=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E5=8A=9F=E8=83=BD-=20=E5=88=A0=E9=99=A4=E4=BA=86=20Ne?= =?UTF-8?q?xtUserSelector=20=E7=B1=BB-=20=E7=A7=BB=E9=99=A4=E4=BA=86=20Use?= =?UTF-8?q?rTaskListener=20=E4=B8=AD=E5=85=B3=E4=BA=8E=E4=B8=8B=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E5=A4=84=E7=90=86=E4=BA=BA=E7=9A=84=E9=80=BB=E8=BE=91?= =?UTF-8?q?=20-=20=E5=88=A0=E9=99=A4=E4=BA=86=20WfTaskServiceImpl=20?= =?UTF-8?q?=E4=B8=AD=E4=BF=9D=E5=AD=98=E4=B8=8B=E4=B8=80=E4=B8=AA=E5=A4=84?= =?UTF-8?q?=E7=90=86=E4=BA=BA=E5=88=B0=E6=B5=81=E7=A8=8B=E5=8F=98=E9=87=8F?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=A0=81=E8=BF=99=E4=B8=AA=E6=94=B9=E5=8A=A8?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E4=BA=86=E7=94=A8=E6=88=B7=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E9=80=89=E6=8B=A9=E4=B8=8B=E4=B8=80=E4=B8=AA=E5=A4=84?= =?UTF-8?q?=E7=90=86=E4=BA=BA=E7=9A=84=E5=8A=9F=E8=83=BD=EF=BC=8C=E7=AE=80?= =?UTF-8?q?=E5=8C=96=E4=BA=86=E7=B3=BB=E7=BB=9F=E6=9E=B6=E6=9E=84=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flowable/listener/UserTaskListener.java | 21 +----- .../klp/flowable/utils/NextUserSelector.java | 68 ------------------- .../service/impl/WfTaskServiceImpl.java | 12 ---- 3 files changed, 2 insertions(+), 99 deletions(-) delete mode 100644 klp-flowable/src/main/java/com/klp/flowable/utils/NextUserSelector.java diff --git a/klp-flowable/src/main/java/com/klp/flowable/listener/UserTaskListener.java b/klp-flowable/src/main/java/com/klp/flowable/listener/UserTaskListener.java index eeb17de1..ec3cb85f 100644 --- a/klp-flowable/src/main/java/com/klp/flowable/listener/UserTaskListener.java +++ b/klp-flowable/src/main/java/com/klp/flowable/listener/UserTaskListener.java @@ -4,7 +4,7 @@ import org.flowable.engine.delegate.TaskListener; import org.flowable.task.service.delegate.DelegateTask; import org.springframework.stereotype.Component; -import java.util.Map; + /** * 用户任务监听器 @@ -23,23 +23,6 @@ public class UserTaskListener implements TaskListener { @Override public void notify(DelegateTask delegateTask) { System.out.println("执行任务监听器..."); - - // 检查是否有指定的下一个处理人 - Map variables = delegateTask.getVariables(); - if (variables.containsKey("nextUserIds")) { - String nextUserIds = (String) variables.get("nextUserIds"); - if (nextUserIds != null && !nextUserIds.isEmpty()) { - // 设置任务的处理人 - String[] userIds = nextUserIds.split(","); - if (userIds.length > 0) { - delegateTask.setAssignee(userIds[0]); - } - // 如果有多个处理人,可以设置为候选人 - for (int i = 1; i < userIds.length; i++) { - delegateTask.addCandidateUser(userIds[i]); - } - } - } - } + } } diff --git a/klp-flowable/src/main/java/com/klp/flowable/utils/NextUserSelector.java b/klp-flowable/src/main/java/com/klp/flowable/utils/NextUserSelector.java deleted file mode 100644 index bc6e33ca..00000000 --- a/klp-flowable/src/main/java/com/klp/flowable/utils/NextUserSelector.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.klp.flowable.utils; - -import org.flowable.engine.RuntimeService; -import org.flowable.engine.TaskService; -import org.flowable.task.api.Task; -import org.springframework.stereotype.Component; - -import java.util.HashMap; -import java.util.Map; - -/** - * 下一个处理人选择器 - * 用于处理用户自定义选择下一个处理人的逻辑 - * - * @author CodeBuddy - * @since 2025/8/22 - */ -@Component -public class NextUserSelector { - - private final TaskService taskService; - private final RuntimeService runtimeService; - - public NextUserSelector(TaskService taskService, RuntimeService runtimeService) { - this.taskService = taskService; - this.runtimeService = runtimeService; - } - - /** - * 设置下一个任务的处理人 - * - * @param taskId 当前任务ID - * @param nextUserIds 下一个处理人ID,多个用逗号分隔 - */ - public void setNextTaskUsers(String taskId, String nextUserIds) { - if (nextUserIds == null || nextUserIds.isEmpty()) { - return; - } - - Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); - if (task == null) { - return; - } - - // 设置流程变量,在任务完成后传递给下一个任务 - Map variables = new HashMap<>(); - variables.put("nextUserIds", nextUserIds); - - // 更新流程实例变量 - runtimeService.setVariables(task.getExecutionId(), variables); - } - - /** - * 获取当前任务的指定处理人 - * - * @param taskId 任务ID - * @return 指定的处理人ID,多个用逗号分隔 - */ - public String getNextTaskUsers(String taskId) { - Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); - if (task == null) { - return null; - } - - Object nextUserIds = runtimeService.getVariable(task.getExecutionId(), "nextUserIds"); - return nextUserIds != null ? nextUserIds.toString() : null; - } -} \ No newline at end of file diff --git a/klp-system/src/main/java/com/klp/workflow/service/impl/WfTaskServiceImpl.java b/klp-system/src/main/java/com/klp/workflow/service/impl/WfTaskServiceImpl.java index 1a26bde5..5bee9e87 100644 --- a/klp-system/src/main/java/com/klp/workflow/service/impl/WfTaskServiceImpl.java +++ b/klp-system/src/main/java/com/klp/workflow/service/impl/WfTaskServiceImpl.java @@ -74,18 +74,6 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ // 获取 bpmn 模型 BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId()); identityService.setAuthenticatedUserId(TaskUtils.getUserId()); - - // 处理下一级审批人,将用户选择的下一个处理人保存到流程变量中 - if (StringUtils.isNotBlank(taskBo.getNextUserIds())) { - // 如果有指定下一个处理人,则将其保存到流程变量中 - Map variables = taskBo.getVariables(); - if (variables == null) { - variables = new HashMap<>(); - taskBo.setVariables(variables); - } - variables.put("nextUserIds", taskBo.getNextUserIds()); - } - if (DelegationState.PENDING.equals(task.getDelegationState())) { taskService.addComment(taskBo.getTaskId(), taskBo.getProcInsId(), FlowComment.DELEGATE.getType(), taskBo.getComment()); taskService.resolveTask(taskBo.getTaskId());