@@ -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.event.ProjectStateChangeEvent; | |||
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 lombok.extern.slf4j.Slf4j; | |||
import org.springframework.messaging.Message; | |||
@@ -31,6 +32,7 @@ public class XcfhxStateChangeAction { | |||
@OnTransition(source = "TO_BE_SUBMIT_XCFHX_APPLY", target = "ON_XCFHX_APPLY") | |||
public void SUBMIT_XCFHX_APPLY(Message<ProjectStateChangeEvent> message) { | |||
Purchase purchase = getPurchaseInfo(message); | |||
purchase.setStatus(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") | |||
public void XCFHX_APPLY_PASSED(Message<ProjectStateChangeEvent> message) { | |||
Purchase purchase = getPurchaseInfo(message); | |||
purchase.setStatus(TenderMainStatus.TO_BE_SUBMIT_FINALLY_INSPECTED_APPLY.getCode()); | |||
purchase.setXcfhxApplyStatus(TenderXcfhxApplyStatus.XCFHX_APPLY_PASSED.getCode()); | |||
} | |||
@@ -53,6 +56,7 @@ public class XcfhxStateChangeAction { | |||
@OnTransition(source = "ON_XCFHX_APPLY", target = "XCFHX_APPLY_FAILED") | |||
public void XCFHX_APPLY_FAILED(Message<ProjectStateChangeEvent> message) { | |||
Purchase purchase = getPurchaseInfo(message); | |||
purchase.setStatus(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") | |||
public void RESUBMIT_XCFHX_APPLY(Message<ProjectStateChangeEvent> message) { | |||
Purchase purchase = getPurchaseInfo(message); | |||
purchase.setStatus(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.TenderAdaptStatus; | |||
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.extern.slf4j.Slf4j; | |||
import org.springframework.beans.factory.BeanFactory; | |||
@@ -132,7 +133,7 @@ public class TenderStateMachineBuilderImpl implements BaseStateMachineBuilder<Pu | |||
// 上传初验材料 | |||
.withExternal() | |||
.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) | |||
.and() | |||
// 终验申报 | |||
@@ -58,4 +58,6 @@ public class MhTodoExtraParamDTO { | |||
private Long xinchuangId; | |||
private Integer activeName; | |||
} |
@@ -20,87 +20,105 @@ public enum MHTodoTypeEnum { | |||
"您单位的【%s】开工文件备案已通过,可在过程管理-适配改造中进行提交系统自测信息的操作。", | |||
"【%s】系统自测信息需要您处理,请及时处理", | |||
"/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, | |||
"您单位的【%s】系统自测备案已通过,可在过程管理-适配改造中进行填写监理核实验证信息的操作。", | |||
"【%s】监理核实验证需要您处理,请及时处理", | |||
"/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, | |||
"您单位的【%s】已完成初验备案,可在过程管理-终验申请中进行终验申请的操作。", | |||
"您单位的【%s】信创符合性测评备案已通过,可在过程管理-终验申请中进行终验申请的操作。", | |||
"【%s】终验申请需要您处理,请及时处理", | |||
"/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, | |||
"您单位的【%s】已完成实施计划填写,可在过程管理-适配改造中进行上传开工文件的操作。", | |||
"【%s】上传开工文件需要您处理,请及时处理", | |||
"/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, | |||
"您单位的【%s】的专家评审已通过,可在过程管理-项目评审-项目复核中进行提交复核的操作。", | |||
"【%s】项目复核需要您处理,请及时处理", | |||
"/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, | |||
"您单位的【%s】的合规性审査已通过,可在过程管理-项目评审-专家评审中进行上传建设方案盖章件的操作。", | |||
"【%s】上传建设方案盖章件需要您处理,请及时处理", | |||
"/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, | |||
"您单位的【%s】立项备案已通过,可在过程管理-招标采购中进行发布采购公告的操作。", | |||
"【%s】发布采购公告需要您处理,请及时处理", | |||
"/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, | |||
"您单位的【%s】已完成发布采购公告,可在过程管理-招标采购中进行采购&合同信息备案的操作。", | |||
"【%s】采购&合同信息备案需要您处理,请及时处理", | |||
"/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, | |||
"您单位的【%s】已完成采购&合同信息备案,可在过程管理-适配改造中进行填写实施计划的操作。", | |||
"【%s】实施计划需要您处理,请及时处理", | |||
"/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, | |||
"您单位的【%s】已完成适配改造,可在过程管理-初验申请中进行初验备案的操作。", | |||
"【%s】初验备案需要您处理,请及时处理", | |||
"/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, | |||
"您单位的【%s】监理核实验证备案已通过,可在过程管理-适配改造中进行单位确认的操作。", | |||
"【%s】单位确认需要您处理,请及时处理", | |||
"/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, | |||
"您单位的【%s】已下达资金,可在过程管理-项目立项中进行立项备案的操作。", | |||
"【%s】立项备案需要您处理,请及时处理", | |||
"/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}"), | |||
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}"), | |||
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}"), | |||
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}"), | |||
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}"), | |||
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}"), | |||
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}"), | |||
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}"), | |||
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}"), | |||
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}"), | |||
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}"); | |||
private final String val; | |||
@@ -117,6 +135,8 @@ public enum MHTodoTypeEnum { | |||
*/ | |||
private final String pagePath; | |||
private final Integer activeName; | |||
private final String referLinkParam; | |||
} |
@@ -598,7 +598,7 @@ public class ConstructionManage { | |||
projectStateMachineUtil.pass(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())); | |||
} | |||
@@ -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.ProjectInst; | |||
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.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.vo.ProjectLibListItemVO; | |||
import com.hz.pm.api.projectlib.model.vo.TenderListInfoVO; | |||
@@ -98,6 +100,11 @@ public class FinalAcceptanceManage { | |||
static { | |||
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.ON_FINALLY_INSPECTED_APPLY.getCode()); | |||
FINAL_INSPECTED_TENDER_STATUS.add(TenderMainStatus.FINALLY_INSPECTED_PASSED.getCode()); | |||
@@ -138,12 +145,16 @@ public class FinalAcceptanceManage { | |||
.filter(purchase -> projectIds.contains(purchase.getProjectId())) | |||
.collect(Collectors.groupingBy(Purchase::getProjectId, | |||
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(); | |||
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() | |||
.totalCount(projects.size()) | |||
.xcfhxCount(xcfhxApplyingCount) | |||
.auditCount(counter.apply(purchaseStatusMap, TenderMainStatus.ON_FINALLY_INSPECTED_APPLY)) | |||
.todoCount(counter.apply(purchaseStatusMap, TenderMainStatus.TO_BE_SUBMIT_FINALLY_INSPECTED_APPLY)) | |||
.failedCount(counter.apply(purchaseStatusMap, TenderMainStatus.FINALLY_INSPECTED_FAILED)) | |||
@@ -169,6 +180,10 @@ public class FinalAcceptanceManage { | |||
.eq(Purchase::getBidType, BidTypeEnum.BUILD_APP.getCode()); | |||
if (req.getTabStatus() == null) { | |||
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 { | |||
purchaseQuery.eq(Purchase::getStatus, req.getTabStatus()); | |||
} | |||
@@ -712,7 +712,10 @@ public class PurchaseManage { | |||
} | |||
SpringUtil.publishEvent(MhTodoHandedEvent.of(MHTodoTypeEnum.WITHOUT_PURCHASE_CONTRACT, purchase.getId())); | |||
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()); | |||
} | |||
@@ -1148,7 +1151,10 @@ public class PurchaseManage { | |||
projectService.updateById(project); | |||
} | |||
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) { | |||
@@ -19,6 +19,9 @@ public class FinalAcceptProgressVO { | |||
@ApiModelProperty("总数量") | |||
private Integer totalCount; | |||
@ApiModelProperty("信创符合性申请数量") | |||
private Integer xcfhxCount; | |||
@ApiModelProperty("审核中数量") | |||
private Integer auditCount; | |||
@@ -104,7 +104,7 @@ public class ProjectManageTodoCountManage { | |||
projReqOrg.setBuildOrgCode(req.getBuildOrgCode()); | |||
FinalAcceptProgressVO finalAccept = finalAcceptanceManage.finalAcceptProgress(projReqOrg); | |||
ret.setFinalAccept(sum(finalAccept, FinalAcceptProgressVO::getTodoCount, | |||
FinalAcceptProgressVO::getFailedCount)); | |||
FinalAcceptProgressVO::getFailedCount, FinalAcceptProgressVO::getXcfhxCount)); | |||
}, ThreadPoolUtil.REQUEST)); | |||
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join(); | |||
return ret; | |||
@@ -18,13 +18,14 @@ import java.util.Optional; | |||
*/ | |||
@Getter | |||
@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 String desc; | |||
@@ -33,7 +34,7 @@ public enum TenderXcfhxApplyStatus implements IStatus<Integer, String> { | |||
} | |||
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) { | |||
@@ -1,5 +1,6 @@ | |||
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.toolkit.Wrappers; | |||
import com.hz.pm.api.common.model.constant.BizConst; | |||
@@ -25,6 +26,13 @@ import java.util.Map; | |||
* @since 2024-04-01 | |||
*/ | |||
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) { | |||
LambdaQueryWrapper<PurchaseStatusChange> pscQuery = Wrappers.lambdaQuery(PurchaseStatusChange.class) | |||
.eq(PurchaseStatusChange::getProjectCode, projectCode) | |||
@@ -1,7 +1,6 @@ | |||
package com.hz.pm.api.scheduler.listener; | |||
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.toolkit.Wrappers; | |||
import com.hz.pm.api.scheduler.listener.event.MhTodoHandedEvent; | |||
@@ -36,7 +35,7 @@ public class MhTodoHandedListener { | |||
if (CollUtil.isNotEmpty(event.getBizIds())) { | |||
wrapper.in(MhTodoRecord::getBizId, CollUtils.convert(event.getBizIds(), String::valueOf)); | |||
} else { | |||
wrapper.eq(MhTodoRecord::getBizId, event.getBizId().toString()); | |||
wrapper.eq(MhTodoRecord::getBizId, event.getBizId()); | |||
} | |||
mhTodoRecordService.update(wrapper); | |||
} | |||
@@ -81,6 +81,7 @@ public class MhTodoSendListener { | |||
.path(nextStep.getPagePath()) | |||
.userName(user.getRealName()) | |||
.userId(createBy) | |||
.activeName(ObjUtil.defaultIfNull(event.getActiveName(), todoType.getActiveName())) | |||
.build(); | |||
mhTodoClient.addTodo(paramObj, user, nextStep, bizId.toString(), todoMsg); | |||
} | |||
@@ -55,4 +55,6 @@ public class MhTodoSendEvent extends ApplicationEvent { | |||
private Xinchuang xinchuang; | |||
private Integer activeName; | |||
} |