Sfoglia il codice sorgente

feat:

1. 终验、信创符合性审查合并;
tags/25012001
WendyYang 1 mese fa
parent
commit
0b43269faf
14 ha cambiato i file con 101 aggiunte e 38 eliminazioni
  1. +5
    -0
      hz-pm-api/src/main/java/com/hz/pm/api/common/statemachine/action/XcfhxStateChangeAction.java
  2. +2
    -1
      hz-pm-api/src/main/java/com/hz/pm/api/common/statemachine/builder/impl/TenderStateMachineBuilderImpl.java
  3. +2
    -0
      hz-pm-api/src/main/java/com/hz/pm/api/external/todo/dto/MhTodoExtraParamDTO.java
  4. +44
    -24
      hz-pm-api/src/main/java/com/hz/pm/api/external/todo/enumerization/MHTodoTypeEnum.java
  5. +1
    -1
      hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/ConstructionManage.java
  6. +16
    -1
      hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/FinalAcceptanceManage.java
  7. +8
    -2
      hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/PurchaseManage.java
  8. +3
    -0
      hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/vo/FinalAcceptProgressVO.java
  9. +1
    -1
      hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/ProjectManageTodoCountManage.java
  10. +7
    -6
      hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/enumeration/status/TenderXcfhxApplyStatus.java
  11. +8
    -0
      hz-pm-api/src/main/java/com/hz/pm/api/projectlib/service/IPurchaseStatusChangeService.java
  12. +1
    -2
      hz-pm-api/src/main/java/com/hz/pm/api/scheduler/listener/MhTodoHandedListener.java
  13. +1
    -0
      hz-pm-api/src/main/java/com/hz/pm/api/scheduler/listener/MhTodoSendListener.java
  14. +2
    -0
      hz-pm-api/src/main/java/com/hz/pm/api/scheduler/listener/event/MhTodoSendEvent.java

+ 5
- 0
hz-pm-api/src/main/java/com/hz/pm/api/common/statemachine/action/XcfhxStateChangeAction.java Vedi File

@@ -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());
}



+ 2
- 1
hz-pm-api/src/main/java/com/hz/pm/api/common/statemachine/builder/impl/TenderStateMachineBuilderImpl.java Vedi File

@@ -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()
// 终验申报


+ 2
- 0
hz-pm-api/src/main/java/com/hz/pm/api/external/todo/dto/MhTodoExtraParamDTO.java Vedi File

@@ -58,4 +58,6 @@ public class MhTodoExtraParamDTO {

private Long xinchuangId;

private Integer activeName;

}

+ 44
- 24
hz-pm-api/src/main/java/com/hz/pm/api/external/todo/enumerization/MHTodoTypeEnum.java Vedi File

@@ -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;

}

+ 1
- 1
hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/ConstructionManage.java Vedi File

@@ -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()));
}



+ 16
- 1
hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/FinalAcceptanceManage.java Vedi File

@@ -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());
}


+ 8
- 2
hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/PurchaseManage.java Vedi File

@@ -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) {


+ 3
- 0
hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/vo/FinalAcceptProgressVO.java Vedi File

@@ -19,6 +19,9 @@ public class FinalAcceptProgressVO {
@ApiModelProperty("总数量")
private Integer totalCount;

@ApiModelProperty("信创符合性申请数量")
private Integer xcfhxCount;

@ApiModelProperty("审核中数量")
private Integer auditCount;



+ 1
- 1
hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/ProjectManageTodoCountManage.java Vedi File

@@ -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;


+ 7
- 6
hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/enumeration/status/TenderXcfhxApplyStatus.java Vedi File

@@ -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) {


+ 8
- 0
hz-pm-api/src/main/java/com/hz/pm/api/projectlib/service/IPurchaseStatusChangeService.java Vedi File

@@ -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
- 2
hz-pm-api/src/main/java/com/hz/pm/api/scheduler/listener/MhTodoHandedListener.java Vedi File

@@ -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);
}


+ 1
- 0
hz-pm-api/src/main/java/com/hz/pm/api/scheduler/listener/MhTodoSendListener.java Vedi File

@@ -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);
}


+ 2
- 0
hz-pm-api/src/main/java/com/hz/pm/api/scheduler/listener/event/MhTodoSendEvent.java Vedi File

@@ -55,4 +55,6 @@ public class MhTodoSendEvent extends ApplicationEvent {

private Xinchuang xinchuang;

private Integer activeName;

}

Loading…
Annulla
Salva