1、优化getTaskTree中查询流程模板的代码

This commit is contained in:
2026-02-11 07:18:00 +08:00
parent 2b9d7d4ea7
commit a2fa22cf3a

View File

@@ -508,6 +508,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
Map<Long,CIDUserResp> cidUserMap = new HashMap<>(); Map<Long,CIDUserResp> cidUserMap = new HashMap<>();
Map<Long,String> dataMap = new HashMap<>(); Map<Long,String> dataMap = new HashMap<>();
Map<String,List<TaskNodeExtraPo>> taskExtraMap = new HashMap<>(); Map<String,List<TaskNodeExtraPo>> taskExtraMap = new HashMap<>();
Map<String, FlowTemplateResp> flowTemplateRespMap = new HashMap<>();
List<SimulationPerformanceExtra> performanceExtraList = new ArrayList<>(); List<SimulationPerformanceExtra> performanceExtraList = new ArrayList<>();
List<SpdmNodeExtraVo> nodeExtraList = new ArrayList<>(); List<SpdmNodeExtraVo> nodeExtraList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(taskTreeTaskList)) { if (CollectionUtils.isNotEmpty(taskTreeTaskList)) {
@@ -569,6 +570,18 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
taskTreePerformanceList.stream().map(PerformanceNodePo::getUuid).toList()).list(); taskTreePerformanceList.stream().map(PerformanceNodePo::getUuid).toList()).list();
} }
nodeExtraList = nodeMapper.getNodeExtraListByNodeIdList(realTopProjectNodeList.stream().map(ProjectNodePo::getUuid).toList()); nodeExtraList = nodeMapper.getNodeExtraListByNodeIdList(realTopProjectNodeList.stream().map(ProjectNodePo::getUuid).toList());
List<String> templateCodeList = taskTreeTaskList.stream().map(TaskNodePo::getFlowTemplate).filter(StringUtils::isNotBlank).toList();
if (CollectionUtils.isNotEmpty(templateCodeList)) {
try {
SdmResponse<Map<String, FlowTemplateResp>> 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) { for (ProjectNodePo projectNodePo : realTopProjectNodeList) {
generateTaskTree(projectNodePo,addedIdList,currentAddedIdList,queryTaskFlag,taskMemberMap,cidUserMap, generateTaskTree(projectNodePo,addedIdList,currentAddedIdList,queryTaskFlag,taskMemberMap,cidUserMap,
dataMap,taskExtraMap,performanceExtraList,nodeExtraList); dataMap,taskExtraMap,performanceExtraList,nodeExtraList,flowTemplateRespMap);
addedIdList.clear(); addedIdList.clear();
} }
// 汇总任务进度、仿真负责人、执行人 // 汇总任务进度、仿真负责人、执行人
@@ -739,7 +752,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
} }
private void generateTaskTree(ProjectNodePo projectNodePo,List<String> addedIdList,List<String> currentAddedIdList,Integer queryTaskFlag,Map<String,List<SimulationTaskMember>> taskMemberMap,Map<Long,CIDUserResp> cidUserMap,Map<Long,String> dataMap,Map<String,List<TaskNodeExtraPo>> taskExtraMap, private void generateTaskTree(ProjectNodePo projectNodePo,List<String> addedIdList,List<String> currentAddedIdList,Integer queryTaskFlag,Map<String,List<SimulationTaskMember>> taskMemberMap,Map<Long,CIDUserResp> cidUserMap,Map<Long,String> dataMap,Map<String,List<TaskNodeExtraPo>> taskExtraMap,
List<SimulationPerformanceExtra> performanceExtraList,List<SpdmNodeExtraVo> nodeExtraList) { List<SimulationPerformanceExtra> performanceExtraList,List<SpdmNodeExtraVo> nodeExtraList,Map<String, FlowTemplateResp> flowTemplateRespMap) {
currentAddedIdList.add(projectNodePo.getUuid()); currentAddedIdList.add(projectNodePo.getUuid());
String currentNodeType = projectNodePo.getNodeType(); String currentNodeType = projectNodePo.getNodeType();
String currentTag = taskTreeNodeTypeTagMap.get(currentNodeType); String currentTag = taskTreeNodeTypeTagMap.get(currentNodeType);
@@ -834,11 +847,11 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
List<String> flowTemplateNameList = new ArrayList<>(); List<String> flowTemplateNameList = new ArrayList<>();
String[] flowTemplateArr = taskNodePo.getFlowTemplate().split(","); String[] flowTemplateArr = taskNodePo.getFlowTemplate().split(",");
for (String flowTemplate : flowTemplateArr) { for (String flowTemplate : flowTemplateArr) {
SdmResponse<FlowTemplateResp> flowTemplateResp = flowFeignClient.queryFlowTemplateInfoByTemplateCode(flowTemplate); FlowTemplateResp flowTemplateResp = flowTemplateRespMap.get(flowTemplate);
if (flowTemplateResp.getData() == null) { if (ObjectUtils.isEmpty(flowTemplateResp)) {
continue; continue;
} }
flowTemplateNameList.add(flowTemplateResp.getData().getTemplateName()); flowTemplateNameList.add(flowTemplateResp.getTemplateName());
} }
if (CollectionUtils.isNotEmpty(flowTemplateNameList)) { if (CollectionUtils.isNotEmpty(flowTemplateNameList)) {
taskNodePo.setFlowTemplateNames(String.join(",", flowTemplateNameList)); taskNodePo.setFlowTemplateNames(String.join(",", flowTemplateNameList));
@@ -980,7 +993,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
// 递归 // 递归
for (ProjectNodePo nodePo : sameTypeNodeList) { for (ProjectNodePo nodePo : sameTypeNodeList) {
generateTaskTree(nodePo,addedIdList,currentAddedIdList,queryTaskFlag,taskMemberMap,cidUserMap, generateTaskTree(nodePo,addedIdList,currentAddedIdList,queryTaskFlag,taskMemberMap,cidUserMap,
dataMap,taskExtraMap,performanceExtraList,nodeExtraList); dataMap,taskExtraMap,performanceExtraList,nodeExtraList,flowTemplateRespMap);
} }
if (CollectionUtils.isNotEmpty(sameTypeNodeList)) { if (CollectionUtils.isNotEmpty(sameTypeNodeList)) {
addedIdList.addAll(sameTypeNodeList.stream().map(ProjectNodePo::getUuid).toList()); addedIdList.addAll(sameTypeNodeList.stream().map(ProjectNodePo::getUuid).toList());
@@ -1009,7 +1022,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
// 递归 // 递归
for (ProjectNodePo nodePo : childrenTypeNodeList) { for (ProjectNodePo nodePo : childrenTypeNodeList) {
generateTaskTree(nodePo,addedIdList,currentAddedIdList,queryTaskFlag,taskMemberMap,cidUserMap, generateTaskTree(nodePo,addedIdList,currentAddedIdList,queryTaskFlag,taskMemberMap,cidUserMap,
dataMap,taskExtraMap,performanceExtraList,nodeExtraList); dataMap,taskExtraMap,performanceExtraList,nodeExtraList,flowTemplateRespMap);
} }
addedIdList.addAll(childrenTypeNodeList.stream().map(ProjectNodePo::getUuid).toList()); addedIdList.addAll(childrenTypeNodeList.stream().map(ProjectNodePo::getUuid).toList());
for (ProjectNodePo nodePo : childrenTypeNodeList) { for (ProjectNodePo nodePo : childrenTypeNodeList) {
@@ -1042,7 +1055,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
// 递归 // 递归
for (ProjectNodePo nodePo : otherChildrenNodeList) { for (ProjectNodePo nodePo : otherChildrenNodeList) {
generateTaskTree(nodePo,addedIdList,currentAddedIdList,queryTaskFlag,taskMemberMap,cidUserMap, generateTaskTree(nodePo,addedIdList,currentAddedIdList,queryTaskFlag,taskMemberMap,cidUserMap,
dataMap,taskExtraMap,performanceExtraList,nodeExtraList); dataMap,taskExtraMap,performanceExtraList,nodeExtraList,flowTemplateRespMap);
} }
addedIdList.addAll(otherChildrenNodeList.stream().map(ProjectNodePo::getUuid).toList()); addedIdList.addAll(otherChildrenNodeList.stream().map(ProjectNodePo::getUuid).toList());
for (ProjectNodePo nodePo : otherChildrenNodeList) { for (ProjectNodePo nodePo : otherChildrenNodeList) {