|
@@ -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()));
|
|
|
}
|