From 0e0deefa6eb0218347b87af4cd1c616bbe4504b0 Mon Sep 17 00:00:00 2001 From: lidongyang <506508008@qq.com> Date: Thu, 16 Oct 2025 15:51:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=9F=A5=E8=AF=A2=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E4=BB=BB=E5=8A=A1=E6=A0=91=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/src/main/resources/application-dev.yml | 2 +- .../com/sdm/project/model/bo/TaskNode.java | 2 +- .../com/sdm/project/model/po/NodeAllBase.java | 24 +- .../com/sdm/project/model/po/TaskNodePo.java | 5 - .../project/model/req/SpdmTaskListReq.java | 28 +- .../project/service/impl/NodeServiceImpl.java | 2 +- .../service/impl/ProjectServiceImpl.java | 287 ++++++++++++------ .../project/service/impl/TaskServiceImpl.java | 89 +++--- .../src/main/resources/application-dev.yml | 2 +- system/src/main/resources/application-dev.yml | 2 +- task/src/main/resources/application-dev.yml | 2 +- 11 files changed, 293 insertions(+), 152 deletions(-) diff --git a/data/src/main/resources/application-dev.yml b/data/src/main/resources/application-dev.yml index 9ae6f6c8..954cf357 100644 --- a/data/src/main/resources/application-dev.yml +++ b/data/src/main/resources/application-dev.yml @@ -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 diff --git a/project/src/main/java/com/sdm/project/model/bo/TaskNode.java b/project/src/main/java/com/sdm/project/model/bo/TaskNode.java index 05ba1b47..5979438b 100644 --- a/project/src/main/java/com/sdm/project/model/bo/TaskNode.java +++ b/project/src/main/java/com/sdm/project/model/bo/TaskNode.java @@ -57,7 +57,7 @@ public class TaskNode extends BaseEntity { /** * 项目进度状态(未开始、进行中、已完成) */ - private Integer exeStatus; + private String exeStatus; private String exeStatusValue; diff --git a/project/src/main/java/com/sdm/project/model/po/NodeAllBase.java b/project/src/main/java/com/sdm/project/model/po/NodeAllBase.java index dc6f2616..efaefe89 100644 --- a/project/src/main/java/com/sdm/project/model/po/NodeAllBase.java +++ b/project/src/main/java/com/sdm/project/model/po/NodeAllBase.java @@ -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; + } diff --git a/project/src/main/java/com/sdm/project/model/po/TaskNodePo.java b/project/src/main/java/com/sdm/project/model/po/TaskNodePo.java index 78c62a99..03fc6949 100644 --- a/project/src/main/java/com/sdm/project/model/po/TaskNodePo.java +++ b/project/src/main/java/com/sdm/project/model/po/TaskNodePo.java @@ -38,11 +38,6 @@ public class TaskNodePo extends NodeAllBase { */ private String taskCode; - /** - * 项目进度状态(未开始、进行中、已完成) - */ - private Integer exeStatus; - private String exeStatusValue; /** diff --git a/project/src/main/java/com/sdm/project/model/req/SpdmTaskListReq.java b/project/src/main/java/com/sdm/project/model/req/SpdmTaskListReq.java index 83615e0a..c57e6a85 100644 --- a/project/src/main/java/com/sdm/project/model/req/SpdmTaskListReq.java +++ b/project/src/main/java/com/sdm/project/model/req/SpdmTaskListReq.java @@ -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; } diff --git a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java index b73037e9..62b0b814 100644 --- a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java @@ -662,7 +662,7 @@ public class NodeServiceImpl extends ServiceImpl taskTreeNodeTypeTagMap; + Map> 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 realFirstNodeList = taskTreeNodeList.stream().filter(node -> node.getNodeType().equals(realFirstTaskNodeTag.getKey())).toList(); - - String realFirstNodeTagId = ""; - String[] currentNodeTagIdArray; - Map> 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 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 realTopProjectNodeList = projectNodeMap.get(1); + String realFirstTaskNodeType = taskTreeTagNodeTypeMap.get(realFirstTaskNodeTag.getValue()); + log.info("实际需要展示的最顶层节点类型为:{},id为:{}", taskTreeTagNodeTypeMap.get(realFirstTaskNodeTag.getValue()),realFirstTaskNodeType); +// List 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 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 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 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 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 secondNodeList = nodeList.stream().filter(node -> node.getNodeType().equals(nodeTypeMap.get(secondTag.getValue()))).toList(); -// List thirdNodeList = nodeList.stream().filter(node -> node.getNodeType().equals(nodeTypeMap.get(thirdTag.getValue()))).toList(); -// List fourthNodeList = nodeList.stream().filter(node -> node.getNodeType().equals(nodeTypeMap.get(fourthTag.getValue()))).toList(); -// List 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 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 currentNodeAssociatedTaskList = taskTreeTaskList.stream().filter(node -> { - try { - String nodeTagId = getTagProperty(node, currentTag); - if (StringUtils.isBlank(nodeTagId)) { - return false; + List 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 taskMap = currentNodeAssociatedTaskList.stream().collect(Collectors.groupingBy( + TaskNodePo::getUuid, + Collectors.collectingAndThen( + Collectors.toList(), + list -> list.get(0) + ) + )); + if (CollectionUtils.isNotEmpty(taskTreePerformanceList)) { + List eachPerformanceNodeList; + List currentTaskAssociatedPerformanceList = taskTreePerformanceList.stream().filter(performance -> ObjectUtils.isNotEmpty(taskMap.get(performance.getTaskId()))).toList(); + if (CollectionUtils.isNotEmpty(currentTaskAssociatedPerformanceList)) { + Map> 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 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 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 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 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 getNodeList(List nodeList, String tag, Map nodeTypeMap) { diff --git a/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java index 5a982680..ce3205e3 100644 --- a/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java @@ -72,45 +72,50 @@ public class TaskServiceImpl implements ITaskService { List taskMemberVoList = mapper.getMemberList(taskIdList, null); Map> 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 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 attentionMemberList = mapper.getAttentionMemberList(taskList.stream().map(SpdmTaskVo::getUuid).toList()); - Map> attentionMap = Map.of(); - List 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 attentionMemberList = mapper.getAttentionMemberList(taskList.stream().map(SpdmTaskVo::getUuid).toList()); + Map> attentionMap = Map.of(); + List 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 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 attentionMemberList = mapper.getAttentionMemberList(taskList.stream().map(SpdmTaskVo::getUuid).toList()); Map> 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 taskVoList = (List) 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 taskVoList = (List) 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(); } diff --git a/project/src/main/resources/application-dev.yml b/project/src/main/resources/application-dev.yml index 0fb85850..b06d0803 100644 --- a/project/src/main/resources/application-dev.yml +++ b/project/src/main/resources/application-dev.yml @@ -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==) diff --git a/system/src/main/resources/application-dev.yml b/system/src/main/resources/application-dev.yml index a2d2cc2e..d471a211 100644 --- a/system/src/main/resources/application-dev.yml +++ b/system/src/main/resources/application-dev.yml @@ -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: diff --git a/task/src/main/resources/application-dev.yml b/task/src/main/resources/application-dev.yml index 40fb8ffb..c7c49af9 100644 --- a/task/src/main/resources/application-dev.yml +++ b/task/src/main/resources/application-dev.yml @@ -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