| 
					
				 | 
			
			
				@@ -14,6 +14,7 @@ import com.ankaibei.workFlow.webadmin.ankaibei.entity.ProjectInfoEntity; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ankaibei.workFlow.webadmin.ankaibei.entity.TaskInfoEntity; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ankaibei.workFlow.webadmin.ankaibei.entity.UserInfoEntity; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ankaibei.workFlow.webadmin.ankaibei.enums.CodeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ankaibei.workFlow.webadmin.ankaibei.enums.TaskPriority; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ankaibei.workFlow.webadmin.ankaibei.mapper.ProjectInfoMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ankaibei.workFlow.webadmin.ankaibei.mapper.TaskInfoMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ankaibei.workFlow.webadmin.ankaibei.mapper.UserInfoMapper; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -21,6 +22,7 @@ import com.ankaibei.workFlow.webadmin.ankaibei.service.TaskInfoService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ankaibei.workFlow.webadmin.ankaibei.utils.FlowTaskStart; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ankaibei.workFlow.webadmin.ankaibei.vo.ResMsg; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ankaibei.workFlow.webadmin.ankaibei.vo.TaskInfoVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.commons.lang3.ObjectUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.data.domain.Page; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.data.domain.PageRequest; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -30,6 +32,7 @@ import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.annotation.Resource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * @author lwq 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -53,24 +56,54 @@ public class TaskInfoServiceImpl implements TaskInfoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public ResMsg findTaskInfo(Integer pageIndex, Integer pageSize, TaskInfoEntity taskInfoEntity) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Pageable page = PageRequest.of(pageIndex - 1, pageSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Page<Map<String, String>> all = taskInfoMapper.findTaskInfo(taskInfoEntity.getTargetTask(), taskInfoEntity.getTaskStatus(), page); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return new ResMsg(CodeEnum.OK, ResMsg.getMap(all.map(map -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Map<Object, Object> map1 = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            map1.putAll(map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String projectId = map.get("projectId"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Optional<ProjectInfoEntity> byId = projectInfoMapper.findById(Integer.valueOf(projectId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            map1.put("projectId", byId.orElse(null) != null ? byId.orElse(null).getProjectName() : null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String taskParticipant = map.get("taskParticipant"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String[] split = taskParticipant.split(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<String> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (String userId : split) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                list.add(String.valueOf(userId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //先将项目信息全部查出,再根据项目ID匹配项目名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ArrayList<Integer> projectIds = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ArrayList<String> participants = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (Map<String, String> map : all.toList()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            projectIds.add(Integer.valueOf(map.get("projectId"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            participants.add(map.get("taskParticipant")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<ProjectInfoEntity> allById = projectInfoMapper.findAllById(projectIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //先将用户信息全部查出,再根据项目ID匹配项目名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        HashMap<String, String> userMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (String s : participants) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String[] split = s.split(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<String> list = Arrays.stream(split).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<UserInfoEntity> allByUserId = userInfoMapper.findAllByUserId(list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             StringBuffer str = new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (UserInfoEntity name : allByUserId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 str.append(name.getShowName()).append(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            map1.put("taskParticipant", str.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            userMap.put(s, str.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return new ResMsg(CodeEnum.OK, ResMsg.getMap(all.map(map -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String projectId = map.get("projectId"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<Object, Object> map1 = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            map1.putAll(map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (ObjectUtils.isNotEmpty(allById)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (ProjectInfoEntity infoEntity : allById) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (projectId.equals(infoEntity.getProjectId() + "")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        map1.put("projectId", infoEntity.getProjectId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        map1.put("projectName", infoEntity.getProjectName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String taskParticipant = map.get("taskParticipant"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (ObjectUtils.isNotEmpty(userMap)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                userMap.entrySet().stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .forEach(entry -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (taskParticipant.equals(entry.getKey())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                map1.put("taskParticipant", entry.getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            map1.put("taskPriority", TaskPriority.getEnumByCode(map.get("taskPriority"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return map1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }).getContent(), all.getTotalElements())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 |