提交查询项目任务树接口

This commit is contained in:
2025-10-16 15:51:51 +08:00
parent 4c4a7aa602
commit 0e0deefa6e
11 changed files with 293 additions and 152 deletions

View File

@@ -29,7 +29,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 192.168.65.161:8848
server-addr: 127.0.0.1:8848
# server-addr: 127.0.0.1:8848
enabled: true
# username: nacos

View File

@@ -57,7 +57,7 @@ public class TaskNode extends BaseEntity {
/**
* 项目进度状态(未开始、进行中、已完成)
*/
private Integer exeStatus;
private String exeStatus;
private String exeStatusValue;

View File

@@ -1,6 +1,7 @@
package com.sdm.project.model.po;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.sdm.common.entity.pojo.BaseEntity;
import lombok.Data;
@@ -116,7 +117,7 @@ public class NodeAllBase extends BaseEntity {
/**
* 项目进度状态(未开始、进行中、已完成)
*/
private Integer exeStatus;
private String exeStatus;
private String exeStatusValue;
@@ -190,4 +191,25 @@ public class NodeAllBase extends BaseEntity {
public String extras;
@JsonProperty(value = "Tag1")
private String Tag1;
@JsonProperty(value = "Tag2")
private String Tag2;
@JsonProperty(value = "Tag3")
private String Tag3;
@JsonProperty(value = "Tag4")
private String Tag4;
@JsonProperty(value = "Tag5")
private String Tag5;
@JsonProperty(value = "Tag6")
private String Tag6;
@JsonProperty(value = "Tag7")
private String Tag7;
@JsonProperty(value = "Tag8")
private String Tag8;
@JsonProperty(value = "Tag9")
private String Tag9;
@JsonProperty(value = "Tag10")
private String Tag10;
}

View File

@@ -38,11 +38,6 @@ public class TaskNodePo extends NodeAllBase {
*/
private String taskCode;
/**
* 项目进度状态(未开始、进行中、已完成)
*/
private Integer exeStatus;
private String exeStatusValue;
/**

View File

@@ -36,20 +36,36 @@ public class SpdmTaskListReq {
*/
private String achieveStatus;
private Integer status;
/**
* 任务进度
*/
private Integer process;
/**
* 仿真负责人
*/
@JsonProperty(value = "pMemberList")
private String pMemberList;
@JsonProperty(value = "pMemberIdList")
private Integer pMemberIdList;
/**
* 仿真执行人
*/
@JsonProperty(value = "eMemberList")
private String eMemberList;
@JsonProperty(value = "eMemberIdList")
private Integer eMemberIdList;
/**
* 项目名称
*/
private String projectName;
/**
* 阶段名称
*/
private String phaseName;
/**
* 学科名称
*/
private String disciplineName;
}

View File

@@ -662,7 +662,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
private void createDir(Long nodeId, Long parentNodeId, String dirName) {
CreateDirReq createDirReq = new CreateDirReq();
createDirReq.setNodeId(nodeId.intValue());
createDirReq.setParentNodeId(parentNodeId.intValue());
createDirReq.setParentNodeId(ObjectUtils.isNotEmpty(parentNodeId) ? parentNodeId.intValue() : null);
createDirReq.setDirName(dirName);
log.info("创建项目阶段时,调用创建文件夹的参数为:{}", createDirReq);
SdmResponse response = dataClientFeignClient.createDir(createDirReq);

View File

@@ -16,6 +16,7 @@ import com.sdm.project.dao.SimulationProjectMapper;
import com.sdm.project.model.bo.*;
import com.sdm.project.model.po.*;
import com.sdm.project.model.req.*;
import com.sdm.project.model.vo.SpdmAnalysisTaskVo;
import com.sdm.project.service.IProjectService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@@ -68,6 +69,8 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
Map<String, String> taskTreeNodeTypeTagMap;
Map<String,List<ProjectNodePo>> taskTreeProjectNodeMap = new HashMap<>();
@Override
@Transactional
public SdmResponse add(JSONObject jsonObject) {
@@ -261,9 +264,15 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
}
log.info("查询到的节点为:{}", taskTreeNodeList.stream().map(ProjectNodePo::getId).toList());
taskTreeTaskList = mapper.getTaskListByTag(taskTreeReq);
log.info("查询到的任务为:{}", taskTreeTaskList.stream().map(TaskNodePo::getId).toList());
if (CollectionUtils.isNotEmpty(taskTreeTaskList)) {
log.info("查询到的任务为:{}", taskTreeTaskList.stream().map(TaskNodePo::getId).toList());
taskTreeTaskList.forEach(task -> task.setNodeType("task"));
}
taskTreePerformanceList = mapper.getPerformanceListByNodeIdList(taskTreeTaskList.stream().map(TaskNodePo::getUuid).toList());
log.info("查询到的指标为:{}", taskTreePerformanceList.stream().map(PerformanceNodePo::getId).toList());
if (CollectionUtils.isNotEmpty(taskTreePerformanceList)) {
log.info("查询到的指标为:{}", taskTreePerformanceList.stream().map(PerformanceNodePo::getId).toList());
taskTreePerformanceList.forEach(performance -> performance.setNodeType("performance"));
}
taskTreeTagMap = req.getTagMap();
log.info("taskTreeTagMap为{}", taskTreeTagMap);
if (CollectionUtils.isEmpty(taskTreeTagMap)) {
@@ -271,7 +280,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
return SdmResponse.success(new ArrayList<>());
}
// key节点类型value标签
taskTreeNodeTypeTagMap = taskTreeTagMap.stream().collect(Collectors.toMap(TaskNodeTag::getValue, TaskNodeTag::getKey));
taskTreeNodeTypeTagMap = taskTreeTagMap.stream().collect(Collectors.toMap(TaskNodeTag::getKey, TaskNodeTag::getValue));
// key标签value节点类型
taskTreeTagNodeTypeMap = taskTreeTagMap.stream().collect(Collectors.toMap(TaskNodeTag::getValue, TaskNodeTag::getKey));
log.info("taskTreeTagNodeTypeMap为{}", taskTreeTagNodeTypeMap);
@@ -319,85 +328,111 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
// }
// 如果idMap中的id都不为null说明查的是最后一层节点下的所有任务、指标
TaskNodeTag realFirstTaskNodeTag = idMapList.stream().filter(tag -> StringUtils.isBlank(tag.getKey())).findFirst().orElseGet(() -> idMapList.get(idMapList.size() - 1));
log.info("实际需要展示的最顶层节点类型为:{}id为{}", taskTreeTagNodeTypeMap.get(realFirstTaskNodeTag.getValue()), realFirstTaskNodeTag.getKey());
List<ProjectNodePo> realFirstNodeList = taskTreeNodeList.stream().filter(node -> node.getNodeType().equals(realFirstTaskNodeTag.getKey())).toList();
String realFirstNodeTagId = "";
String[] currentNodeTagIdArray;
Map<Integer,List<ProjectNodePo>> projectNodeMap = new HashMap<>();
int currentNodeDepth = 1;
int maxNodeDepth = 1;
for (ProjectNodePo realFirstNode : realFirstNodeList) {
// 根据tag中的分隔符数量来确定当前节点类型的层数层数 = 分隔符 + 1
// 找到最大层数然后去遍历
try {
realFirstNodeTagId = getTagProperty(realFirstNode, realFirstTaskNodeTag.getValue());
} catch (Exception e) {
throw new RuntimeException(e);
// TaskNodeTag realFirstTaskNodeTag = idMapList.stream().filter(tag -> StringUtils.isBlank(tag.getKey())).findFirst().orElseGet(() -> idMapList.get(idMapList.size() - 1));
TaskNodeTag realFirstTaskNodeTag = idMapList.get(idMapList.size() - 1);
for (TaskNodeTag taskNodeTag : idMapList) {
if (StringUtils.isNotBlank(taskNodeTag.getKey())) {
realFirstTaskNodeTag = taskNodeTag;
}
if (StringUtils.isBlank(realFirstNodeTagId)) {
throw new RuntimeException("查询任务树异常");
}
// if (StringUtils.isEmpty(realFirstNodeTagId)) {
// log.info("节点id{}的{}的值为空", realFirstNode.getId(), realFirstTaskNodeTag.getValue());
// continue;
// }
currentNodeDepth = realFirstNodeTagId.split(",").length + 1;
List<ProjectNodePo> currentProjectNodeList = projectNodeMap.get(currentNodeDepth);
if (CollectionUtils.isEmpty(currentProjectNodeList)) {
currentProjectNodeList = new ArrayList<>();
}
currentProjectNodeList.add(realFirstNode);
maxNodeDepth = Math.max(maxNodeDepth, currentNodeDepth);
}
log.info("节点类型为:{}的最大深度为:{},深度分别为:{},节点为:{}", realFirstTaskNodeTag.getKey(), maxNodeDepth,projectNodeMap.keySet(), realFirstNodeList);
List<ProjectNodePo> realTopProjectNodeList = projectNodeMap.get(1);
String realFirstTaskNodeType = taskTreeTagNodeTypeMap.get(realFirstTaskNodeTag.getValue());
log.info("实际需要展示的最顶层节点类型为:{}id为{}", taskTreeTagNodeTypeMap.get(realFirstTaskNodeTag.getValue()),realFirstTaskNodeType);
// List<ProjectNodePo> realFirstNodeList = taskTreeNodeList.stream().filter(node -> node.getNodeType().equals(realFirstTaskNodeType)).toList();
// String realFirstNodeTagId = "";
// int currentNodeDepth = 1;
// int maxNodeDepth = 1;
// for (ProjectNodePo realFirstNode : realFirstNodeList) {
// // 根据tag中的分隔符数量来确定当前节点类型的层数层数 = 分隔符 + 1
// // 找到最大层数然后去遍历
// try {
// realFirstNodeTagId = getTagProperty(realFirstNode, realFirstTaskNodeTag.getValue());
// } catch (Exception e) {
// throw new RuntimeException(e);
// }
// if (StringUtils.isBlank(realFirstNodeTagId)) {
// throw new RuntimeException("查询任务树异常");
// }
//// if (StringUtils.isEmpty(realFirstNodeTagId)) {
//// log.info("节点id{}的{}的值为空", realFirstNode.getId(), realFirstTaskNodeTag.getValue());
//// continue;
//// }
//
// currentNodeDepth = realFirstNodeTagId.split(",").length;
// List<ProjectNodePo> currentProjectNodeList = taskTreeProjectNodeMap.get(currentNodeDepth);
// if (CollectionUtils.isEmpty(currentProjectNodeList)) {
// currentProjectNodeList = new ArrayList<>();
// }
// currentProjectNodeList.add(realFirstNode);
// taskTreeProjectNodeMap.put(currentNodeDepth,currentProjectNodeList);
// maxNodeDepth = Math.max(maxNodeDepth, currentNodeDepth);
// }
// int currentNodeDepth = 0;
// for (ProjectNodePo eachNode : taskTreeNodeList) {
// currentNodeDepth = getCurrentNodeDepth(eachNode);
// List<ProjectNodePo> currentProjectNodeList = taskTreeProjectNodeMap.get(currentNodeDepth);
// if (CollectionUtils.isEmpty(currentProjectNodeList)) {
// currentProjectNodeList = new ArrayList<>();
// }
// currentProjectNodeList.add(eachNode);
// taskTreeProjectNodeMap.put(currentNodeDepth,currentProjectNodeList);
// }
taskTreeProjectNodeMap = taskTreeNodeList.stream().collect(Collectors.groupingBy(ProjectNodePo::getNodeType));
List<ProjectNodePo> realTopProjectNodeList = taskTreeNodeList.stream().filter(node -> node.getNodeType().equals(realFirstTaskNodeType)).toList();
for (ProjectNodePo projectNodePo : realTopProjectNodeList) {
generateTaskTree(projectNodePo);
}
// 每个nodeId都代表当前节点类型下的一层数据
// for (String nodeId : realFirstNodeTagId.split(",")) {
// // 下层数据可能为node或task或都有
// List<ProjectNodePo> childrenNodeList = generateChildrenTree(nodeId);
// ProjectNodePo currentNode = nodeList.stream().filter(node -> nodeId.equals(node.getUuid())).findFirst().get();
// currentNode.setChildren(childrenNodeList);
// projectNodeList.add(currentNode);
// }
// // 第一层
// TaskNodeTag firstTag = tagMap.get(0);
// TaskNodeTag secondTag = tagMap.get(1);
// TaskNodeTag thirdTag = tagMap.get(2);
// TaskNodeTag fourthTag = tagMap.get(3);
// TaskNodeTag fifthTag = tagMap.get(4);
//
// List<ProjectNodePo> secondNodeList = nodeList.stream().filter(node -> node.getNodeType().equals(nodeTypeMap.get(secondTag.getValue()))).toList();
// List<ProjectNodePo> thirdNodeList = nodeList.stream().filter(node -> node.getNodeType().equals(nodeTypeMap.get(thirdTag.getValue()))).toList();
// List<ProjectNodePo> fourthNodeList = nodeList.stream().filter(node -> node.getNodeType().equals(nodeTypeMap.get(fourthTag.getValue()))).toList();
// List<ProjectNodePo> fifthNodeList = nodeList.stream().filter(node -> node.getNodeType().equals(nodeTypeMap.get(fifthTag.getValue()))).toList();
// if (CollectionUtils.isNotEmpty(fifthNodeList)) {
//
// } else if (CollectionUtils.isNotEmpty(fourthNodeList)) {
//
// } else if (CollectionUtils.isNotEmpty(fourthNodeList)) {
//
// } else if (CollectionUtils.isNotEmpty(fourthNodeList)) {
//
// } else {
//
// }
return SdmResponse.success(realTopProjectNodeList);
}
private List<NodeAllBase> generateTaskTree(ProjectNodePo projectNodePo) {
private int getCurrentNodeDepth(NodeAllBase eachNode) {
String tag1 = eachNode.getTag1();
String tag2 = eachNode.getTag2();
String tag3 = eachNode.getTag3();
String tag4 = eachNode.getTag4();
String tag5 = eachNode.getTag5();
String tag6 = eachNode.getTag6();
String tag7 = eachNode.getTag7();
String tag8 = eachNode.getTag8();
String tag9 = eachNode.getTag9();
String tag10 = eachNode.getTag10();
int currentNodeDepth = 0;
if (StringUtils.isNotBlank(tag1) && !tag1.equals("null")) {
currentNodeDepth += tag1.split(",").length;
}
if (StringUtils.isNotBlank(tag2) && !tag2.equals("null")) {
currentNodeDepth += tag2.split(",").length;
}
if (StringUtils.isNotBlank(tag3) && !tag3.equals("null")) {
currentNodeDepth += tag3.split(",").length;
}
if (StringUtils.isNotBlank(tag4) && !tag4.equals("null")) {
currentNodeDepth += tag4.split(",").length;
}
if (StringUtils.isNotBlank(tag5) && !tag5.equals("null")) {
currentNodeDepth += tag5.split(",").length;
}
if (StringUtils.isNotBlank(tag6) && !tag6.equals("null")) {
currentNodeDepth += tag6.split(",").length;
}
if (StringUtils.isNotBlank(tag7) && !tag7.equals("null")) {
currentNodeDepth += tag7.split(",").length;
}
if (StringUtils.isNotBlank(tag8) && !tag8.equals("null")) {
currentNodeDepth += tag8.split(",").length;
}
if (StringUtils.isNotBlank(tag9) && !tag9.equals("null")) {
currentNodeDepth += tag9.split(",").length;
}
if (StringUtils.isNotBlank(tag10) && !tag10.equals("null")) {
currentNodeDepth += tag10.split(",").length;
}
return currentNodeDepth;
}
private void generateTaskTree(ProjectNodePo projectNodePo) {
String currentNodeType = projectNodePo.getNodeType();
String currentTag = taskTreeNodeTypeTagMap.get(currentNodeType);
String currentNodeTagId = "";
@@ -411,41 +446,109 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
}
String finalCurrentNodeTagId = currentNodeTagId;
// 查询当前节点下任务
List<TaskNodePo> currentNodeAssociatedTaskList = taskTreeTaskList.stream().filter(node -> {
try {
String nodeTagId = getTagProperty(node, currentTag);
if (StringUtils.isBlank(nodeTagId)) {
return false;
List<TaskNodePo> currentNodeAssociatedTaskList = new ArrayList<>();
int currentNodeDepth = getCurrentNodeDepth(projectNodePo);
if (CollectionUtils.isNotEmpty(taskTreeTaskList)) {
currentNodeAssociatedTaskList = taskTreeTaskList.stream().filter(node -> {
try {
String nodeTagId = getTagProperty(node, currentTag);
if (StringUtils.isBlank(nodeTagId)) {
return false;
}
// tagId相同且当前深度 = task深度 + 1
return nodeTagId.equals(finalCurrentNodeTagId) && currentNodeDepth == getCurrentNodeDepth(node);
} catch (Exception e) {
throw new RuntimeException(e);
}
return nodeTagId.equals(finalCurrentNodeTagId);
} catch (Exception e) {
throw new RuntimeException(e);
}
}).collect(Collectors.toList());
}).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(currentNodeAssociatedTaskList)) {
// 查询当前任务下指标
Map<String, TaskNodePo> taskMap = currentNodeAssociatedTaskList.stream().collect(Collectors.groupingBy(
TaskNodePo::getUuid,
Collectors.collectingAndThen(
Collectors.toList(),
list -> list.get(0)
)
));
if (CollectionUtils.isNotEmpty(taskTreePerformanceList)) {
List<PerformanceNodePo> eachPerformanceNodeList;
List<PerformanceNodePo> currentTaskAssociatedPerformanceList = taskTreePerformanceList.stream().filter(performance -> ObjectUtils.isNotEmpty(taskMap.get(performance.getTaskId()))).toList();
if (CollectionUtils.isNotEmpty(currentTaskAssociatedPerformanceList)) {
Map<String, List<PerformanceNodePo>> performanceMap = currentTaskAssociatedPerformanceList.stream().collect(Collectors.groupingBy(PerformanceNodePo::getTaskId));
for (TaskNodePo taskNodePo : currentNodeAssociatedTaskList) {
eachPerformanceNodeList = performanceMap.get(taskNodePo.getUuid());
if (CollectionUtils.isNotEmpty(eachPerformanceNodeList)) {
taskNodePo.getChildren().addAll(eachPerformanceNodeList);
}
}
}
}
}
}
// 查询子节点,可能是同类型节点也可能是不同类型节点
// 先查同类型节点当前标签下包含currentNodeTagId且深度+1
int depth = finalCurrentNodeTagId.split(",").length + 1;
int depth = finalCurrentNodeTagId.split(",").length;
List<ProjectNodePo> sameTypeNodeList = taskTreeNodeList.stream().filter(node -> {
try {
String nodeTagId = getTagProperty(node, currentTag);
if (StringUtils.isBlank(nodeTagId)) {
return false;
}
return nodeTagId.contains(finalCurrentNodeTagId) && (finalCurrentNodeTagId.split(",").length == depth);
return node.getNodeType().equals(currentNodeType) && nodeTagId.contains(finalCurrentNodeTagId) && (finalCurrentNodeTagId.split(",").length == depth + 1);
} catch (Exception e) {
throw new RuntimeException(e);
}
}).collect(Collectors.toList());
// 再查不同类型的节点:下一标签下的节点
// int childrenIndex = 0;
// String childrenNodeType = "";
// for (int i = 0; i < taskTreeTagMap.size(); i++) {
// if (taskTreeTagMap.get(i).getKey().equals(currentNodeType)) {
//// childrenIndex = Math.min(i+1, taskTreeTagMap.size() - 1);
// childrenNodeType = taskTreeTagMap.get(Math.min(i+1, taskTreeTagMap.size() - 1)).getKey();
// break;
// }
// }
List<ProjectNodePo> childrenTypeNodeList = taskTreeNodeList.stream().filter(node -> {
try {
String nodeTagId = getTagProperty(node, currentTag);
if (StringUtils.isBlank(nodeTagId)) {
return false;
}
// tagId相同且当前深度 = task深度 + 1
return nodeTagId.equals(finalCurrentNodeTagId) && currentNodeDepth == getCurrentNodeDepth(node) - 1;
} catch (Exception e) {
throw new RuntimeException(e);
}
}).collect(Collectors.toList());
// List<ProjectNodePo> childrenTypeNodeList = taskTreeProjectNodeMap.get(childrenNodeType);
// childrenIndex = 0说明没有不同类型的子节点了
// if (childrenIndex > 0) {
// childrenTypeNodeList = taskTreeProjectNodeMap.get(childrenIndex);
// }
if (CollectionUtils.isNotEmpty(sameTypeNodeList)) {
// 递归
for (ProjectNodePo nodePo : sameTypeNodeList) {
generateTaskTree(nodePo);
}
}else if (CollectionUtils.isNotEmpty(childrenTypeNodeList)) {
// 递归
for (ProjectNodePo nodePo : childrenTypeNodeList) {
generateTaskTree(nodePo);
}
}
projectNodePo.setChildren(generateTaskTree(null));
// 关联子节点
// 关联任务
return null;
List<NodeAllBase> children = new ArrayList<>();
if (CollectionUtils.isNotEmpty(sameTypeNodeList)) {
children.addAll(sameTypeNodeList);
}
if (CollectionUtils.isNotEmpty(childrenTypeNodeList)) {
children.addAll(childrenTypeNodeList);
}
if (CollectionUtils.isNotEmpty(currentNodeAssociatedTaskList)) {
children.addAll(currentNodeAssociatedTaskList);
}
projectNodePo.setChildren(children);
}
private List<ProjectNodePo> getNodeList(List<ProjectNodePo> nodeList, String tag, Map<String, String> nodeTypeMap) {

View File

@@ -72,45 +72,50 @@ public class TaskServiceImpl implements ITaskService {
List<SpdmTaskMemberVo> taskMemberVoList = mapper.getMemberList(taskIdList, null);
Map<String, List<SpdmTaskMemberVo>> memberMap = Map.of();
if (CollectionUtils.isNotEmpty(taskMemberVoList)) {
// if (ObjectUtils.isNotEmpty(req.getPMemberIdList())) {
// // 通过仿真负责人过滤
// taskMemberVoList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType()) && member.getUserId())
// }
// if (StringUtils.isNotBlank(req.getEMemberList())) {
// // 通过仿真执行人过滤
// }
memberMap = taskMemberVoList.stream().collect(Collectors.groupingBy(SpdmTaskMemberVo::getTaskId));
}
List<SpdmTaskMemberVo> eachMemberList;
JSONObject jsonObject = new JSONObject();
jsonObject.put("currentPage",req.getCurrent());
jsonObject.put("pageSize",req.getSize());
jsonObject.put("currentPage", req.getCurrent());
jsonObject.put("pageSize", req.getSize());
if (type == 2) {
if (CollectionUtils.isNotEmpty(taskList)) {
List<SpdmTaskAttentionMemberVo> attentionMemberList = mapper.getAttentionMemberList(taskList.stream().map(SpdmTaskVo::getUuid).toList());
Map<String, List<SpdmTaskAttentionMemberVo>> attentionMap = Map.of();
List<SpdmTaskAttentionMemberVo> eachAttentionMemberList;
if (CollectionUtils.isNotEmpty(attentionMemberList)) {
attentionMap = attentionMemberList.stream().collect(Collectors.groupingBy(SpdmTaskAttentionMemberVo::getTaskId));
}
for (SpdmTaskVo task : taskList) {
eachAttentionMemberList = attentionMap.get(task.getUuid());
task.setAttentionFlag(CollectionUtils.isEmpty(eachAttentionMemberList) ? 0 :
(eachAttentionMemberList.stream().map(SpdmTaskAttentionMemberVo::getUserId).toList().contains(Long.valueOf(jobNumber)) ? 1 : 0));
eachMemberList = memberMap.get(task.getUuid());
if (CollectionUtils.isEmpty(eachMemberList)) {
continue;
}
task.setPMemberList(eachMemberList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType())).toList());
task.setEMemberList(eachMemberList.stream().filter(member -> MemberTypeEnum.EXECUTOR.getCode().equals(member.getType())).toList());
}
jsonObject.put("total",taskList.size());
jsonObject.put("data", taskList.stream().skip((long) (req.getCurrent() - 1) * req.getSize()).limit(req.getSize()).toList());
return SdmResponse.success(jsonObject);
} else {
if (CollectionUtils.isEmpty(taskList)) {
return SdmResponse.success(new ArrayList<>());
}
List<SpdmTaskAttentionMemberVo> attentionMemberList = mapper.getAttentionMemberList(taskList.stream().map(SpdmTaskVo::getUuid).toList());
Map<String, List<SpdmTaskAttentionMemberVo>> attentionMap = Map.of();
List<SpdmTaskAttentionMemberVo> eachAttentionMemberList;
if (CollectionUtils.isNotEmpty(attentionMemberList)) {
attentionMap = attentionMemberList.stream().collect(Collectors.groupingBy(SpdmTaskAttentionMemberVo::getTaskId));
}
for (SpdmTaskVo task : taskList) {
eachAttentionMemberList = attentionMap.get(task.getUuid());
task.setAttentionFlag(CollectionUtils.isEmpty(eachAttentionMemberList) ? 0 :
(eachAttentionMemberList.stream().map(SpdmTaskAttentionMemberVo::getUserId).toList().contains(Long.valueOf(jobNumber)) ? 1 : 0));
eachMemberList = memberMap.get(task.getUuid());
if (CollectionUtils.isEmpty(eachMemberList)) {
continue;
}
task.setPMemberList(eachMemberList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType())).toList());
task.setEMemberList(eachMemberList.stream().filter(member -> MemberTypeEnum.EXECUTOR.getCode().equals(member.getType())).toList());
}
jsonObject.put("total", taskList.size());
jsonObject.put("data", taskList.stream().skip((long) (req.getCurrent() - 1) * req.getSize()).limit(req.getSize()).toList());
return SdmResponse.success(jsonObject);
}
if (type == 0) {
// 仿真执行人是当前用户
if (CollectionUtils.isNotEmpty(taskMemberVoList)) {
SpdmUserVo userByJobNumber = demandMapper.getUserByJobNumber(jobNumber);
if (ObjectUtils.isEmpty(userByJobNumber)) {
log.error("根据jobNumber{},未查询到用户",jobNumber);
log.error("根据jobNumber{},未查询到用户", jobNumber);
return SdmResponse.success(new ArrayList<>());
}
taskMemberVoList = taskMemberVoList.stream().filter(taskMember -> MemberTypeEnum.EXECUTOR.getCode().equals(taskMember.getType())).toList();
@@ -143,7 +148,7 @@ public class TaskServiceImpl implements ITaskService {
} else {
SpdmUserVo userByJobNumber = demandMapper.getUserByJobNumber(jobNumber);
if (ObjectUtils.isEmpty(userByJobNumber)) {
log.error("根据jobNumber{},未查询到用户",jobNumber);
log.error("根据jobNumber{},未查询到用户", jobNumber);
return SdmResponse.success(new ArrayList<>());
}
List<SpdmTaskAttentionMemberVo> taskAttentionMemberVoList = mapper.getAttentionMemberList(taskIdList);
@@ -177,7 +182,7 @@ public class TaskServiceImpl implements ITaskService {
log.error("taskList为空");
return SdmResponse.success(new ArrayList<>());
}
jsonObject.put("total",taskList.size());
jsonObject.put("total", taskList.size());
taskList = taskList.stream().skip((long) (req.getCurrent() - 1) * req.getSize()).limit(req.getSize()).toList();
List<SpdmTaskAttentionMemberVo> attentionMemberList = mapper.getAttentionMemberList(taskList.stream().map(SpdmTaskVo::getUuid).toList());
Map<String, List<SpdmTaskAttentionMemberVo>> attentionMap = Map.of();
@@ -243,7 +248,7 @@ public class TaskServiceImpl implements ITaskService {
task.setUpdateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
if (mapper.updateTask(task) > 0) {
return SdmResponse.success();
}else {
} else {
return SdmResponse.failed("编辑任务失败");
}
}
@@ -270,7 +275,7 @@ public class TaskServiceImpl implements ITaskService {
log.error("指标查询中未查询到任务1");
return SdmResponse.success(new ArrayList<>());
}
JSONObject data = (JSONObject)response.getData();
JSONObject data = (JSONObject) response.getData();
List<SpdmAnalysisTaskVo> taskVoList = (List<SpdmAnalysisTaskVo>) data.get("data");
if (CollectionUtils.isEmpty(taskVoList)) {
log.error("指标查询中未查询到任务2");
@@ -310,9 +315,9 @@ public class TaskServiceImpl implements ITaskService {
performanceNodePo.setPMembers(eachTaskVo.getPMembers());
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("currentPage",req.getCurrent());
jsonObject.put("pageSize",req.getSize());
jsonObject.put("total",performanceNodePoList.size());
jsonObject.put("currentPage", req.getCurrent());
jsonObject.put("pageSize", req.getSize());
jsonObject.put("total", performanceNodePoList.size());
jsonObject.put("data", performanceNodePoList.stream().skip((long) (req.getCurrent() - 1) * req.getSize()).limit(req.getSize()).toList());
return SdmResponse.success(jsonObject);
}
@@ -377,9 +382,9 @@ public class TaskServiceImpl implements ITaskService {
}
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("currentPage",req.getCurrent());
jsonObject.put("pageSize",req.getSize());
jsonObject.put("total",taskVoList.size());
jsonObject.put("currentPage", req.getCurrent());
jsonObject.put("pageSize", req.getSize());
jsonObject.put("total", taskVoList.size());
jsonObject.put("data", taskVoList.stream().skip((long) (req.getCurrent() - 1) * req.getSize()).limit(req.getSize()).toList());
return SdmResponse.success(jsonObject);
}
@@ -396,7 +401,7 @@ public class TaskServiceImpl implements ITaskService {
log.error("指标查询中未查询到任务1");
return SdmResponse.success(new ArrayList<>());
}
JSONObject data = (JSONObject)response.getData();
JSONObject data = (JSONObject) response.getData();
List<SpdmAnalysisTaskVo> taskVoList = (List<SpdmAnalysisTaskVo>) data.get("data");
if (CollectionUtils.isEmpty(taskVoList)) {
log.error("指标查询中未查询到任务2");
@@ -436,9 +441,9 @@ public class TaskServiceImpl implements ITaskService {
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("currentPage",req.getCurrent());
jsonObject.put("pageSize",req.getSize());
jsonObject.put("total",runPoList.size());
jsonObject.put("currentPage", req.getCurrent());
jsonObject.put("pageSize", req.getSize());
jsonObject.put("total", runPoList.size());
jsonObject.put("data", runPoList.stream().skip((long) (req.getCurrent() - 1) * req.getSize()).limit(req.getSize()).toList());
return SdmResponse.success(jsonObject);
}
@@ -467,8 +472,8 @@ public class TaskServiceImpl implements ITaskService {
attentionList.add(spdmTaskAttentionReq);
}
mapper.saveAttentionList(attentionList);
}else {
mapper.deleteAttentionByUserIdList(taskId,cancelUserIdList);
} else {
mapper.deleteAttentionByUserIdList(taskId, cancelUserIdList);
}
return SdmResponse.success();
}

View File

@@ -29,7 +29,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 192.168.65.161:8848
server-addr: 127.0.0.1:8848
enabled: true
# username: nacos
# password: ENC(+QKYnI6gAYu1SbLaZQTkZA==)

View File

@@ -29,7 +29,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 192.168.65.161:8848
server-addr: 127.0.0.1:8848
# server-addr: localhost:8848
enabled: true
data:

View File

@@ -30,7 +30,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 192.168.65.161:8848
server-addr: 127.0.0.1:8848
# server-addr: 127.0.0.1:8848
enabled: true
# username: nacos