From 878cd7e9f03e1268e198942849c436efbf042d99 Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: Sat, 12 Apr 2025 17:22:44 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E6=B5=81=E7=94=A8=E6=88=B7=E6=9F=A5=E8=AF=A2=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FlwCommonServiceImpl.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java index 9f92a154c..df4893d9b 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java @@ -36,10 +36,7 @@ import org.dromara.workflow.service.IFlwTaskAssigneeService; import org.dromara.workflow.service.IFlwTaskService; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; @@ -83,16 +80,19 @@ public class FlwCommonServiceImpl implements IFlwCommonService { Set list = new HashSet<>(); Set processedBySet = new HashSet<>(); IFlwTaskAssigneeService taskAssigneeService = SpringUtils.getBean(IFlwTaskAssigneeService.class); - for (User user : userList) { + Map> userListMap = StreamUtils.groupByKey(userList, User::getType); + for (Map.Entry> entry : userListMap.entrySet()) { + List entryValue = entry.getValue(); + String processedBys = StreamUtils.join(entryValue, User::getProcessedBy); // 根据 processedBy 前缀判断处理人类型,分别获取用户列表 - List users = taskAssigneeService.fetchUsersByStorageId(user.getProcessedBy()); + List users = taskAssigneeService.fetchUsersByStorageId(processedBys); // 转换为 FlowUser 并添加到结果集合 if (CollUtil.isNotEmpty(users)) { users.forEach(dto -> { String processedBy = String.valueOf(dto.getUserId()); if (!processedBySet.contains(processedBy)) { FlowUser flowUser = new FlowUser(); - flowUser.setType(user.getType()); + flowUser.setType(entry.getKey()); flowUser.setProcessedBy(processedBy); flowUser.setAssociated(taskId); list.add(flowUser);