mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 08:13:44 +08:00 
			
		
		
		
	update 优化工作流用户查询构建
This commit is contained in:
		@@ -36,10 +36,7 @@ import org.dromara.workflow.service.IFlwTaskAssigneeService;
 | 
				
			|||||||
import org.dromara.workflow.service.IFlwTaskService;
 | 
					import org.dromara.workflow.service.IFlwTaskService;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.*;
 | 
				
			||||||
import java.util.HashSet;
 | 
					 | 
				
			||||||
import java.util.List;
 | 
					 | 
				
			||||||
import java.util.Set;
 | 
					 | 
				
			||||||
import java.util.stream.Collectors;
 | 
					import java.util.stream.Collectors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -83,16 +80,19 @@ public class FlwCommonServiceImpl implements IFlwCommonService {
 | 
				
			|||||||
        Set<User> list = new HashSet<>();
 | 
					        Set<User> list = new HashSet<>();
 | 
				
			||||||
        Set<String> processedBySet = new HashSet<>();
 | 
					        Set<String> processedBySet = new HashSet<>();
 | 
				
			||||||
        IFlwTaskAssigneeService taskAssigneeService = SpringUtils.getBean(IFlwTaskAssigneeService.class);
 | 
					        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 前缀判断处理人类型,分别获取用户列表
 | 
					            // 根据 processedBy 前缀判断处理人类型,分别获取用户列表
 | 
				
			||||||
            List<UserDTO> users = taskAssigneeService.fetchUsersByStorageId(user.getProcessedBy());
 | 
					            List<UserDTO> users = taskAssigneeService.fetchUsersByStorageId(processedBys);
 | 
				
			||||||
            // 转换为 FlowUser 并添加到结果集合
 | 
					            // 转换为 FlowUser 并添加到结果集合
 | 
				
			||||||
            if (CollUtil.isNotEmpty(users)) {
 | 
					            if (CollUtil.isNotEmpty(users)) {
 | 
				
			||||||
                users.forEach(dto -> {
 | 
					                users.forEach(dto -> {
 | 
				
			||||||
                    String processedBy = String.valueOf(dto.getUserId());
 | 
					                    String processedBy = String.valueOf(dto.getUserId());
 | 
				
			||||||
                    if (!processedBySet.contains(processedBy)) {
 | 
					                    if (!processedBySet.contains(processedBy)) {
 | 
				
			||||||
                        FlowUser flowUser = new FlowUser();
 | 
					                        FlowUser flowUser = new FlowUser();
 | 
				
			||||||
                        flowUser.setType(user.getType());
 | 
					                        flowUser.setType(entry.getKey());
 | 
				
			||||||
                        flowUser.setProcessedBy(processedBy);
 | 
					                        flowUser.setProcessedBy(processedBy);
 | 
				
			||||||
                        flowUser.setAssociated(taskId);
 | 
					                        flowUser.setAssociated(taskId);
 | 
				
			||||||
                        list.add(flowUser);
 | 
					                        list.add(flowUser);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user