From a2fa22cf3ad7059890ef23bdeca7ea36116f3099 Mon Sep 17 00:00:00 2001 From: lidongyang <506508008@qq.com> Date: Wed, 11 Feb 2026 07:18:00 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BC=98=E5=8C=96getTaskTree?= =?UTF-8?q?=E4=B8=AD=E6=9F=A5=E8=AF=A2=E6=B5=81=E7=A8=8B=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ProjectServiceImpl.java | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/project/src/main/java/com/sdm/project/service/impl/ProjectServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/ProjectServiceImpl.java index 4122fb0b..0047845e 100644 --- a/project/src/main/java/com/sdm/project/service/impl/ProjectServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/ProjectServiceImpl.java @@ -508,6 +508,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService { Map cidUserMap = new HashMap<>(); Map dataMap = new HashMap<>(); Map> taskExtraMap = new HashMap<>(); + Map flowTemplateRespMap = new HashMap<>(); List performanceExtraList = new ArrayList<>(); List nodeExtraList = new ArrayList<>(); if (CollectionUtils.isNotEmpty(taskTreeTaskList)) { @@ -569,6 +570,18 @@ public class ProjectServiceImpl extends BaseService implements IProjectService { taskTreePerformanceList.stream().map(PerformanceNodePo::getUuid).toList()).list(); } nodeExtraList = nodeMapper.getNodeExtraListByNodeIdList(realTopProjectNodeList.stream().map(ProjectNodePo::getUuid).toList()); + + List templateCodeList = taskTreeTaskList.stream().map(TaskNodePo::getFlowTemplate).filter(StringUtils::isNotBlank).toList(); + if (CollectionUtils.isNotEmpty(templateCodeList)) { + try { + SdmResponse> flowTemplateResponse = flowFeignClient.batchQueryFlowTemplate(templateCodeList); + if (flowTemplateResponse.isSuccess()) { + flowTemplateRespMap = flowTemplateResponse.getData(); + } + }catch (Exception ex) { + log.error("批量查询模板库异常"); + } + } } @@ -576,7 +589,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService { for (ProjectNodePo projectNodePo : realTopProjectNodeList) { generateTaskTree(projectNodePo,addedIdList,currentAddedIdList,queryTaskFlag,taskMemberMap,cidUserMap, - dataMap,taskExtraMap,performanceExtraList,nodeExtraList); + dataMap,taskExtraMap,performanceExtraList,nodeExtraList,flowTemplateRespMap); addedIdList.clear(); } // 汇总任务进度、仿真负责人、执行人 @@ -739,7 +752,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService { } private void generateTaskTree(ProjectNodePo projectNodePo,List addedIdList,List currentAddedIdList,Integer queryTaskFlag,Map> taskMemberMap,Map cidUserMap,Map dataMap,Map> taskExtraMap, - List performanceExtraList,List nodeExtraList) { + List performanceExtraList,List nodeExtraList,Map flowTemplateRespMap) { currentAddedIdList.add(projectNodePo.getUuid()); String currentNodeType = projectNodePo.getNodeType(); String currentTag = taskTreeNodeTypeTagMap.get(currentNodeType); @@ -834,11 +847,11 @@ public class ProjectServiceImpl extends BaseService implements IProjectService { List flowTemplateNameList = new ArrayList<>(); String[] flowTemplateArr = taskNodePo.getFlowTemplate().split(","); for (String flowTemplate : flowTemplateArr) { - SdmResponse flowTemplateResp = flowFeignClient.queryFlowTemplateInfoByTemplateCode(flowTemplate); - if (flowTemplateResp.getData() == null) { + FlowTemplateResp flowTemplateResp = flowTemplateRespMap.get(flowTemplate); + if (ObjectUtils.isEmpty(flowTemplateResp)) { continue; } - flowTemplateNameList.add(flowTemplateResp.getData().getTemplateName()); + flowTemplateNameList.add(flowTemplateResp.getTemplateName()); } if (CollectionUtils.isNotEmpty(flowTemplateNameList)) { taskNodePo.setFlowTemplateNames(String.join(",", flowTemplateNameList)); @@ -980,7 +993,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService { // 递归 for (ProjectNodePo nodePo : sameTypeNodeList) { generateTaskTree(nodePo,addedIdList,currentAddedIdList,queryTaskFlag,taskMemberMap,cidUserMap, - dataMap,taskExtraMap,performanceExtraList,nodeExtraList); + dataMap,taskExtraMap,performanceExtraList,nodeExtraList,flowTemplateRespMap); } if (CollectionUtils.isNotEmpty(sameTypeNodeList)) { addedIdList.addAll(sameTypeNodeList.stream().map(ProjectNodePo::getUuid).toList()); @@ -1009,7 +1022,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService { // 递归 for (ProjectNodePo nodePo : childrenTypeNodeList) { generateTaskTree(nodePo,addedIdList,currentAddedIdList,queryTaskFlag,taskMemberMap,cidUserMap, - dataMap,taskExtraMap,performanceExtraList,nodeExtraList); + dataMap,taskExtraMap,performanceExtraList,nodeExtraList,flowTemplateRespMap); } addedIdList.addAll(childrenTypeNodeList.stream().map(ProjectNodePo::getUuid).toList()); for (ProjectNodePo nodePo : childrenTypeNodeList) { @@ -1042,7 +1055,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService { // 递归 for (ProjectNodePo nodePo : otherChildrenNodeList) { generateTaskTree(nodePo,addedIdList,currentAddedIdList,queryTaskFlag,taskMemberMap,cidUserMap, - dataMap,taskExtraMap,performanceExtraList,nodeExtraList); + dataMap,taskExtraMap,performanceExtraList,nodeExtraList,flowTemplateRespMap); } addedIdList.addAll(otherChildrenNodeList.stream().map(ProjectNodePo::getUuid).toList()); for (ProjectNodePo nodePo : otherChildrenNodeList) {