diff --git a/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java index aa4af0e6..42b331b3 100644 --- a/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java @@ -35,6 +35,7 @@ import com.sdm.common.entity.resp.data.FileMetadataInfoResp; import com.sdm.common.entity.resp.data.SimulationTaskResultCurveResp; import com.sdm.common.entity.resp.flowable.ProcessInstanceDetailResponse; import com.sdm.common.entity.resp.flowable.ProcessInstanceResp; +import com.sdm.common.entity.resp.project.TaskNodeExtraPo; import com.sdm.common.entity.resp.system.CIDUserResp; import com.sdm.common.feign.impl.capability.SimulationFlowFeignClientImpl; import com.sdm.common.feign.impl.capability.SimulationReportFeignClientImpl; @@ -221,7 +222,7 @@ public class SimulationRunServiceImpl extends ServiceImpl taskTreeNodeList, List taskTreeTaskList, List taskTreeTagMap, String firstNodeTag, String lastNodeTag, Map taskTreeNodeTypeTagMap, List taskTreeRunList) { + private void generateTaskTree(ProjectNodePo projectNodePo, List taskTreeNodeList, List taskTreeTaskList, List taskTreeTagMap, String firstNodeTag, String lastNodeTag, Map taskTreeNodeTypeTagMap, List taskTreeRunList,Map> taskExtraMap) { String currentNodeType = projectNodePo.getNodeType(); String currentTag = taskTreeNodeTypeTagMap.get(currentNodeType); TaskNodeTag nextNodeTag = getNextNodeTag(currentTag, taskTreeTagMap); @@ -379,7 +380,7 @@ public class SimulationRunServiceImpl extends ServiceImpl taskTreeRunList = new ArrayList<>(); List taskTreeTaskList = mapper.getTaskListByTag(taskTreeReq); + Map> taskExtraMap = new HashMap<>(); if (CollectionUtils.isNotEmpty(taskTreeTaskList)) { taskTreeTaskList.forEach(task -> task.setNodeType(NodeTypeEnum.TASK.getValue())); taskTreeRunList = mapper.getRunListByNodeIdList(taskTreeTaskList.stream().map(TaskNodePo::getUuid).toList()); if (CollectionUtils.isNotEmpty(taskTreeRunList)) { taskTreeRunList.forEach(run -> run.setNodeType(NodeTypeEnum.RUN.getValue())); } + taskExtraMap = Optional.ofNullable(taskMapper.getTaskExtraList( + taskTreeTaskList.stream().map(TaskNodePo::getUuid).toList() + )).orElse(Collections.emptyList()).stream().collect(Collectors.groupingBy(TaskNodeExtraPo::getTaskId)); } List taskTreeTagMap = req.getTagMap(); String firstNodeTag = taskTreeTagMap.get(0).getValue(); @@ -604,7 +610,7 @@ public class SimulationRunServiceImpl extends ServiceImpl realTopProjectNodeList = taskTreeNodeList.stream().filter(node -> node.getNodeType().equals(realFirstTaskNodeType)).toList(); for (ProjectNodePo projectNodePo : realTopProjectNodeList) { - generateTaskTree(projectNodePo, taskTreeNodeList, taskTreeTaskList, taskTreeTagMap, firstNodeTag, lastNodeTag, taskTreeNodeTypeTagMap, taskTreeRunList); + generateTaskTree(projectNodePo, taskTreeNodeList, taskTreeTaskList, taskTreeTagMap, firstNodeTag, lastNodeTag, taskTreeNodeTypeTagMap, taskTreeRunList,taskExtraMap); } // 对工位进行排序,-M工位顺序排第一个 if (lyricFlag == 1) {