update 优化工作流用户查询构建
This commit is contained in:
parent
5c9721cfac
commit
878cd7e9f0
@ -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<User> list = new HashSet<>();
|
||||
Set<String> processedBySet = new HashSet<>();
|
||||
IFlwTaskAssigneeService taskAssigneeService = SpringUtils.getBean(IFlwTaskAssigneeService.class);
|
||||
for (User user : userList) {
|
||||
Map<String, List<User>> userListMap = StreamUtils.groupByKey(userList, User::getType);
|
||||
for (Map.Entry<String, List<User>> entry : userListMap.entrySet()) {
|
||||
List<User> entryValue = entry.getValue();
|
||||
String processedBys = StreamUtils.join(entryValue, User::getProcessedBy);
|
||||
// 根据 processedBy 前缀判断处理人类型,分别获取用户列表
|
||||
List<UserDTO> users = taskAssigneeService.fetchUsersByStorageId(user.getProcessedBy());
|
||||
List<UserDTO> 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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user