diff --git a/project/src/main/java/com/sdm/project/model/po/ProjectNodePo.java b/project/src/main/java/com/sdm/project/model/po/ProjectNodePo.java index ec3fcd16..c2a6db7e 100644 --- a/project/src/main/java/com/sdm/project/model/po/ProjectNodePo.java +++ b/project/src/main/java/com/sdm/project/model/po/ProjectNodePo.java @@ -157,4 +157,6 @@ public class ProjectNodePo extends NodeAllBase { private String tag9; @JsonProperty(value = "tag10") private String tag10; + + private Long imageFileId; } 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 a6425ae8..8e6b367c 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 @@ -181,4 +181,6 @@ public class TaskNodePo extends NodeAllBase { @JsonProperty(value = "tag10") private String tag10; + private Long imageFileId; + } diff --git a/project/src/main/java/com/sdm/project/model/vo/SpdmNodeDetailVo.java b/project/src/main/java/com/sdm/project/model/vo/SpdmNodeDetailVo.java index 1135bb4e..12eb7447 100644 --- a/project/src/main/java/com/sdm/project/model/vo/SpdmNodeDetailVo.java +++ b/project/src/main/java/com/sdm/project/model/vo/SpdmNodeDetailVo.java @@ -94,4 +94,9 @@ public class SpdmNodeDetailVo extends BaseEntity { private String exeStatus; + /** + * 当前阶段 + */ + private String currentPhase; + } 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 6ce6d81f..befa47da 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 @@ -68,6 +68,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.annotation.Resource; import java.lang.reflect.Field; import java.sql.Wrapper; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -606,6 +607,68 @@ public class NodeServiceImpl extends ServiceImpl phaseNodeList = this.lambdaQuery().eq(SimulationNode::getParentId, uuid).eq(SimulationNode::getNodeType, NodeTypeEnum.PHASE.getValue()).list(); + if (CollectionUtils.isEmpty(phaseNodeList)) { + return SdmResponse.success(spdmNodeDetailVo); + } + phaseNodeList = phaseNodeList.stream().filter(phaseNode -> StringUtils.isNotBlank(phaseNode.getBeginTime()) && StringUtils.isNotBlank(phaseNode.getEndTime())).toList(); + if (CollectionUtils.isEmpty(phaseNodeList)) { + return SdmResponse.success(spdmNodeDetailVo); + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + phaseNodeList = phaseNodeList.stream().sorted(Comparator.comparingLong(phaseNode -> { + try { + return sdf.parse(phaseNode.getBeginTime()).getTime(); + } catch (ParseException e) { + throw new RuntimeException(e); + } + })).toList(); + Long currentTime = System.currentTimeMillis(); + SimulationNode currentPhaseNode = null; + for (SimulationNode simulationNode : phaseNodeList) { + try { + if (currentTime >= sdf.parse(simulationNode.getBeginTime()).getTime() && currentTime <= sdf.parse(simulationNode.getEndTime()).getTime()) { + currentPhaseNode = simulationNode; + } + } catch (ParseException e) { + throw new RuntimeException(e); + } + } + + if (ObjectUtils.isNotEmpty(currentPhaseNode)) { + spdmNodeDetailVo.setCurrentPhase(currentPhaseNode.getNodeName()); + return SdmResponse.success(spdmNodeDetailVo); + } + + // 开始时间比当前时间小的里面的最大的一个 + List bigPhaseNodeList = phaseNodeList.stream().filter(phaseNode -> { + try { + return currentTime <= sdf.parse(phaseNode.getBeginTime()).getTime(); + } catch (ParseException e) { + throw new RuntimeException(e); + } + }).toList(); + if (CollectionUtils.isEmpty(bigPhaseNodeList)) { + SimulationNode simulationNode = phaseNodeList.stream().max(Comparator.comparingLong(phaseNode -> { + try { + return sdf.parse(phaseNode.getBeginTime()).getTime(); + } catch (ParseException e) { + throw new RuntimeException(e); + } + })).get(); + spdmNodeDetailVo.setCurrentPhase(simulationNode.getNodeName()); + return SdmResponse.success(spdmNodeDetailVo); + } + SimulationNode simulationNode = phaseNodeList.stream().min(Comparator.comparingLong(phaseNode -> { + try { + return sdf.parse(phaseNode.getBeginTime()).getTime(); + } catch (ParseException e) { + throw new RuntimeException(e); + } + })).get(); + spdmNodeDetailVo.setCurrentPhase(simulationNode.getNodeName()); return SdmResponse.success(spdmNodeDetailVo); }