From b9a6426c1a40acf90e834e0d3fc058571081e4dd Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: Sun, 15 Dec 2024 00:22:21 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4=E4=BB=A3=E5=8A=9E?= =?UTF-8?q?=E4=BA=BA=E6=9F=A5=E8=AF=A2=E9=94=99=E8=AF=AF=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FlwInstanceServiceImpl.java | 2 +- .../dromara/workflow/utils/WorkflowUtils.java | 15 +++++++---- script/bpmn/leave3.xml | 27 +++++++++++++++++++ 3 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 script/bpmn/leave3.xml diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java index 93bd21494..8095defeb 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java @@ -257,7 +257,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService { for (FlowHisTaskVo flowHisTaskVo : flowHisTaskVos) { flowHisTaskVo.setFlowStatus(TaskStatusEnum.WAITING.getStatus()); flowHisTaskVo.setUpdateTime(null); - List allUser = flwTaskService.currentTaskAllUser(flowHisTaskVo.getTaskId()); + List allUser = flwTaskService.currentTaskAllUser(flowHisTaskVo.getId()); if (CollUtil.isNotEmpty(allUser)) { String join = StreamUtils.join(allUser, e -> String.valueOf(e.getUserId())); flowHisTaskVo.setApprover(join); diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java index 0f50f2171..f16abb78c 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java @@ -63,17 +63,22 @@ public class WorkflowUtils { return Set.of(); } Set list = new HashSet<>(); + Set processedBySet = new HashSet<>(); for (User user : userList) { // 根据 processedBy 前缀判断处理人类型,分别获取用户列表 List users = taskAssigneeService.fetchUsersByStorageId(user.getProcessedBy()); // 转换为 FlowUser 并添加到结果集合 if (CollUtil.isNotEmpty(users)) { users.forEach(dto -> { - FlowUser flowUser = new FlowUser(); - flowUser.setType(user.getType()); - flowUser.setProcessedBy(String.valueOf(dto.getUserId())); - flowUser.setAssociated(taskId); - list.add(flowUser); + String processedBy = String.valueOf(dto.getUserId()); + if (!processedBySet.contains(processedBy)) { + FlowUser flowUser = new FlowUser(); + flowUser.setType(user.getType()); + flowUser.setProcessedBy(processedBy); + flowUser.setAssociated(taskId); + list.add(flowUser); + processedBySet.add(processedBy); + } }); } } diff --git a/script/bpmn/leave3.xml b/script/bpmn/leave3.xml new file mode 100644 index 000000000..dcb385ee6 --- /dev/null +++ b/script/bpmn/leave3.xml @@ -0,0 +1,27 @@ + + + + + b7bbb571-06de-455c-8083-f83c07bf0b99 + + + 84d7ed24-bb44-4ba1-bf1f-e6f5092d3f0a + + + 4b7743cd-940c-431b-926f-e7b614fbf1fe + 762cb975-37d8-4276-b6db-79a4c3606394 + + + b66b6563-f9fe-41cc-a782-f7837bb6f3d2 + + + 23e7429e-2b47-4431-b93e-40db7c431ce6 + + + f5ace37f-5a5e-4e64-a6f6-913ab9a71cd1 + + + + b66b6563-f9fe-41cc-a782-f7837bb6f3d2 + +