diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProcessControlExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProcessControlExecutor.java index eab2064..d7cd924 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProcessControlExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProcessControlExecutor.java @@ -609,7 +609,7 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { } /** - * 过程控制前置节点校验:除 PROCESS_CONTROL 节点外,其余节点 state 必须全部为 1(完成)。 + * 过程控制前置节点校验:除 PROCESS_CONTROL、ARCHIVE 节点外,其余节点 state 必须全部为 1(完成)。 */ private void assertPreNodesCompleted(EvalProjectEntity project) { String projectNode = project.getProjectNode(); @@ -621,7 +621,8 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { throw new BizException(ErrorCode.EVAL_PROCESS_PRE_NODES_INCOMPLETE); } boolean allCompleted = nodes.stream() - .filter(n -> !ProjectStageEnum.PROCESS_CONTROL.getVal().equals(n.getType())) + .filter(n -> !ProjectStageEnum.PROCESS_CONTROL.getVal().equals(n.getType()) + && !ProjectStageEnum.ARCHIVE.getVal().equals(n.getType())) .allMatch(n -> n.getState() != null && n.getState() == 1); if (!allCompleted) { throw new BizException(ErrorCode.EVAL_PROCESS_PRE_NODES_INCOMPLETE); diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/ProjectNodeCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/ProjectNodeCO.java index 5814163..fbfface 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/ProjectNodeCO.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/ProjectNodeCO.java @@ -1,11 +1,13 @@ package org.qinan.safetyeval.client.co.institution; import lombok.Data; +import lombok.NoArgsConstructor; /** * 项目节点完成进度中的单个节点对象 */ @Data +@NoArgsConstructor public class ProjectNodeCO { /** * @ProjectNode @@ -15,4 +17,9 @@ public class ProjectNodeCO { * 0未完成 1完成 */ private Integer state; + + public ProjectNodeCO(String type, Integer state) { + this.type = type; + this.state = state; + } } \ No newline at end of file diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/EvalProjectGatewayImpl.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/EvalProjectGatewayImpl.java index b18905a..e06f378 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/EvalProjectGatewayImpl.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/EvalProjectGatewayImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.qinan.safetyeval.client.co.institution.ProjectNodeCO; import org.qinan.safetyeval.domain.constant.EvalProjectProgressStatEnum; +import org.qinan.safetyeval.domain.constant.ProjectStageEnum; import org.qinan.safetyeval.domain.entity.EvalProjectEntity; import org.qinan.safetyeval.domain.gateway.EvalProjectGateway; import org.qinan.safetyeval.domain.query.EvalProjectQuery; @@ -46,8 +47,6 @@ public class EvalProjectGatewayImpl implements EvalProjectGateway { @Resource private OrgContextResolver orgContextResolver; @Autowired - private EvalSignTaskMapper evalSignTaskMapper; - @Autowired private EvalSurveyMapper evalSurveyMapper; @Override @@ -58,11 +57,11 @@ public class EvalProjectGatewayImpl implements EvalProjectGateway { dataObject.setArchiveFlag(0); } InsertFieldDefaults.apply(dataObject); - dataObject.setProjectNode("[{\"type\":\"RISK_ANALYSIS\",\"state\":0}" + - ",{\"type\":\"BUSINESS_CONTRACT\",\"state\":0},{\"type\":\"PROJECT_GROUP\",\"state\":0}," + - "{\"type\":\"SITE_SURVEY\",\"state\":0},{\"type\":\"REPORT_PREPARATION\",\"state\":0}" + - ",{\"type\":\"INTERNAL_REVIEW\",\"state\":0},{\"type\":\"TECHNICAL_REVIEW\",\"state\":0}" + - ",{\"type\":\"PROCESS_CONTROL\",\"state\":0},{\"type\":\"ARCHIVE\",\"state\":0}]"); + List projectNodes = new ArrayList<>(); + for (ProjectStageEnum stage : ProjectStageEnum.values()) { + projectNodes.add(new ProjectNodeCO(stage.getVal(), 0)); + } + dataObject.setProjectNode(JSON.toJSONString(projectNodes)); evalProjectMapper.insert(dataObject); entity.setId(dataObject.getId()); return entity;