From f6e264a02e923079110d34714728d47fd19f4767 Mon Sep 17 00:00:00 2001 From: WendyYang Date: Sat, 11 Feb 2023 17:09:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=A1=B9=E7=9B=AE=E5=BA=93?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../statemachine/action/ProjectDeclareAction.java | 162 ++++++++++++--------- .../action/ProjectDeclareChoiceAction.java | 2 +- .../builder/ProjectDeclareStateMachineBuilder.java | 4 +- .../event/ProjectStatusChangeEvent.java | 93 ++++++------ .../factory/ProjectDeclareGuardFactory.java | 2 +- .../statemachine/util/StateMachineUtils.java | 22 +-- .../manage/DeclaredProjectManage.java | 3 +- .../controller/AnnualPlanController.java | 15 ++ .../projectlib/enumeration/ProjectStatusEnum.java | 90 ++++++++++++ .../projectlib/enumeration/ProjectTypeEnum.java | 42 ++++++ .../pmapi/projectlib/enums/ProjectStatusEnum.java | 70 --------- .../pmapi/projectlib/enums/ProjectTypeEnum.java | 34 ----- .../projectlib/manage/AnnualPlanLibManage.java | 57 +++++++- .../projectlib/model/vo/AnnualPlanListItemVO.java | 50 +++++++ .../pmapi/statemachine/StateMachineTest.java | 2 +- .../pmapi/sys/project/ProjectStateTest.java | 2 +- 16 files changed, 409 insertions(+), 241 deletions(-) create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectStatusEnum.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectTypeEnum.java delete mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enums/ProjectStatusEnum.java delete mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enums/ProjectTypeEnum.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/projectlib/model/vo/AnnualPlanListItemVO.java diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/action/ProjectDeclareAction.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/action/ProjectDeclareAction.java index 7204bbc..8933e91 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/action/ProjectDeclareAction.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/action/ProjectDeclareAction.java @@ -4,7 +4,7 @@ import com.ningdatech.pmapi.common.constant.StateMachineHeaderNameConstants; import com.ningdatech.pmapi.common.statemachine.builder.ProjectDeclareStateMachineBuilder; import com.ningdatech.pmapi.common.statemachine.util.StateMachineUtils; import com.ningdatech.pmapi.common.statemachine.event.ProjectStatusChangeEvent; -import com.ningdatech.pmapi.projectlib.enums.ProjectStatusEnum; +import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum; import com.ningdatech.pmapi.projectlib.model.entity.Project; import lombok.extern.slf4j.Slf4j; import org.springframework.messaging.Message; @@ -25,153 +25,169 @@ public class ProjectDeclareAction { private static final String PROJECT_DECLARE = StateMachineHeaderNameConstants.PROJECT_DECLARE; - @OnTransition(source = "UNDER_INTERNAL_AUDIT",target = "PENDING_PREQUALIFICATION") - public void UNDER_INTERNAL_PASS(Message message){ + @OnTransition(source = "UNDER_INTERNAL_AUDIT", target = "PENDING_PREQUALIFICATION") + public void UNDER_INTERNAL_PASS(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.PENDING_PREQUALIFICATION.getCode()); } - @OnTransition(source = "UNDER_INTERNAL_AUDIT",target = "UNDER_INTERNAL_AUDIT_NOT_PASS") - public void UNDER_INTERNAL_REJECT(Message message){ + + @OnTransition(source = "UNDER_INTERNAL_AUDIT", target = "UNDER_INTERNAL_AUDIT_NOT_PASS") + public void UNDER_INTERNAL_REJECT(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.UNDER_INTERNAL_AUDIT_NOT_PASS.getCode()); } - @OnTransition(source = "UNDER_INTERNAL_AUDIT",target = "TO_BE_DECLARED") - public void UNDER_INTERNAL_WITHDRAW(Message message){ + + @OnTransition(source = "UNDER_INTERNAL_AUDIT", target = "TO_BE_DECLARED") + public void UNDER_INTERNAL_WITHDRAW(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.TO_BE_DECLARED.getCode()); } - @OnTransition(source = "PENDING_PREQUALIFICATION",target = "PENDING_PREQUALIFICATION_CHOICE") - public void PRELIMINARY_REVIEW_DECLARE(Message message){ + @OnTransition(source = "PENDING_PREQUALIFICATION", target = "PENDING_PREQUALIFICATION_CHOICE") + public void PRELIMINARY_REVIEW_DECLARE(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.PENDING_PREQUALIFICATION_CHOICE.getCode()); } - @OnTransition(source = "PENDING_PREQUALIFICATION",target = "UNDER_INTERNAL_AUDIT") - public void PENDING_PREQUALIFICATION_WITHDRAW(Message message){ + + @OnTransition(source = "PENDING_PREQUALIFICATION", target = "UNDER_INTERNAL_AUDIT") + public void PENDING_PREQUALIFICATION_WITHDRAW(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.UNDER_INTERNAL_AUDIT.getCode()); } - @OnTransition(source = "JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS",target = "PRE_APPLYING") - public void PROVINCIAL_DEPARTMENT_REVIEW_PASS(Message message){ + @OnTransition(source = "JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS", target = "PRE_APPLYING") + public void PROVINCIAL_DEPARTMENT_REVIEW_PASS(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.PRE_APPLYING.getCode()); } - @OnTransition(source = "JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS",target = "THE_JOINT_REVIEW_OF_PROVINCIAL_DEPARTMENTS_FAILED") - public void PROVINCIAL_DEPARTMENT_REVIEW_REJECT(Message message){ + + @OnTransition(source = "JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS", target = "THE_JOINT_REVIEW_OF_PROVINCIAL_DEPARTMENTS_FAILED") + public void PROVINCIAL_DEPARTMENT_REVIEW_REJECT(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.THE_JOINT_REVIEW_OF_PROVINCIAL_DEPARTMENTS_FAILED.getCode()); } - @OnTransition(source = "JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS",target = "PENDING_PREQUALIFICATION") - public void JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS_WITHDRAW(Message message){ + + @OnTransition(source = "JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS", target = "PENDING_PREQUALIFICATION") + public void JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS_WITHDRAW(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.PENDING_PREQUALIFICATION.getCode()); } - @OnTransition(source = "PRE_APPLYING",target = "DEPARTMENT_JOINT_REVIEW") - public void PRELIMINARY_REVIEW_PASS(Message message){ + @OnTransition(source = "PRE_APPLYING", target = "DEPARTMENT_JOINT_REVIEW") + public void PRELIMINARY_REVIEW_PASS(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.DEPARTMENT_JOINT_REVIEW.getCode()); } - @OnTransition(source = "PRE_APPLYING",target = "PREQUALIFICATION_FAILED") - public void PRELIMINARY_REVIEW_REJECT(Message message){ + + @OnTransition(source = "PRE_APPLYING", target = "PREQUALIFICATION_FAILED") + public void PRELIMINARY_REVIEW_REJECT(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.PREQUALIFICATION_FAILED.getCode()); } - @OnTransition(source = "PRE_APPLYING",target = "PENDING_PREQUALIFICATION_CHOICE") - public void PRE_APPLYING_WITHDRAW(Message message){ + + @OnTransition(source = "PRE_APPLYING", target = "PENDING_PREQUALIFICATION_CHOICE") + public void PRE_APPLYING_WITHDRAW(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.PENDING_PREQUALIFICATION_CHOICE.getCode()); } - @OnTransition(source = "DEPARTMENT_JOINT_REVIEW",target = "IN_THE_ANNUAL_PLAN") - public void DEPARTMENT_UNITED_REVIEW_PASS(Message message){ + @OnTransition(source = "DEPARTMENT_JOINT_REVIEW", target = "IN_THE_ANNUAL_PLAN") + public void DEPARTMENT_UNITED_REVIEW_PASS(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.IN_THE_ANNUAL_PLAN.getCode()); } - @OnTransition(source = "DEPARTMENT_JOINT_REVIEW",target = "DEPARTMENT_JOINT_REVIEW_FAILED") - public void DEPARTMENT_UNITED_REVIEW_REJECT(Message message){ + + @OnTransition(source = "DEPARTMENT_JOINT_REVIEW", target = "DEPARTMENT_JOINT_REVIEW_FAILED") + public void DEPARTMENT_UNITED_REVIEW_REJECT(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.DEPARTMENT_JOINT_REVIEW_FAILED.getCode()); } - @OnTransition(source = "DEPARTMENT_JOINT_REVIEW",target = "PRE_APPLYING") - public void DEPARTMENT_JOINT_REVIEW_WITHDRAW(Message message){ + + @OnTransition(source = "DEPARTMENT_JOINT_REVIEW", target = "PRE_APPLYING") + public void DEPARTMENT_JOINT_REVIEW_WITHDRAW(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.PRE_APPLYING.getCode()); } - @OnTransition(source = "IN_THE_ANNUAL_PLAN",target = "PLAN_TO_BE_DECLARED") - public void ANNUAL_PLAN_PROJECT_OPEN_PLAN_DECLARE(Message message){ + @OnTransition(source = "IN_THE_ANNUAL_PLAN", target = "PLAN_TO_BE_DECLARED") + public void ANNUAL_PLAN_PROJECT_OPEN_PLAN_DECLARE(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.PLAN_TO_BE_DECLARED.getCode()); } - @OnTransition(source = "IN_THE_ANNUAL_PLAN",target = "BE_SUSPENDED") - public void ANNUAL_PLAN_SUSPEND(Message message){ + + @OnTransition(source = "IN_THE_ANNUAL_PLAN", target = "BE_SUSPENDED") + public void ANNUAL_PLAN_SUSPEND(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.BE_SUSPENDED.getCode()); } - @OnTransition(source = "IN_THE_ANNUAL_PLAN",target = "DEPARTMENT_JOINT_REVIEW") - public void IN_THE_ANNUAL_PLAN_WITHDRAW(Message message){ + + @OnTransition(source = "IN_THE_ANNUAL_PLAN", target = "DEPARTMENT_JOINT_REVIEW") + public void IN_THE_ANNUAL_PLAN_WITHDRAW(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.DEPARTMENT_JOINT_REVIEW.getCode()); } - @OnTransition(source = "PLAN_TO_BE_DECLARED",target = "SCHEME_UNDER_REVIEW") - public void DECLARE_PLAN(Message message){ + @OnTransition(source = "PLAN_TO_BE_DECLARED", target = "SCHEME_UNDER_REVIEW") + public void DECLARE_PLAN(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.SCHEME_UNDER_REVIEW.getCode()); } - @OnTransition(source = "PLAN_TO_BE_DECLARED",target = "IN_THE_ANNUAL_PLAN") - public void PLAN_TO_DECLARE_WITHDRAW(Message message){ + + @OnTransition(source = "PLAN_TO_BE_DECLARED", target = "IN_THE_ANNUAL_PLAN") + public void PLAN_TO_DECLARE_WITHDRAW(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.IN_THE_ANNUAL_PLAN.getCode()); } - @OnTransition(source = "SCHEME_UNDER_REVIEW",target = "TO_BE_APPROVED") - public void PLAN_REVIEW_PASS(Message message){ + @OnTransition(source = "SCHEME_UNDER_REVIEW", target = "TO_BE_APPROVED") + public void PLAN_REVIEW_PASS(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.TO_BE_APPROVED.getCode()); } - @OnTransition(source = "SCHEME_UNDER_REVIEW",target = "SCHEME_REVIEW_FAILED") - public void PLAN_REVIEW_REJECT(Message message){ + + @OnTransition(source = "SCHEME_UNDER_REVIEW", target = "SCHEME_REVIEW_FAILED") + public void PLAN_REVIEW_REJECT(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.SCHEME_REVIEW_FAILED.getCode()); } - @OnTransition(source = "SCHEME_UNDER_REVIEW",target = "PLAN_TO_BE_DECLARED") - public void SCHEME_UNDER_REVIEW_WITHDRAW(Message message){ + + @OnTransition(source = "SCHEME_UNDER_REVIEW", target = "PLAN_TO_BE_DECLARED") + public void SCHEME_UNDER_REVIEW_WITHDRAW(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.PLAN_TO_BE_DECLARED.getCode()); } - @OnTransition(source = "TO_BE_APPROVED",target = "TO_BE_PURCHASED") - public void PROJECT_APPROVAL(Message message){ + @OnTransition(source = "TO_BE_APPROVED", target = "TO_BE_PURCHASED") + public void PROJECT_APPROVAL(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); // 待立项批复批复后,项目一级状态变更为已立项 project.setStage(ProjectStatusEnum.PROJECT_APPROVED.getCode()); project.setStatus(ProjectStatusEnum.TO_BE_PURCHASED.getCode()); } - @OnTransition(source = "TO_BE_APPROVED",target = "SCHEME_UNDER_REVIEW") - public void TO_BE_APPROVED_WITHDRAW(Message message){ + + @OnTransition(source = "TO_BE_APPROVED", target = "SCHEME_UNDER_REVIEW") + public void TO_BE_APPROVED_WITHDRAW(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.SCHEME_UNDER_REVIEW.getCode()); } - @OnTransition(source = "TO_BE_PURCHASED",target = "UNDER_CONSTRUCTION") - public void PURCHASE_PUT_ON_RECORD(Message message){ + @OnTransition(source = "TO_BE_PURCHASED", target = "UNDER_CONSTRUCTION") + public void PURCHASE_PUT_ON_RECORD(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.UNDER_CONSTRUCTION.getCode()); } - @OnTransition(source = "TO_BE_PURCHASED",target = "TO_BE_APPROVED") - public void TO_BE_PURCHASED_WITHDRAW(Message message){ + + @OnTransition(source = "TO_BE_PURCHASED", target = "TO_BE_APPROVED") + public void TO_BE_PURCHASED_WITHDRAW(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); // 待采购状态撤回后,项目一级状态回退到未立项 project.setStage(ProjectStatusEnum.NOT_APPROVED.getCode()); @@ -179,44 +195,48 @@ public class ProjectDeclareAction { } - @OnTransition(source = "UNDER_CONSTRUCTION",target = "TO_BE_FINALLY_INSPECTED") - public void PRELIMINARY_ACCEPTANCE_PUT_ON_RECORD(Message message){ + @OnTransition(source = "UNDER_CONSTRUCTION", target = "TO_BE_FINALLY_INSPECTED") + public void PRELIMINARY_ACCEPTANCE_PUT_ON_RECORD(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.UNDER_CONSTRUCTION.getCode()); } - @OnTransition(source = "UNDER_CONSTRUCTION",target = "TO_BE_PURCHASED") - public void UNDER_CONSTRUCTION_WITHDRAW(Message message){ + + @OnTransition(source = "UNDER_CONSTRUCTION", target = "TO_BE_PURCHASED") + public void UNDER_CONSTRUCTION_WITHDRAW(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.TO_BE_PURCHASED.getCode()); } - @OnTransition(source = "TO_BE_FINALLY_INSPECTED",target = "FINAL_ACCEPTANCE_IS_UNDER_REVIEW") - public void FINAL_ACCEPTANCE_APPLICATION(Message message){ + @OnTransition(source = "TO_BE_FINALLY_INSPECTED", target = "FINAL_ACCEPTANCE_IS_UNDER_REVIEW") + public void FINAL_ACCEPTANCE_APPLICATION(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.FINAL_ACCEPTANCE_IS_UNDER_REVIEW.getCode()); } - @OnTransition(source = "TO_BE_FINALLY_INSPECTED",target = "UNDER_CONSTRUCTION") - public void TO_BE_FINALLY_INSPECTED_WITHDRAW(Message message){ + + @OnTransition(source = "TO_BE_FINALLY_INSPECTED", target = "UNDER_CONSTRUCTION") + public void TO_BE_FINALLY_INSPECTED_WITHDRAW(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.UNDER_CONSTRUCTION.getCode()); } - @OnTransition(source = "FINAL_ACCEPTANCE_IS_UNDER_REVIEW",target = "ARCHIVED") - public void FINAL_ACCEPTANCE_PASS(Message message){ + @OnTransition(source = "FINAL_ACCEPTANCE_IS_UNDER_REVIEW", target = "ARCHIVED") + public void FINAL_ACCEPTANCE_PASS(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); // 终验审核通过后,项目一级状态变更为已归档 project.setStage(ProjectStatusEnum.ARCHIVED.getCode()); project.setStatus(ProjectStatusEnum.ARCHIVED.getCode()); } - @OnTransition(source = "FINAL_ACCEPTANCE_IS_UNDER_REVIEW",target = "FINAL_ACCEPTANCE_REVIEW_FAILED") - public void FINAL_ACCEPTANCE_REJECT(Message message){ + + @OnTransition(source = "FINAL_ACCEPTANCE_IS_UNDER_REVIEW", target = "FINAL_ACCEPTANCE_REVIEW_FAILED") + public void FINAL_ACCEPTANCE_REJECT(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.FINAL_ACCEPTANCE_REVIEW_FAILED.getCode()); } - @OnTransition(source = "FINAL_ACCEPTANCE_IS_UNDER_REVIEW",target = "FINAL_ACCEPTANCE_IS_UNDER_REVIEW") - public void FINAL_ACCEPTANCE_IS_UNDER_REVIEW_WITHDRAW(Message message){ + + @OnTransition(source = "FINAL_ACCEPTANCE_IS_UNDER_REVIEW", target = "FINAL_ACCEPTANCE_IS_UNDER_REVIEW") + public void FINAL_ACCEPTANCE_IS_UNDER_REVIEW_WITHDRAW(Message message) { Project project = (Project) message.getHeaders().get(PROJECT_DECLARE); project.setStatus(ProjectStatusEnum.FINAL_ACCEPTANCE_IS_UNDER_REVIEW.getCode()); } @@ -228,12 +248,12 @@ public class ProjectDeclareAction { public void execute(StateContext stateContext) { log.info(String.valueOf(stateContext.getTarget().getId())); ProjectStatusEnum projectStatusEnum = stateContext.getTarget().getId(); - if (projectStatusEnum.equals(ProjectStatusEnum.PENDING_PREQUALIFICATION_CHOICE)){ + if (projectStatusEnum.equals(ProjectStatusEnum.PENDING_PREQUALIFICATION_CHOICE)) { Project project = stateContext.getMessage().getHeaders().get(PROJECT_DECLARE, Project.class); - log.info("预审申报事件之前,项目的状态为:{}"+project.getStatus()); - if (StateMachineUtils.isCityProject(project) && StateMachineUtils.judgeDeclareAmount(project)){ + log.info("预审申报事件之前,项目的状态为:{}" + project.getStatus()); + if (StateMachineUtils.isCityProject(project) && StateMachineUtils.judgeDeclareAmount(project)) { project.setStatus(ProjectStatusEnum.JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS.getCode()); - }else { + } else { project.setStatus(ProjectStatusEnum.PRE_APPLYING.getCode()); } } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/action/ProjectDeclareChoiceAction.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/action/ProjectDeclareChoiceAction.java index 3607308..4b6b0e8 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/action/ProjectDeclareChoiceAction.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/action/ProjectDeclareChoiceAction.java @@ -3,7 +3,7 @@ package com.ningdatech.pmapi.common.statemachine.action; import com.ningdatech.pmapi.common.constant.StateMachineHeaderNameConstants; import com.ningdatech.pmapi.common.statemachine.util.StateMachineUtils; import com.ningdatech.pmapi.common.statemachine.event.ProjectStatusChangeEvent; -import com.ningdatech.pmapi.projectlib.enums.ProjectStatusEnum; +import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum; import com.ningdatech.pmapi.projectlib.model.entity.Project; import lombok.extern.slf4j.Slf4j; import org.springframework.statemachine.StateContext; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/builder/ProjectDeclareStateMachineBuilder.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/builder/ProjectDeclareStateMachineBuilder.java index c44f8da..4283c0c 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/builder/ProjectDeclareStateMachineBuilder.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/builder/ProjectDeclareStateMachineBuilder.java @@ -4,7 +4,7 @@ import com.ningdatech.pmapi.common.statemachine.action.ProjectDeclareChoiceActio import com.ningdatech.pmapi.common.statemachine.action.ProjectDeclareAction; import com.ningdatech.pmapi.common.statemachine.factory.ProjectDeclareGuardFactory; import com.ningdatech.pmapi.common.statemachine.event.ProjectStatusChangeEvent; -import com.ningdatech.pmapi.projectlib.enums.ProjectStatusEnum; +import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum; import com.ningdatech.pmapi.projectlib.model.entity.Project; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; @@ -259,7 +259,7 @@ public class ProjectDeclareStateMachineBuilder { @Override public StateMachineContext read(Project contextObj) { - StateMachineContext result = new DefaultStateMachineContext(ProjectStatusEnum.getValueByCode(contextObj.getStatus()), + StateMachineContext result = new DefaultStateMachineContext(ProjectStatusEnum.getValue(contextObj.getStatus()), null, null, null, null, MACHINEID_TO); return result; } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/event/ProjectStatusChangeEvent.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/event/ProjectStatusChangeEvent.java index 7c5fd11..7146033 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/event/ProjectStatusChangeEvent.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/event/ProjectStatusChangeEvent.java @@ -1,17 +1,16 @@ package com.ningdatech.pmapi.common.statemachine.event; -import com.ningdatech.pmapi.projectlib.enums.ProjectStatusEnum; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; -import org.apache.commons.lang3.StringUtils; import java.util.Objects; /** - * 项目状态改变事件 - * @return + * 项目状态改变事件 + * * @author CMM + * @return * @since 2023/02/07 9:22 */ @Getter @@ -22,153 +21,153 @@ public enum ProjectStatusChangeEvent { /** * 项目申报暂存(项目状态进入:待申报) */ - PROJECT_APPLICATION_HOLD(null,null,null), + PROJECT_APPLICATION_HOLD(null, null, null), /** * 项目申报提交(项目状态进入:单位内部审核中) */ - PROJECT_APPLICATION_SUBMIT(10015,null,null), + PROJECT_APPLICATION_SUBMIT(10015, null, null), /** * 单位内部审核驳回(项目状态进入:单位内部审核不通过) */ - UNDER_INTERNAL_REJECT(null,10001,null), + UNDER_INTERNAL_REJECT(null, 10001, null), /** * 单位内部审核通过(项目状态进入:待预审) */ - UNDER_INTERNAL_PASS(10001,null,null), + UNDER_INTERNAL_PASS(10001, null, null), /** * 预审申报(项目状态进入:待预审选择,有判断条件:市级项目且申报金额大于1000万项目状态变为:省级部门联审中;否则项目状态变为:预审中) */ - PRELIMINARY_REVIEW_DECLARE(10003,null,null), + PRELIMINARY_REVIEW_DECLARE(10003, null, null), /** * 省级部门联审不通过(项目状态变为:省级部门联审不通过) */ - PROVINCIAL_DEPARTMENT_REVIEW_REJECT(null,10004,null), + PROVINCIAL_DEPARTMENT_REVIEW_REJECT(null, 10004, null), /** * 省级部门联审通过(项目状态变为:预审中) */ - PROVINCIAL_DEPARTMENT_REVIEW_PASS(10004,null,null), + PROVINCIAL_DEPARTMENT_REVIEW_PASS(10004, null, null), /** * 预审驳回(项目状态变为:预审不通过) */ - PRELIMINARY_REVIEW_REJECT(null,10006,null), + PRELIMINARY_REVIEW_REJECT(null, 10006, null), /** * 预审通过(项目状态变为:部门联审中) */ - PRELIMINARY_REVIEW_PASS(10006,null,null), + PRELIMINARY_REVIEW_PASS(10006, null, null), /** * 部门联审驳回(项目状态变为:部门联审不通过) */ - DEPARTMENT_UNITED_REVIEW_REJECT(null,10008,null), + DEPARTMENT_UNITED_REVIEW_REJECT(null, 10008, null), /** * 部门联审通过(项目状态变为:年度计划中) */ - DEPARTMENT_UNITED_REVIEW_PASS(10008,null,null), + DEPARTMENT_UNITED_REVIEW_PASS(10008, null, null), /** * 年度计划暂缓(项目状态变为:被暂缓) */ - ANNUAL_PLAN_SUSPEND(null,10010,null), + ANNUAL_PLAN_SUSPEND(null, 10010, null), /** * 年度计划项目开启方案申报(项目状态变为:方案待申报) */ - ANNUAL_PLAN_PROJECT_OPEN_PLAN_DECLARE(10010,null,null), + ANNUAL_PLAN_PROJECT_OPEN_PLAN_DECLARE(10010, null, null), /** * 申报方案(项目状态变为:方案评审中) */ - DECLARE_PLAN(10016,null,null), + DECLARE_PLAN(10016, null, null), /** * 方案评审驳回(项目状态变为:方案评审不通过) */ - PLAN_REVIEW_REJECT(null,10012,null), + PLAN_REVIEW_REJECT(null, 10012, null), /** * 方案评审通过(项目状态变为:待立项批复) */ - PLAN_REVIEW_PASS(10012,null,null), + PLAN_REVIEW_PASS(10012, null, null), /** * 立项批复(项目状态变为:已立项-待采购) */ - PROJECT_APPROVAL(10014,null,null), + PROJECT_APPROVAL(10014, null, null), /** * 采购备案(项目状态变为:建设中) */ - PURCHASE_PUT_ON_RECORD(20001,null,null), + PURCHASE_PUT_ON_RECORD(20001, null, null), /** * 初验备案(项目状态变为:待终验) */ - PRELIMINARY_ACCEPTANCE_PUT_ON_RECORD(20002,null,null), + PRELIMINARY_ACCEPTANCE_PUT_ON_RECORD(20002, null, null), /** * 终验申请(项目状态变为:终验审核中) */ - FINAL_ACCEPTANCE_APPLICATION(20003,null,null), + FINAL_ACCEPTANCE_APPLICATION(20003, null, null), /** * 终验审核不通过(项目状态变为:终验审核不通过) */ - FINAL_ACCEPTANCE_REJECT(null,20004,null), + FINAL_ACCEPTANCE_REJECT(null, 20004, null), /** * 终验审核通过(项目状态变为:已归档) */ - FINAL_ACCEPTANCE_PASS(null,null,null), + FINAL_ACCEPTANCE_PASS(null, null, null), // 下个节点还未提交审核意见时,流程发起人和前一个审核人可以点击撤回 /** * 单位内部审核中时被撤回(项目状态进入:待申报) */ - UNDER_INTERNAL_WITHDRAW(null,null,10001), + UNDER_INTERNAL_WITHDRAW(null, null, 10001), /** * 待预审时被撤回(项目状态进入:单位内部审核中) */ - PENDING_PREQUALIFICATION_WITHDRAW(null,null,10003), + PENDING_PREQUALIFICATION_WITHDRAW(null, null, 10003), /** * 省级部门联审中时被撤回(项目状态进入:待预审) */ - JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS_WITHDRAW(null,null,10004), + JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS_WITHDRAW(null, null, 10004), /** - * 预审中时被撤回(项目状态进入:待预审选择,,有判断条件:市级项目且申报金额大于1000万项目状态变为:省级部门联审中;否则项目状态变为:预审中) + * 预审中时被撤回(项目状态进入:待预审选择,,有判断条件:市级项目且申报金额大于1000万项目状态变为:省级部门联审中;否则项目状态变为:预审中) */ - PRE_APPLYING_WITHDRAW(null,null,10006), + PRE_APPLYING_WITHDRAW(null, null, 10006), /** - * 部门联审中时被撤回(项目状态进入:预审中) + * 部门联审中时被撤回(项目状态进入:预审中) */ - DEPARTMENT_JOINT_REVIEW_WITHDRAW(null,null,10008), + DEPARTMENT_JOINT_REVIEW_WITHDRAW(null, null, 10008), /** - * 年度计划中时被撤回(项目状态进入:部门联审中) + * 年度计划中时被撤回(项目状态进入:部门联审中) */ - IN_THE_ANNUAL_PLAN_WITHDRAW(null,null,10010), + IN_THE_ANNUAL_PLAN_WITHDRAW(null, null, 10010), /** * 方案待申报时被撤回(项目状态进入:年度计划中) */ - PLAN_TO_DECLARE_WITHDRAW(null,null,10016), + PLAN_TO_DECLARE_WITHDRAW(null, null, 10016), /** * 方案评审中时被撤回(项目状态进入:方案待申报) */ - SCHEME_UNDER_REVIEW_WITHDRAW(null,null,10012), + SCHEME_UNDER_REVIEW_WITHDRAW(null, null, 10012), /** * 待立项批复时被撤回(项目状态进入:方案评审中) */ - TO_BE_APPROVED_WITHDRAW(null,null,10014), + TO_BE_APPROVED_WITHDRAW(null, null, 10014), /** * 待采购时被撤回(项目状态进入:待立项批复) */ - TO_BE_PURCHASED_WITHDRAW(null,null,20001), + TO_BE_PURCHASED_WITHDRAW(null, null, 20001), /** - * 建设中时被撤回(项目状态进入:待采购) + * 建设中时被撤回(项目状态进入:待采购) */ - UNDER_CONSTRUCTION_WITHDRAW(null,null,20002), + UNDER_CONSTRUCTION_WITHDRAW(null, null, 20002), /** * 待终验时被撤回(项目状态进入:建设中) */ - TO_BE_FINALLY_INSPECTED_WITHDRAW(null,null,20003), + TO_BE_FINALLY_INSPECTED_WITHDRAW(null, null, 20003), /** - * 终验审核中时被撤回(项目状态进入:待终验) + * 终验审核中时被撤回(项目状态进入:待终验) */ - FINAL_ACCEPTANCE_IS_UNDER_REVIEW_WITHDRAW(null,null,20004); + FINAL_ACCEPTANCE_IS_UNDER_REVIEW_WITHDRAW(null, null, 20004); private Integer passProjectStatusCode; private Integer rejectProjectStatusCode; private Integer withdrawProjectStatusCode; public static ProjectStatusChangeEvent getPassValueByCode(Integer code) { - if(Objects.isNull(code)){ + if (Objects.isNull(code)) { return null; } for (ProjectStatusChangeEvent t : ProjectStatusChangeEvent.values()) { @@ -180,7 +179,7 @@ public enum ProjectStatusChangeEvent { } public static ProjectStatusChangeEvent getRejectValueByCode(Integer code) { - if(Objects.isNull(code)){ + if (Objects.isNull(code)) { return null; } for (ProjectStatusChangeEvent t : ProjectStatusChangeEvent.values()) { @@ -192,7 +191,7 @@ public enum ProjectStatusChangeEvent { } public static ProjectStatusChangeEvent getWithdrawValueByCode(Integer code) { - if(Objects.isNull(code)){ + if (Objects.isNull(code)) { return null; } for (ProjectStatusChangeEvent t : ProjectStatusChangeEvent.values()) { diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/factory/ProjectDeclareGuardFactory.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/factory/ProjectDeclareGuardFactory.java index 42330fe..3213dd0 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/factory/ProjectDeclareGuardFactory.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/factory/ProjectDeclareGuardFactory.java @@ -3,7 +3,7 @@ package com.ningdatech.pmapi.common.statemachine.factory; import com.ningdatech.pmapi.common.constant.StateMachineHeaderNameConstants; import com.ningdatech.pmapi.common.statemachine.util.StateMachineUtils; import com.ningdatech.pmapi.common.statemachine.event.ProjectStatusChangeEvent; -import com.ningdatech.pmapi.projectlib.enums.ProjectStatusEnum; +import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum; import com.ningdatech.pmapi.projectlib.model.entity.Project; import org.springframework.statemachine.StateContext; import org.springframework.statemachine.guard.Guard; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/util/StateMachineUtils.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/util/StateMachineUtils.java index ddb4cda..b96d000 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/util/StateMachineUtils.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/util/StateMachineUtils.java @@ -5,7 +5,7 @@ import com.ningdatech.pmapi.common.constant.ProjectDeclareConstants; import com.ningdatech.pmapi.common.constant.StateMachineHeaderNameConstants; import com.ningdatech.pmapi.common.statemachine.builder.ProjectDeclareStateMachineBuilder; import com.ningdatech.pmapi.common.statemachine.event.ProjectStatusChangeEvent; -import com.ningdatech.pmapi.projectlib.enums.ProjectStatusEnum; +import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum; import com.ningdatech.pmapi.projectlib.model.entity.Project; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -36,19 +36,20 @@ public class StateMachineUtils { @Resource(name = "projectDeclareStateMachinePersister") private StateMachinePersister projectDeclareStateMachinePersister; - public void execute(Project project, ProjectStatusChangeEvent event) throws Exception{ - log.info("调用状态机前的项目状态为>>>>>>>>>>{}"+project.getStatus()); + public void execute(Project project, ProjectStatusChangeEvent event) throws Exception { + log.info("调用状态机前的项目状态为>>>>>>>>>>{}" + project.getStatus()); //获取TO状态机 StateMachine stateMachine = projectDeclareStateMachineBuilder.build(); Message message = MessageBuilder.withPayload(event).setHeader(PROJECT_DECLARE, project).build(); //初始化状态机 - projectDeclareStateMachinePersister.restore(stateMachine,project); + projectDeclareStateMachinePersister.restore(stateMachine, project); stateMachine.sendEvent(message); - log.info("调用状态机后的项目状态为>>>>>>>>>>{}"+project.getStatus()); + log.info("调用状态机后的项目状态为>>>>>>>>>>{}" + project.getStatus()); } /** * 判断项目申报金额是否大于1000万元 + * * @param project * @return boolean * @author CMM @@ -56,7 +57,7 @@ public class StateMachineUtils { */ public static boolean judgeDeclareAmount(Project project) { int flag = project.getDeclareAmount().compareTo(ProjectDeclareConstants.Number.DECLARE_AMOUNT_JUDGEMENT); - if (flag > 0 || flag == 0){ + if (flag > 0 || flag == 0) { return true; } return false; @@ -64,6 +65,7 @@ public class StateMachineUtils { /** * 判断项目建设层级是否为市级项目 + * * @param project * @return boolean * @author CMM @@ -71,7 +73,7 @@ public class StateMachineUtils { */ public static boolean isCityProject(Project project) { if (ProjectDeclareConstants.Number.CITY_BUILD_LEVEL.equals(project.getBuildLevel()) || - ProjectDeclareConstants.Number.CITY_SELF_BUILD_LEVEL.equals(project.getBuildLevel())){ + ProjectDeclareConstants.Number.CITY_SELF_BUILD_LEVEL.equals(project.getBuildLevel())) { return true; } return false; @@ -79,7 +81,7 @@ public class StateMachineUtils { public ProjectStatusChangeEvent getProjectStatusPassEvent(Integer projectStatusSecond) { ProjectStatusChangeEvent event = ProjectStatusChangeEvent.getPassValueByCode(projectStatusSecond); - if (Objects.isNull(event)){ + if (Objects.isNull(event)) { throw new BizException("该状态下没有对应的通过操作!"); } return event; @@ -87,7 +89,7 @@ public class StateMachineUtils { public ProjectStatusChangeEvent getProjectStatusRejectEvent(Integer projectStatusSecond) { ProjectStatusChangeEvent event = ProjectStatusChangeEvent.getRejectValueByCode(projectStatusSecond); - if (Objects.isNull(event)){ + if (Objects.isNull(event)) { throw new BizException("该状态下没有对应的驳回操作!"); } return event; @@ -95,7 +97,7 @@ public class StateMachineUtils { public ProjectStatusChangeEvent getProjectStatusWithdrawEvent(Integer projectStatusSecond) { ProjectStatusChangeEvent event = ProjectStatusChangeEvent.getWithdrawValueByCode(projectStatusSecond); - if (Objects.isNull(event)){ + if (Objects.isNull(event)) { throw new BizException("该状态下没有对应的撤回操作!"); } return event; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/DeclaredProjectManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/DeclaredProjectManage.java index 0930cd2..c091aeb 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/DeclaredProjectManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/DeclaredProjectManage.java @@ -15,14 +15,13 @@ import com.ningdatech.pmapi.projectdeclared.entity.vo.ProjectDeclaredDetailVO; import com.ningdatech.pmapi.projectdeclared.entity.vo.ProjectDeclaredListItemVO; import com.ningdatech.pmapi.projectdeclared.entity.vo.ProjectDraftVo; import com.ningdatech.pmapi.projectdeclared.service.IProjectDraftService; -import com.ningdatech.pmapi.projectlib.enums.ProjectStatusEnum; +import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum; import com.ningdatech.pmapi.projectlib.model.entity.Project; import com.ningdatech.pmapi.projectlib.model.entity.ProjectApplication; import com.ningdatech.pmapi.projectlib.service.IProjectApplicationService; import com.ningdatech.pmapi.projectlib.service.IProjectService; import com.wflow.bean.entity.WflowModels; import com.wflow.exception.BusinessException; -import com.wflow.workflow.bean.dto.ProcessInstanceUserDto; import com.wflow.workflow.bean.vo.ProcessStartParamsVo; import com.wflow.workflow.service.ProcessInstanceService; import com.wflow.workflow.service.ProcessModelService; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/controller/AnnualPlanController.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/controller/AnnualPlanController.java index 718b28a..171a79e 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/controller/AnnualPlanController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/controller/AnnualPlanController.java @@ -1,6 +1,13 @@ package com.ningdatech.pmapi.projectlib.controller; +import com.ningdatech.basic.model.PageVo; +import com.ningdatech.pmapi.projectlib.manage.AnnualPlanLibManage; +import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq; +import com.ningdatech.pmapi.projectlib.model.vo.AnnualPlanListItemVO; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -13,9 +20,17 @@ import org.springframework.web.bind.annotation.RestController; * @since 14:07 2023/2/11 */ @RestController +@AllArgsConstructor @Api(tags = "年度计划库") @RequestMapping("/api/v1/annualPlan") public class AnnualPlanController { + private final AnnualPlanLibManage annualPlanLibManage; + + @GetMapping("/list") + @ApiOperation("年段计划库列表") + public PageVo annualPlanLibList(ProjectListReq req) { + return annualPlanLibManage.annulPlanLibList(req); + } } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectStatusEnum.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectStatusEnum.java new file mode 100644 index 0000000..9631f37 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectStatusEnum.java @@ -0,0 +1,90 @@ +package com.ningdatech.pmapi.projectlib.enumeration; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.StringUtils; + +import java.util.Arrays; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + *

+ * ProjectStatusEnum + *

+ * + * @author Poffy + * @since 16:54 2023/2/11 + */ +@Getter +@AllArgsConstructor +@NoArgsConstructor +public enum ProjectStatusEnum { + /** + * 项目阶段:未立项 + */ + NOT_APPROVED(10000, "未立项"), + UNDER_INTERNAL_AUDIT(10001, "单位内部审核中"), + UNDER_INTERNAL_AUDIT_NOT_PASS(10002, "单位内部审核不通过"), + PENDING_PREQUALIFICATION(10003, "待预审"), + JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS(10004, "省级部门联审中"), + THE_JOINT_REVIEW_OF_PROVINCIAL_DEPARTMENTS_FAILED(10005, "省级部门联审不通过"), + PRE_APPLYING(10006, "预审中"), + PREQUALIFICATION_FAILED(10007, "预审不通过"), + DEPARTMENT_JOINT_REVIEW(10008, "部门联审中"), + DEPARTMENT_JOINT_REVIEW_FAILED(10009, "部门联审不通过"), + IN_THE_ANNUAL_PLAN(10010, "年度计划中"), + BE_SUSPENDED(10011, "被暂缓"), + SCHEME_UNDER_REVIEW(10012, "方案评审中"), + SCHEME_REVIEW_FAILED(10013, "方案评审不通过"), + TO_BE_APPROVED(10014, "待立项批复"), + TO_BE_DECLARED(10015, "待申报"), + PLAN_TO_BE_DECLARED(10016, "方案待申报"), + PENDING_PREQUALIFICATION_CHOICE(10017, "待预审选择态"), + /** + * 项目阶段:已立项 + */ + PROJECT_APPROVED(20000, "已立项"), + TO_BE_PURCHASED(20001, "待采购"), + UNDER_CONSTRUCTION(20002, "建设中"), + TO_BE_FINALLY_INSPECTED(20003, "待终验"), + FINAL_ACCEPTANCE_IS_UNDER_REVIEW(20004, "终验审核中"), + FINAL_ACCEPTANCE_REVIEW_FAILED(20005, "终验审核不通过"), + /** + * 项目阶段:已归档 + */ + ARCHIVED(30000, "已归档"); + + public static void main(String[] args) { + System.out.println(Arrays.stream(ProjectStatusEnum.values()).filter(w -> w.getCode() >= 10010).collect(Collectors.toList())); + } + + private Integer code; + private String desc; + + public static String getDesc(Integer code) { + if (Objects.isNull(code)) { + return StringUtils.EMPTY; + } + for (ProjectStatusEnum t : ProjectStatusEnum.values()) { + if (code.equals(t.getCode())) { + return t.desc; + } + } + return StringUtils.EMPTY; + } + + public static ProjectStatusEnum getValue(Integer code) { + if (Objects.isNull(code)) { + return null; + } + for (ProjectStatusEnum t : ProjectStatusEnum.values()) { + if (code.equals(t.getCode())) { + return t; + } + } + return null; + } + +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectTypeEnum.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectTypeEnum.java new file mode 100644 index 0000000..2ba2688 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectTypeEnum.java @@ -0,0 +1,42 @@ +package com.ningdatech.pmapi.projectlib.enumeration; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.StringUtils; + +import java.util.Objects; + +/** + *

+ * ProjectTypeEnum + *

+ * + * @author Poffy + * @since 16:56 2023/2/11 + */ +@Getter +@AllArgsConstructor +@NoArgsConstructor +public enum ProjectTypeEnum { + /** + * 项目类型 + */ + BUILD(1, "建设"), + DEV_OPS(2, "运维"); + + private Integer code; + private String desc; + + public static String getDesc(Integer code) { + if (Objects.isNull(code)) { + return StringUtils.EMPTY; + } + for (ProjectTypeEnum t : ProjectTypeEnum.values()) { + if (code.equals(t.getCode())) { + return t.desc; + } + } + return StringUtils.EMPTY; + } +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enums/ProjectStatusEnum.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enums/ProjectStatusEnum.java deleted file mode 100644 index b60ed59..0000000 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enums/ProjectStatusEnum.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.ningdatech.pmapi.projectlib.enums; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import org.apache.commons.lang3.StringUtils; - -import java.util.Objects; - -@Getter -@AllArgsConstructor -@NoArgsConstructor -public enum ProjectStatusEnum { - /** - * 项目状态 - */ - NOT_APPROVED (10000,"未立项"), - UNDER_INTERNAL_AUDIT (10001,"单位内部审核中"), - UNDER_INTERNAL_AUDIT_NOT_PASS (10002,"单位内部审核不通过"), - PENDING_PREQUALIFICATION (10003,"待预审"), - JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS (10004,"省级部门联审中"), - THE_JOINT_REVIEW_OF_PROVINCIAL_DEPARTMENTS_FAILED (10005,"省级部门联审不通过"), - PRE_APPLYING (10006,"预审中"), - PREQUALIFICATION_FAILED (10007,"预审不通过"), - DEPARTMENT_JOINT_REVIEW (10008,"部门联审中"), - DEPARTMENT_JOINT_REVIEW_FAILED (10009,"部门联审不通过"), - IN_THE_ANNUAL_PLAN (10010,"年度计划中"), - BE_SUSPENDED (10011,"被暂缓"), - SCHEME_UNDER_REVIEW (10012,"方案评审中"), - SCHEME_REVIEW_FAILED (10013,"方案评审不通过"), - TO_BE_APPROVED (10014,"待立项批复"), - TO_BE_DECLARED (10015,"待申报"), - PLAN_TO_BE_DECLARED (10016,"方案待申报"), - PENDING_PREQUALIFICATION_CHOICE (10017,"待预审选择态"), - PROJECT_APPROVED (20000,"已立项"), - TO_BE_PURCHASED (20001,"待采购"), - UNDER_CONSTRUCTION (20002,"建设中"), - TO_BE_FINALLY_INSPECTED (20003,"待终验"), - FINAL_ACCEPTANCE_IS_UNDER_REVIEW (20004,"终验审核中"), - FINAL_ACCEPTANCE_REVIEW_FAILED (20005,"终验审核不通过"), - ARCHIVED (30000,"已归档"); - - private Integer code; - private String desc; - - public static String getDescByCode(Integer code) { - if(Objects.isNull(code)){ - return StringUtils.EMPTY; - } - for (ProjectStatusEnum t : ProjectStatusEnum.values()) { - if (code.equals(t.getCode())) { - return t.desc; - } - } - return StringUtils.EMPTY; - } - - public static ProjectStatusEnum getValueByCode(Integer code) { - if(Objects.isNull(code)){ - return null; - } - for (ProjectStatusEnum t : ProjectStatusEnum.values()) { - if (code.equals(t.getCode())) { - return t; - } - } - return null; - } - -} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enums/ProjectTypeEnum.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enums/ProjectTypeEnum.java deleted file mode 100644 index 1aa579a..0000000 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enums/ProjectTypeEnum.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.ningdatech.pmapi.projectlib.enums; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import org.apache.commons.lang3.StringUtils; - -import java.util.Objects; - -@Getter -@AllArgsConstructor -@NoArgsConstructor -public enum ProjectTypeEnum { - /** - * 项目类型 - */ - BUILD (1,"建设"), - DEV_OPS (2,"运维"); - - private Integer code; - private String desc; - - public static String getDescByCode(Integer code) { - if(Objects.isNull(code)){ - return StringUtils.EMPTY; - } - for (ProjectTypeEnum t : ProjectTypeEnum.values()) { - if (code.equals(t.getCode())) { - return t.desc; - } - } - return StringUtils.EMPTY; - } -} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/AnnualPlanLibManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/AnnualPlanLibManage.java index 98bed68..b5c2ec5 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/AnnualPlanLibManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/AnnualPlanLibManage.java @@ -2,13 +2,23 @@ package com.ningdatech.pmapi.projectlib.manage; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ningdatech.basic.model.PageVo; +import com.ningdatech.basic.util.CollUtils; +import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum; import com.ningdatech.pmapi.projectlib.helper.ProjectHelper; import com.ningdatech.pmapi.projectlib.model.entity.Project; import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq; +import com.ningdatech.pmapi.projectlib.model.vo.AnnualPlanListItemVO; import com.ningdatech.pmapi.projectlib.service.IProjectService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import static com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum.*; + /** *

* AnnualPlanLibManage @@ -23,9 +33,54 @@ public class AnnualPlanLibManage { private final IProjectService projectService; - public void annulPlanLibList(ProjectListReq req) { + /** + * 年度计划查询状态 + */ + private static final List ANNUAL_PLAN_LIST_STATUS = Arrays.asList( + IN_THE_ANNUAL_PLAN, + BE_SUSPENDED, + SCHEME_UNDER_REVIEW, + SCHEME_REVIEW_FAILED, + TO_BE_APPROVED, + TO_BE_DECLARED, + PLAN_TO_BE_DECLARED, + PENDING_PREQUALIFICATION_CHOICE, + PROJECT_APPROVED, + TO_BE_PURCHASED, + UNDER_CONSTRUCTION, + TO_BE_FINALLY_INSPECTED, + FINAL_ACCEPTANCE_IS_UNDER_REVIEW, + FINAL_ACCEPTANCE_REVIEW_FAILED, + ARCHIVED + ); + + + public PageVo annulPlanLibList(ProjectListReq req) { LambdaQueryWrapper query = ProjectHelper.projectQuery(req); + query.orderByDesc(Project::getAnnualPlanAddTime); + query.in(Project::getStatus, CollUtils.fieldList(ANNUAL_PLAN_LIST_STATUS, ProjectStatusEnum::getCode)); Page page = projectService.page(req.page(), query); + long total; + if ((total = page.getTotal()) == 0) { + return PageVo.empty(); + } + PageVo result = PageVo.of(new ArrayList<>(), total); + page.getRecords().forEach(w -> { + AnnualPlanListItemVO item = new AnnualPlanListItemVO(); + item.setProjectId(w.getId()); + item.setProjectName(w.getProjectName()); + item.setStage(w.getStage()); + item.setStatus(w.getStatus()); + item.setProjectYear(w.getProjectYear()); + item.setProjectType(w.getProjectType()); + item.setDeclaredAmount(w.getDeclareAmount()); + item.setBuildOrg(w.getBuildOrgName()); + item.setCreateOn(w.getCreateOn()); + // TODO 是否开启项目申报 + item.setIsStartDeclaredProject(true); + result.getRecords().add(item); + }); + return result; } } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/model/vo/AnnualPlanListItemVO.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/model/vo/AnnualPlanListItemVO.java new file mode 100644 index 0000000..a70b985 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/model/vo/AnnualPlanListItemVO.java @@ -0,0 +1,50 @@ +package com.ningdatech.pmapi.projectlib.model.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + *

+ * AnnualPlanListItemVO + *

+ * + * @author WendyYang + * @since 15:19 2023/2/11 + */ +@Data +public class AnnualPlanListItemVO { + + @ApiModelProperty("项目名称") + private String projectName; + + @ApiModelProperty("建设单位") + private String buildOrg; + + @ApiModelProperty("项目类型") + private Integer projectType; + + @ApiModelProperty("申报金额") + private BigDecimal declaredAmount; + + @ApiModelProperty("预算年度") + private Integer projectYear; + + @ApiModelProperty("项目是否开起方案申报") + private Boolean isStartDeclaredProject; + + @ApiModelProperty("项目阶段") + private Integer stage; + + @ApiModelProperty("项目状态") + private Integer status; + + @ApiModelProperty("项目ID") + private Long projectId; + + @ApiModelProperty("创建时间") + private LocalDateTime createOn; + +} diff --git a/pmapi/src/test/java/com/ningdatech/pmapi/statemachine/StateMachineTest.java b/pmapi/src/test/java/com/ningdatech/pmapi/statemachine/StateMachineTest.java index f88744c..4fe7a7f 100644 --- a/pmapi/src/test/java/com/ningdatech/pmapi/statemachine/StateMachineTest.java +++ b/pmapi/src/test/java/com/ningdatech/pmapi/statemachine/StateMachineTest.java @@ -3,7 +3,7 @@ package com.ningdatech.pmapi.statemachine; import com.ningdatech.pmapi.AppTests; import com.ningdatech.pmapi.common.statemachine.util.StateMachineUtils; import com.ningdatech.pmapi.common.statemachine.event.ProjectStatusChangeEvent; -import com.ningdatech.pmapi.projectlib.enums.ProjectStatusEnum; +import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum; import com.ningdatech.pmapi.projectlib.model.entity.Project; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; diff --git a/pmapi/src/test/java/com/ningdatech/pmapi/sys/project/ProjectStateTest.java b/pmapi/src/test/java/com/ningdatech/pmapi/sys/project/ProjectStateTest.java index d5a8bfc..9c6a783 100644 --- a/pmapi/src/test/java/com/ningdatech/pmapi/sys/project/ProjectStateTest.java +++ b/pmapi/src/test/java/com/ningdatech/pmapi/sys/project/ProjectStateTest.java @@ -4,7 +4,7 @@ import cn.hutool.core.date.StopWatch; import com.ningdatech.pmapi.AppTests; import com.ningdatech.pmapi.common.statemachine.event.ProjectStatusChangeEvent; import com.ningdatech.pmapi.common.statemachine.util.StateMachineUtils; -import com.ningdatech.pmapi.projectlib.enums.ProjectStatusEnum; +import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum; import com.ningdatech.pmapi.projectlib.model.entity.Project; import org.junit.Test;