@@ -3,6 +3,7 @@ package com.hz.pm.api.common.statemachine.action; | |||||
import com.hz.pm.api.common.statemachine.builder.impl.XcfhxStateMachineBuilderImpl; | import com.hz.pm.api.common.statemachine.builder.impl.XcfhxStateMachineBuilderImpl; | ||||
import com.hz.pm.api.common.statemachine.event.ProjectStateChangeEvent; | import com.hz.pm.api.common.statemachine.event.ProjectStateChangeEvent; | ||||
import com.hz.pm.api.projectdeclared.model.entity.Purchase; | import com.hz.pm.api.projectdeclared.model.entity.Purchase; | ||||
import com.hz.pm.api.projectlib.model.enumeration.status.TenderMainStatus; | |||||
import com.hz.pm.api.projectlib.model.enumeration.status.TenderXcfhxApplyStatus; | import com.hz.pm.api.projectlib.model.enumeration.status.TenderXcfhxApplyStatus; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.springframework.messaging.Message; | import org.springframework.messaging.Message; | ||||
@@ -31,6 +32,7 @@ public class XcfhxStateChangeAction { | |||||
@OnTransition(source = "TO_BE_SUBMIT_XCFHX_APPLY", target = "ON_XCFHX_APPLY") | @OnTransition(source = "TO_BE_SUBMIT_XCFHX_APPLY", target = "ON_XCFHX_APPLY") | ||||
public void SUBMIT_XCFHX_APPLY(Message<ProjectStateChangeEvent> message) { | public void SUBMIT_XCFHX_APPLY(Message<ProjectStateChangeEvent> message) { | ||||
Purchase purchase = getPurchaseInfo(message); | Purchase purchase = getPurchaseInfo(message); | ||||
purchase.setStatus(TenderXcfhxApplyStatus.ON_XCFHX_APPLY.getCode()); | |||||
purchase.setXcfhxApplyStatus(TenderXcfhxApplyStatus.ON_XCFHX_APPLY.getCode()); | purchase.setXcfhxApplyStatus(TenderXcfhxApplyStatus.ON_XCFHX_APPLY.getCode()); | ||||
} | } | ||||
@@ -42,6 +44,7 @@ public class XcfhxStateChangeAction { | |||||
@OnTransition(source = "ON_XCFHX_APPLY", target = "XCFHX_APPLY_PASSED") | @OnTransition(source = "ON_XCFHX_APPLY", target = "XCFHX_APPLY_PASSED") | ||||
public void XCFHX_APPLY_PASSED(Message<ProjectStateChangeEvent> message) { | public void XCFHX_APPLY_PASSED(Message<ProjectStateChangeEvent> message) { | ||||
Purchase purchase = getPurchaseInfo(message); | Purchase purchase = getPurchaseInfo(message); | ||||
purchase.setStatus(TenderMainStatus.TO_BE_SUBMIT_FINALLY_INSPECTED_APPLY.getCode()); | |||||
purchase.setXcfhxApplyStatus(TenderXcfhxApplyStatus.XCFHX_APPLY_PASSED.getCode()); | purchase.setXcfhxApplyStatus(TenderXcfhxApplyStatus.XCFHX_APPLY_PASSED.getCode()); | ||||
} | } | ||||
@@ -53,6 +56,7 @@ public class XcfhxStateChangeAction { | |||||
@OnTransition(source = "ON_XCFHX_APPLY", target = "XCFHX_APPLY_FAILED") | @OnTransition(source = "ON_XCFHX_APPLY", target = "XCFHX_APPLY_FAILED") | ||||
public void XCFHX_APPLY_FAILED(Message<ProjectStateChangeEvent> message) { | public void XCFHX_APPLY_FAILED(Message<ProjectStateChangeEvent> message) { | ||||
Purchase purchase = getPurchaseInfo(message); | Purchase purchase = getPurchaseInfo(message); | ||||
purchase.setStatus(TenderXcfhxApplyStatus.XCFHX_APPLY_FAILED.getCode()); | |||||
purchase.setXcfhxApplyStatus(TenderXcfhxApplyStatus.XCFHX_APPLY_FAILED.getCode()); | purchase.setXcfhxApplyStatus(TenderXcfhxApplyStatus.XCFHX_APPLY_FAILED.getCode()); | ||||
} | } | ||||
@@ -64,6 +68,7 @@ public class XcfhxStateChangeAction { | |||||
@OnTransition(source = "XCFHX_APPLY_FAILED", target = "ON_XCFHX_APPLY") | @OnTransition(source = "XCFHX_APPLY_FAILED", target = "ON_XCFHX_APPLY") | ||||
public void RESUBMIT_XCFHX_APPLY(Message<ProjectStateChangeEvent> message) { | public void RESUBMIT_XCFHX_APPLY(Message<ProjectStateChangeEvent> message) { | ||||
Purchase purchase = getPurchaseInfo(message); | Purchase purchase = getPurchaseInfo(message); | ||||
purchase.setStatus(TenderXcfhxApplyStatus.ON_XCFHX_APPLY.getCode()); | |||||
purchase.setXcfhxApplyStatus(TenderXcfhxApplyStatus.ON_XCFHX_APPLY.getCode()); | purchase.setXcfhxApplyStatus(TenderXcfhxApplyStatus.ON_XCFHX_APPLY.getCode()); | ||||
} | } | ||||
@@ -8,6 +8,7 @@ import com.hz.pm.api.projectdeclared.model.entity.Purchase; | |||||
import com.hz.pm.api.projectlib.model.enumeration.status.ITenderStatus; | import com.hz.pm.api.projectlib.model.enumeration.status.ITenderStatus; | ||||
import com.hz.pm.api.projectlib.model.enumeration.status.TenderAdaptStatus; | import com.hz.pm.api.projectlib.model.enumeration.status.TenderAdaptStatus; | ||||
import com.hz.pm.api.projectlib.model.enumeration.status.TenderMainStatus; | import com.hz.pm.api.projectlib.model.enumeration.status.TenderMainStatus; | ||||
import com.hz.pm.api.projectlib.model.enumeration.status.TenderXcfhxApplyStatus; | |||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.springframework.beans.factory.BeanFactory; | import org.springframework.beans.factory.BeanFactory; | ||||
@@ -132,7 +133,7 @@ public class TenderStateMachineBuilderImpl implements BaseStateMachineBuilder<Pu | |||||
// 上传初验材料 | // 上传初验材料 | ||||
.withExternal() | .withExternal() | ||||
.source(TenderMainStatus.TO_BE_SUBMIT_FIRST_INSPECTED_INFO) | .source(TenderMainStatus.TO_BE_SUBMIT_FIRST_INSPECTED_INFO) | ||||
.target(TenderMainStatus.TO_BE_SUBMIT_FINALLY_INSPECTED_APPLY) | |||||
.target(TenderXcfhxApplyStatus.TO_BE_SUBMIT_XCFHX_APPLY) | |||||
.event(TenderStateChangeEvent.SUBMIT_FIRST_INSPECTED_FILES) | .event(TenderStateChangeEvent.SUBMIT_FIRST_INSPECTED_FILES) | ||||
.and() | .and() | ||||
// 终验申报 | // 终验申报 | ||||
@@ -58,4 +58,6 @@ public class MhTodoExtraParamDTO { | |||||
private Long xinchuangId; | private Long xinchuangId; | ||||
private Integer activeName; | |||||
} | } |
@@ -20,87 +20,105 @@ public enum MHTodoTypeEnum { | |||||
"您单位的【%s】开工文件备案已通过,可在过程管理-适配改造中进行提交系统自测信息的操作。", | "您单位的【%s】开工文件备案已通过,可在过程管理-适配改造中进行提交系统自测信息的操作。", | ||||
"【%s】系统自测信息需要您处理,请及时处理", | "【%s】系统自测信息需要您处理,请及时处理", | ||||
"/declareManage/projectManages/adaptiveTransformation", | "/declareManage/projectManages/adaptiveTransformation", | ||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=1100"), | |||||
20010, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=${activeName}"), | |||||
TEST_VALID_APPLY("监理核实验证", null, | TEST_VALID_APPLY("监理核实验证", null, | ||||
"您单位的【%s】系统自测备案已通过,可在过程管理-适配改造中进行填写监理核实验证信息的操作。", | "您单位的【%s】系统自测备案已通过,可在过程管理-适配改造中进行填写监理核实验证信息的操作。", | ||||
"【%s】监理核实验证需要您处理,请及时处理", | "【%s】监理核实验证需要您处理,请及时处理", | ||||
"/declareManage/projectManages/adaptiveTransformation", | "/declareManage/projectManages/adaptiveTransformation", | ||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=3100"), | |||||
20010, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=${activeName}"), | |||||
XCFHX_TEST_APPLY("信创符合性测评", null, | |||||
"您单位的【%s】已完成初验备案,可在过程管理-终验申请中进行信创符合性测评备案的操作。", | |||||
"【%s】信创符合性测评需要您处理,请及时处理", | |||||
"/declareManage/projectManages/finalInspectionDeclare", | |||||
302, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=${activeName}"), | |||||
FINAL_INSPECT_APPLY("终验申请", null, | FINAL_INSPECT_APPLY("终验申请", null, | ||||
"您单位的【%s】已完成初验备案,可在过程管理-终验申请中进行终验申请的操作。", | |||||
"您单位的【%s】信创符合性测评备案已通过,可在过程管理-终验申请中进行终验申请的操作。", | |||||
"【%s】终验申请需要您处理,请及时处理", | "【%s】终验申请需要您处理,请及时处理", | ||||
"/declareManage/projectManages/finalInspectionDeclare", | "/declareManage/projectManages/finalInspectionDeclare", | ||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=401"), | |||||
401, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=${activeName}"), | |||||
ADAPTION_APPLY("上传开工文件", null, | ADAPTION_APPLY("上传开工文件", null, | ||||
"您单位的【%s】已完成实施计划填写,可在过程管理-适配改造中进行上传开工文件的操作。", | "您单位的【%s】已完成实施计划填写,可在过程管理-适配改造中进行上传开工文件的操作。", | ||||
"【%s】上传开工文件需要您处理,请及时处理", | "【%s】上传开工文件需要您处理,请及时处理", | ||||
"/declareManage/projectManages/adaptiveTransformation", | "/declareManage/projectManages/adaptiveTransformation", | ||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=2100"), | |||||
20010, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=${activeName}"), | |||||
PROJECT_REVIEW_APPLY("项目复核", null, | PROJECT_REVIEW_APPLY("项目复核", null, | ||||
"您单位的【%s】的专家评审已通过,可在过程管理-项目评审-项目复核中进行提交复核的操作。", | "您单位的【%s】的专家评审已通过,可在过程管理-项目评审-项目复核中进行提交复核的操作。", | ||||
"【%s】项目复核需要您处理,请及时处理", | "【%s】项目复核需要您处理,请及时处理", | ||||
"/declareManage/projectManages/projectRecheck", | "/declareManage/projectManages/projectRecheck", | ||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=10040"), | |||||
10040, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=${activeName}"), | |||||
WITHOUT_BUILD_SCHEME("上传建设方案盖章件", null, | WITHOUT_BUILD_SCHEME("上传建设方案盖章件", null, | ||||
"您单位的【%s】的合规性审査已通过,可在过程管理-项目评审-专家评审中进行上传建设方案盖章件的操作。", | "您单位的【%s】的合规性审査已通过,可在过程管理-项目评审-专家评审中进行上传建设方案盖章件的操作。", | ||||
"【%s】上传建设方案盖章件需要您处理,请及时处理", | "【%s】上传建设方案盖章件需要您处理,请及时处理", | ||||
"/declareManage/projectManages/expertReview", | "/declareManage/projectManages/expertReview", | ||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=10050"), | |||||
10050, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=${activeName}"), | |||||
WITHOUT_PURCHASE_NOTICE("发布采购公告", null, | WITHOUT_PURCHASE_NOTICE("发布采购公告", null, | ||||
"您单位的【%s】立项备案已通过,可在过程管理-招标采购中进行发布采购公告的操作。", | "您单位的【%s】立项备案已通过,可在过程管理-招标采购中进行发布采购公告的操作。", | ||||
"【%s】发布采购公告需要您处理,请及时处理", | "【%s】发布采购公告需要您处理,请及时处理", | ||||
"/declareManage/projectManages/purchaseResults", | "/declareManage/projectManages/purchaseResults", | ||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=20001"), | |||||
20001, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=${activeName}"), | |||||
WITHOUT_PURCHASE_CONTRACT("采购&合同信息备案", null, | WITHOUT_PURCHASE_CONTRACT("采购&合同信息备案", null, | ||||
"您单位的【%s】已完成发布采购公告,可在过程管理-招标采购中进行采购&合同信息备案的操作。", | "您单位的【%s】已完成发布采购公告,可在过程管理-招标采购中进行采购&合同信息备案的操作。", | ||||
"【%s】采购&合同信息备案需要您处理,请及时处理", | "【%s】采购&合同信息备案需要您处理,请及时处理", | ||||
"/declareManage/projectManages/purchaseResults", | "/declareManage/projectManages/purchaseResults", | ||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=101"), | |||||
101, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=${activeName}"), | |||||
WITHOUT_OPERATION_PLAN("实施计划填写", null, | WITHOUT_OPERATION_PLAN("实施计划填写", null, | ||||
"您单位的【%s】已完成采购&合同信息备案,可在过程管理-适配改造中进行填写实施计划的操作。", | "您单位的【%s】已完成采购&合同信息备案,可在过程管理-适配改造中进行填写实施计划的操作。", | ||||
"【%s】实施计划需要您处理,请及时处理", | "【%s】实施计划需要您处理,请及时处理", | ||||
"/declareManage/projectManages/adaptiveTransformation", | "/declareManage/projectManages/adaptiveTransformation", | ||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=103"), | |||||
null, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=${activeName}"), | |||||
WITHOUT_FIRST_ACCEPT_RECORD("初验备案", null, | WITHOUT_FIRST_ACCEPT_RECORD("初验备案", null, | ||||
"您单位的【%s】已完成适配改造,可在过程管理-初验申请中进行初验备案的操作。", | "您单位的【%s】已完成适配改造,可在过程管理-初验申请中进行初验备案的操作。", | ||||
"【%s】初验备案需要您处理,请及时处理", | "【%s】初验备案需要您处理,请及时处理", | ||||
"/declareManage/projectManages/initialInspectionRecord", | "/declareManage/projectManages/initialInspectionRecord", | ||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=201"), | |||||
null, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=${activeName}"), | |||||
WITHOUT_ORG_CONFIRM("单位确认", null, | WITHOUT_ORG_CONFIRM("单位确认", null, | ||||
"您单位的【%s】监理核实验证备案已通过,可在过程管理-适配改造中进行单位确认的操作。", | "您单位的【%s】监理核实验证备案已通过,可在过程管理-适配改造中进行单位确认的操作。", | ||||
"【%s】单位确认需要您处理,请及时处理", | "【%s】单位确认需要您处理,请及时处理", | ||||
"/declareManage/projectManages/adaptiveTransformation", | "/declareManage/projectManages/adaptiveTransformation", | ||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=104"), | |||||
20010, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=${activeName}"), | |||||
DECLARED_RECORD_APPLY("立项备案申请", null, | DECLARED_RECORD_APPLY("立项备案申请", null, | ||||
"您单位的【%s】已下达资金,可在过程管理-项目立项中进行立项备案的操作。", | "您单位的【%s】已下达资金,可在过程管理-项目立项中进行立项备案的操作。", | ||||
"【%s】立项备案需要您处理,请及时处理", | "【%s】立项备案需要您处理,请及时处理", | ||||
"/declareManage/projectManages/projectFiling", | "/declareManage/projectManages/projectFiling", | ||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=10022"), | |||||
10022, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&activeName=${activeName}"), | |||||
/** | /** | ||||
* 流程审批待办 | * 流程审批待办 | ||||
*/ | */ | ||||
SELF_TEST_AUDIT("系统自测审批", TEST_VALID_APPLY, null, null, null, | |||||
SELF_TEST_AUDIT("系统自测审批", TEST_VALID_APPLY, null, null, null, null, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | "instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | ||||
ADAPTION_AUDIT("开工文件审批", SELF_TEST_APPLY, null, null, null, | |||||
ADAPTION_AUDIT("开工文件审批", SELF_TEST_APPLY, null, null, null, null, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | "instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | ||||
TEST_VALID_AUDIT("监理核实验证审批", WITHOUT_ORG_CONFIRM, null, null, null, | |||||
TEST_VALID_AUDIT("监理核实验证审批", WITHOUT_ORG_CONFIRM, null, null, null, null, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | "instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | ||||
COMPLIANCE_REVIEW_AUDIT("合规性审查审批", WITHOUT_BUILD_SCHEME, null, null, null, | |||||
COMPLIANCE_REVIEW_AUDIT("合规性审查审批", WITHOUT_BUILD_SCHEME, null, null, null, null, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | "instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | ||||
PROJECT_REVIEW_AUDIT("项目复核审批", null, null, null, null, | |||||
PROJECT_REVIEW_AUDIT("项目复核审批", null, null, null, null, null, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | "instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | ||||
PROJECT_STOPPED_AUDIT("项目终止审批", null, "您单位的【%s】已通过项目终止审核。", null, null, | |||||
PROJECT_STOPPED_AUDIT("项目终止审批", null, "您单位的【%s】已通过项目终止审核。", null, null, null, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | "instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | ||||
PROJECT_CHANGE_AUDIT("项目变更审批", null, "您单位的【%s】已通过项目变更审核。", null, null, | |||||
PROJECT_CHANGE_AUDIT("项目变更审批", null, "您单位的【%s】已通过项目变更审核。", null, null, null, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | "instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | ||||
FINAL_INSPECT_AUDIT("终验审批", null, "您单位的【%s】已通过终验审核。", null, null, | |||||
FINAL_INSPECT_AUDIT("终验审批", null, "您单位的【%s】已通过终验审核。", null, null, null, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | "instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | ||||
PURCHASE_NOTICE_AUDIT("增加标项复核审批", WITHOUT_PURCHASE_CONTRACT, null, null, null, | |||||
PURCHASE_NOTICE_AUDIT("增加标项复核审批", WITHOUT_PURCHASE_CONTRACT, null, null, null, null, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | "instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"), | ||||
XCFHX_INSPECT_AUDIT("信创符合性审查审批", WITHOUT_BUILD_SCHEME, null, null, null, | |||||
XCFHX_INSPECT_AUDIT("信创符合性审查审批", FINAL_INSPECT_APPLY, null, null, null, null, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&xinchuangId={xinchuangId}"), | "instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}&xinchuangId={xinchuangId}"), | ||||
DECLARED_RECORD_AUDIT("立项备案审批", WITHOUT_PURCHASE_NOTICE, null, null, null, | |||||
DECLARED_RECORD_AUDIT("立项备案审批", WITHOUT_PURCHASE_NOTICE, null, null, null, null, | |||||
"instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"); | "instanceId=${instanceId}&projectId=${projectId}&nodeId=${nodeId}&taskId=${taskId}&bidId=${bizId}&userId=${userId}&userName=${userName}&path=${path}"); | ||||
private final String val; | private final String val; | ||||
@@ -117,6 +135,8 @@ public enum MHTodoTypeEnum { | |||||
*/ | */ | ||||
private final String pagePath; | private final String pagePath; | ||||
private final Integer activeName; | |||||
private final String referLinkParam; | private final String referLinkParam; | ||||
} | } |
@@ -598,7 +598,7 @@ public class ConstructionManage { | |||||
projectStateMachineUtil.pass(project); | projectStateMachineUtil.pass(project); | ||||
projectService.updateById(project); | projectService.updateById(project); | ||||
} | } | ||||
SpringUtil.publishEvent(MhTodoSendEvent.of(MHTodoTypeEnum.FINAL_INSPECT_APPLY, project, purchase)); | |||||
SpringUtil.publishEvent(MhTodoSendEvent.of(MHTodoTypeEnum.XCFHX_TEST_APPLY, project, purchase)); | |||||
SpringUtil.publishEvent(MhTodoHandedEvent.of(MHTodoTypeEnum.WITHOUT_FIRST_ACCEPT_RECORD, req.getBidId())); | SpringUtil.publishEvent(MhTodoHandedEvent.of(MHTodoTypeEnum.WITHOUT_FIRST_ACCEPT_RECORD, req.getBidId())); | ||||
} | } | ||||
@@ -33,8 +33,10 @@ import com.hz.pm.api.projectlib.helper.ProjectManageUtil; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectInst; | import com.hz.pm.api.projectlib.model.entity.ProjectInst; | ||||
import com.hz.pm.api.projectlib.model.enumeration.ProjectTypeNewEnum; | import com.hz.pm.api.projectlib.model.enumeration.ProjectTypeNewEnum; | ||||
import com.hz.pm.api.projectlib.model.enumeration.status.ITenderStatus; | |||||
import com.hz.pm.api.projectlib.model.enumeration.status.ProjectStatus; | import com.hz.pm.api.projectlib.model.enumeration.status.ProjectStatus; | ||||
import com.hz.pm.api.projectlib.model.enumeration.status.TenderMainStatus; | import com.hz.pm.api.projectlib.model.enumeration.status.TenderMainStatus; | ||||
import com.hz.pm.api.projectlib.model.enumeration.status.TenderXcfhxApplyStatus; | |||||
import com.hz.pm.api.projectlib.model.req.ProjectListReq; | import com.hz.pm.api.projectlib.model.req.ProjectListReq; | ||||
import com.hz.pm.api.projectlib.model.vo.ProjectLibListItemVO; | import com.hz.pm.api.projectlib.model.vo.ProjectLibListItemVO; | ||||
import com.hz.pm.api.projectlib.model.vo.TenderListInfoVO; | import com.hz.pm.api.projectlib.model.vo.TenderListInfoVO; | ||||
@@ -98,6 +100,11 @@ public class FinalAcceptanceManage { | |||||
static { | static { | ||||
FINAL_INSPECTED_TENDER_STATUS = new ArrayList<>(); | FINAL_INSPECTED_TENDER_STATUS = new ArrayList<>(); | ||||
// 信创符合性申请 | |||||
FINAL_INSPECTED_TENDER_STATUS.add(TenderXcfhxApplyStatus.TO_BE_SUBMIT_XCFHX_APPLY.getCode()); | |||||
FINAL_INSPECTED_TENDER_STATUS.add(TenderXcfhxApplyStatus.ON_XCFHX_APPLY.getCode()); | |||||
FINAL_INSPECTED_TENDER_STATUS.add(TenderXcfhxApplyStatus.XCFHX_APPLY_FAILED.getCode()); | |||||
// 终验 | |||||
FINAL_INSPECTED_TENDER_STATUS.add(TenderMainStatus.TO_BE_SUBMIT_FINALLY_INSPECTED_APPLY.getCode()); | FINAL_INSPECTED_TENDER_STATUS.add(TenderMainStatus.TO_BE_SUBMIT_FINALLY_INSPECTED_APPLY.getCode()); | ||||
FINAL_INSPECTED_TENDER_STATUS.add(TenderMainStatus.ON_FINALLY_INSPECTED_APPLY.getCode()); | FINAL_INSPECTED_TENDER_STATUS.add(TenderMainStatus.ON_FINALLY_INSPECTED_APPLY.getCode()); | ||||
FINAL_INSPECTED_TENDER_STATUS.add(TenderMainStatus.FINALLY_INSPECTED_PASSED.getCode()); | FINAL_INSPECTED_TENDER_STATUS.add(TenderMainStatus.FINALLY_INSPECTED_PASSED.getCode()); | ||||
@@ -138,12 +145,16 @@ public class FinalAcceptanceManage { | |||||
.filter(purchase -> projectIds.contains(purchase.getProjectId())) | .filter(purchase -> projectIds.contains(purchase.getProjectId())) | ||||
.collect(Collectors.groupingBy(Purchase::getProjectId, | .collect(Collectors.groupingBy(Purchase::getProjectId, | ||||
Collectors.mapping(Purchase::getStatus, Collectors.toList()))); | Collectors.mapping(Purchase::getStatus, Collectors.toList()))); | ||||
BiFunction<Map<Long, List<Integer>>, TenderMainStatus, Integer> counter = (statusMap, status) -> { | |||||
BiFunction<Map<Long, List<Integer>>, ITenderStatus, Integer> counter = (statusMap, status) -> { | |||||
Set<Map.Entry<Long, List<Integer>>> entries = statusMap.entrySet(); | Set<Map.Entry<Long, List<Integer>>> entries = statusMap.entrySet(); | ||||
return CollUtil.count(entries, entry -> entry.getValue().contains(status.getCode())); | return CollUtil.count(entries, entry -> entry.getValue().contains(status.getCode())); | ||||
}; | }; | ||||
Integer xcfhxApplyingCount = counter.apply(purchaseStatusMap, TenderXcfhxApplyStatus.TO_BE_SUBMIT_XCFHX_APPLY) | |||||
+ counter.apply(purchaseStatusMap, TenderXcfhxApplyStatus.ON_XCFHX_APPLY) | |||||
+ counter.apply(purchaseStatusMap, TenderXcfhxApplyStatus.XCFHX_APPLY_FAILED); | |||||
return FinalAcceptProgressVO.builder() | return FinalAcceptProgressVO.builder() | ||||
.totalCount(projects.size()) | .totalCount(projects.size()) | ||||
.xcfhxCount(xcfhxApplyingCount) | |||||
.auditCount(counter.apply(purchaseStatusMap, TenderMainStatus.ON_FINALLY_INSPECTED_APPLY)) | .auditCount(counter.apply(purchaseStatusMap, TenderMainStatus.ON_FINALLY_INSPECTED_APPLY)) | ||||
.todoCount(counter.apply(purchaseStatusMap, TenderMainStatus.TO_BE_SUBMIT_FINALLY_INSPECTED_APPLY)) | .todoCount(counter.apply(purchaseStatusMap, TenderMainStatus.TO_BE_SUBMIT_FINALLY_INSPECTED_APPLY)) | ||||
.failedCount(counter.apply(purchaseStatusMap, TenderMainStatus.FINALLY_INSPECTED_FAILED)) | .failedCount(counter.apply(purchaseStatusMap, TenderMainStatus.FINALLY_INSPECTED_FAILED)) | ||||
@@ -169,6 +180,10 @@ public class FinalAcceptanceManage { | |||||
.eq(Purchase::getBidType, BidTypeEnum.BUILD_APP.getCode()); | .eq(Purchase::getBidType, BidTypeEnum.BUILD_APP.getCode()); | ||||
if (req.getTabStatus() == null) { | if (req.getTabStatus() == null) { | ||||
purchaseQuery.in(Purchase::getStatus, FINAL_INSPECTED_TENDER_STATUS); | purchaseQuery.in(Purchase::getStatus, FINAL_INSPECTED_TENDER_STATUS); | ||||
} else if (TenderXcfhxApplyStatus.ON_XCFHX_APPLY.eq(req.getTabStatus())) { | |||||
purchaseQuery.in(Purchase::getStatus, TenderXcfhxApplyStatus.TO_BE_SUBMIT_XCFHX_APPLY.getCode(), | |||||
TenderXcfhxApplyStatus.ON_XCFHX_APPLY.getCode(), | |||||
TenderXcfhxApplyStatus.XCFHX_APPLY_FAILED.getCode()); | |||||
} else { | } else { | ||||
purchaseQuery.eq(Purchase::getStatus, req.getTabStatus()); | purchaseQuery.eq(Purchase::getStatus, req.getTabStatus()); | ||||
} | } | ||||
@@ -712,7 +712,10 @@ public class PurchaseManage { | |||||
} | } | ||||
SpringUtil.publishEvent(MhTodoHandedEvent.of(MHTodoTypeEnum.WITHOUT_PURCHASE_CONTRACT, purchase.getId())); | SpringUtil.publishEvent(MhTodoHandedEvent.of(MHTodoTypeEnum.WITHOUT_PURCHASE_CONTRACT, purchase.getId())); | ||||
if (BidTypeEnum.BUILD_APP.eq(purchase.getBidType())) { | if (BidTypeEnum.BUILD_APP.eq(purchase.getBidType())) { | ||||
SpringUtil.publishEvent(MhTodoSendEvent.of(MHTodoTypeEnum.WITHOUT_OPERATION_PLAN, project, purchase)); | |||||
boolean exists = purchaseStatusChangeService.exists(project.getProjectCode(), TenderStateChangeEvent.SUBMIT_OPERATION_PLAN); | |||||
MhTodoSendEvent event = MhTodoSendEvent.of(MHTodoTypeEnum.WITHOUT_OPERATION_PLAN, project, purchase); | |||||
event.setActiveName((exists ? ProjectStatus.ON_ADAPTING : ProjectStatus.TO_BE_ADAPT).getCode()); | |||||
SpringUtil.publishEvent(event); | |||||
} | } | ||||
stagingManage.delete(StagingType.PURCHASE_RECORD, req.getBidId()); | stagingManage.delete(StagingType.PURCHASE_RECORD, req.getBidId()); | ||||
} | } | ||||
@@ -1148,7 +1151,10 @@ public class PurchaseManage { | |||||
projectService.updateById(project); | projectService.updateById(project); | ||||
} | } | ||||
SpringUtil.publishEvent(MhTodoHandedEvent.of(MHTodoTypeEnum.WITHOUT_ORG_CONFIRM, req.getBidId())); | SpringUtil.publishEvent(MhTodoHandedEvent.of(MHTodoTypeEnum.WITHOUT_ORG_CONFIRM, req.getBidId())); | ||||
SpringUtil.publishEvent(MhTodoSendEvent.of(MHTodoTypeEnum.WITHOUT_FIRST_ACCEPT_RECORD, project, purchase)); | |||||
boolean exists = purchaseStatusChangeService.exists(project.getProjectCode(), TenderStateChangeEvent.SUBMIT_FIRST_INSPECTED_FILES); | |||||
MhTodoSendEvent todoEvent = MhTodoSendEvent.of(MHTodoTypeEnum.WITHOUT_FIRST_ACCEPT_RECORD, project, purchase); | |||||
todoEvent.setActiveName((exists ? ProjectStatus.ON_FIRST_INSPECTING : TO_BE_SUBMIT_FIRST_INSPECTED_INFO).getCode()); | |||||
SpringUtil.publishEvent(todoEvent); | |||||
} | } | ||||
private boolean allPurchaseOrgConfirmed(Long projectId) { | private boolean allPurchaseOrgConfirmed(Long projectId) { | ||||
@@ -19,6 +19,9 @@ public class FinalAcceptProgressVO { | |||||
@ApiModelProperty("总数量") | @ApiModelProperty("总数量") | ||||
private Integer totalCount; | private Integer totalCount; | ||||
@ApiModelProperty("信创符合性申请数量") | |||||
private Integer xcfhxCount; | |||||
@ApiModelProperty("审核中数量") | @ApiModelProperty("审核中数量") | ||||
private Integer auditCount; | private Integer auditCount; | ||||
@@ -104,7 +104,7 @@ public class ProjectManageTodoCountManage { | |||||
projReqOrg.setBuildOrgCode(req.getBuildOrgCode()); | projReqOrg.setBuildOrgCode(req.getBuildOrgCode()); | ||||
FinalAcceptProgressVO finalAccept = finalAcceptanceManage.finalAcceptProgress(projReqOrg); | FinalAcceptProgressVO finalAccept = finalAcceptanceManage.finalAcceptProgress(projReqOrg); | ||||
ret.setFinalAccept(sum(finalAccept, FinalAcceptProgressVO::getTodoCount, | ret.setFinalAccept(sum(finalAccept, FinalAcceptProgressVO::getTodoCount, | ||||
FinalAcceptProgressVO::getFailedCount)); | |||||
FinalAcceptProgressVO::getFailedCount, FinalAcceptProgressVO::getXcfhxCount)); | |||||
}, ThreadPoolUtil.REQUEST)); | }, ThreadPoolUtil.REQUEST)); | ||||
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join(); | CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join(); | ||||
return ret; | return ret; | ||||
@@ -18,13 +18,14 @@ import java.util.Optional; | |||||
*/ | */ | ||||
@Getter | @Getter | ||||
@AllArgsConstructor | @AllArgsConstructor | ||||
public enum TenderXcfhxApplyStatus implements IStatus<Integer, String> { | |||||
public enum TenderXcfhxApplyStatus implements ITenderStatus { | |||||
TO_BE_SUBMIT_XCFHX_APPLY(301, "待信创符合性申请"), | |||||
ON_XCFHX_APPLY(302, "信创符合性申请中"), | |||||
XCFHX_APPLY_FAILED(303, "信创符合性申请不通过"), | |||||
XCFHX_APPLY_PASSED(304, "信创符合性申请通过"); | |||||
TO_BE_SUBMIT_XCFHX_APPLY(null, 301, "待信创符合性申请"), | |||||
ON_XCFHX_APPLY(null, 302, "信创符合性申请中"), | |||||
XCFHX_APPLY_FAILED(null, 303, "信创符合性申请不通过"), | |||||
XCFHX_APPLY_PASSED(null, 304, "信创符合性申请通过"); | |||||
private final ProjectStatus projectStatus; | |||||
private final Integer code; | private final Integer code; | ||||
private final String desc; | private final String desc; | ||||
@@ -33,7 +34,7 @@ public enum TenderXcfhxApplyStatus implements IStatus<Integer, String> { | |||||
} | } | ||||
public static TenderXcfhxApplyStatus getNoNull(Integer code) { | public static TenderXcfhxApplyStatus getNoNull(Integer code) { | ||||
return get(code).orElseThrow(() -> BizException.wrap("无效的信创符合性审查状态:%s",code)); | |||||
return get(code).orElseThrow(() -> BizException.wrap("无效的信创符合性审查状态:%s", code)); | |||||
} | } | ||||
public static String getDesc(Integer code) { | public static String getDesc(Integer code) { | ||||
@@ -1,5 +1,6 @@ | |||||
package com.hz.pm.api.projectlib.service; | package com.hz.pm.api.projectlib.service; | ||||
import com.baomidou.mybatisplus.core.conditions.Wrapper; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.hz.pm.api.common.model.constant.BizConst; | import com.hz.pm.api.common.model.constant.BizConst; | ||||
@@ -25,6 +26,13 @@ import java.util.Map; | |||||
* @since 2024-04-01 | * @since 2024-04-01 | ||||
*/ | */ | ||||
public interface IPurchaseStatusChangeService extends IService<PurchaseStatusChange> { | public interface IPurchaseStatusChangeService extends IService<PurchaseStatusChange> { | ||||
default boolean exists(String projectCode, TenderStateChangeEvent event) { | |||||
Wrapper<PurchaseStatusChange> pscQuery = Wrappers.lambdaQuery(PurchaseStatusChange.class) | |||||
.eq(PurchaseStatusChange::getProjectCode, projectCode) | |||||
.eq(PurchaseStatusChange::getEvent, event); | |||||
return count(pscQuery) > 0; | |||||
} | |||||
default PurchaseStatusChange getLastOne(String projectCode, Collection<TenderStateChangeEvent> events) { | default PurchaseStatusChange getLastOne(String projectCode, Collection<TenderStateChangeEvent> events) { | ||||
LambdaQueryWrapper<PurchaseStatusChange> pscQuery = Wrappers.lambdaQuery(PurchaseStatusChange.class) | LambdaQueryWrapper<PurchaseStatusChange> pscQuery = Wrappers.lambdaQuery(PurchaseStatusChange.class) | ||||
.eq(PurchaseStatusChange::getProjectCode, projectCode) | .eq(PurchaseStatusChange::getProjectCode, projectCode) | ||||
@@ -1,7 +1,6 @@ | |||||
package com.hz.pm.api.scheduler.listener; | package com.hz.pm.api.scheduler.listener; | ||||
import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||
import com.baomidou.mybatisplus.core.conditions.Wrapper; | |||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.hz.pm.api.scheduler.listener.event.MhTodoHandedEvent; | import com.hz.pm.api.scheduler.listener.event.MhTodoHandedEvent; | ||||
@@ -36,7 +35,7 @@ public class MhTodoHandedListener { | |||||
if (CollUtil.isNotEmpty(event.getBizIds())) { | if (CollUtil.isNotEmpty(event.getBizIds())) { | ||||
wrapper.in(MhTodoRecord::getBizId, CollUtils.convert(event.getBizIds(), String::valueOf)); | wrapper.in(MhTodoRecord::getBizId, CollUtils.convert(event.getBizIds(), String::valueOf)); | ||||
} else { | } else { | ||||
wrapper.eq(MhTodoRecord::getBizId, event.getBizId().toString()); | |||||
wrapper.eq(MhTodoRecord::getBizId, event.getBizId()); | |||||
} | } | ||||
mhTodoRecordService.update(wrapper); | mhTodoRecordService.update(wrapper); | ||||
} | } | ||||
@@ -81,6 +81,7 @@ public class MhTodoSendListener { | |||||
.path(nextStep.getPagePath()) | .path(nextStep.getPagePath()) | ||||
.userName(user.getRealName()) | .userName(user.getRealName()) | ||||
.userId(createBy) | .userId(createBy) | ||||
.activeName(ObjUtil.defaultIfNull(event.getActiveName(), todoType.getActiveName())) | |||||
.build(); | .build(); | ||||
mhTodoClient.addTodo(paramObj, user, nextStep, bizId.toString(), todoMsg); | mhTodoClient.addTodo(paramObj, user, nextStep, bizId.toString(), todoMsg); | ||||
} | } | ||||
@@ -55,4 +55,6 @@ public class MhTodoSendEvent extends ApplicationEvent { | |||||
private Xinchuang xinchuang; | private Xinchuang xinchuang; | ||||
private Integer activeName; | |||||
} | } |