diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/ConstructionManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/ConstructionManage.java index cb4ce0a..fc25082 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/ConstructionManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/ConstructionManage.java @@ -604,7 +604,11 @@ public class ConstructionManage { @Transactional(rollbackFor = Exception.class) public synchronized void submitXcfhxApply(XcfhxApplyReq req) { - Purchase purchase = purchaseService.getById(req.getBidId()); + List purchases = purchaseService.list(Wrappers.lambdaQuery(Purchase.class) + .eq(Purchase::getProjectId, req.getProjectId()) + .eq(Purchase::getBidType, BidTypeEnum.BUILD_APP.getCode())); + Map purchaseMap = CollUtils.listToMap(purchases, Purchase::getId); + Purchase purchase = purchaseMap.get(req.getBidId()); if (!TenderXcfhxApplyStatus.TO_BE_SUBMIT_XCFHX_APPLY.eq(purchase.getXcfhxApplyStatus()) && !TenderXcfhxApplyStatus.XCFHX_APPLY_FAILED.eq(purchase.getXcfhxApplyStatus())) { throw BizException.wrap("该标段不支持提交信创符合性申请"); @@ -653,6 +657,20 @@ public class ConstructionManage { purchaseInst.setInstType(ProjectProcessType.XC_APPROVAL_PROCESS.getCode()); purchaseInst.setProjectId(req.getProjectId()); purchaseInstService.save(purchaseInst); + + if (ProjectStatus.ON_PILOT_RUNNING.eq(project.getStatus())) { + // 判断是否所有标段已经进行过终验申报 无论是否通过 + Wrapper purchaseInstQuery = Wrappers.lambdaQuery(PurchaseInst.class) + .select(PurchaseInst::getBidId) + .eq(PurchaseInst::getInstType, ProjectProcessType.XC_APPROVAL_PROCESS.getCode()) + .in(PurchaseInst::getBidId, purchaseMap.keySet()); + List currPurchaseInstList = purchaseInstService.list(purchaseInstQuery); + Set xcfhxAppliedBidIds = CollUtils.fieldSet(currPurchaseInstList, PurchaseInst::getBidId); + if (xcfhxAppliedBidIds.size() == purchaseMap.size()) { + projectStateMachineUtil.pass(project); + projectService.updateById(project); + } + } } @Transactional(rollbackFor = Exception.class) diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/FinalAcceptanceManage.java b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/FinalAcceptanceManage.java index 81c1299..326724d 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/FinalAcceptanceManage.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/FinalAcceptanceManage.java @@ -317,13 +317,11 @@ public class FinalAcceptanceManage { */ @Transactional(rollbackFor = Exception.class) public synchronized String startProcess(SubmitFinallyInspectedReq req) { - UserInfoDetails user = LoginUserUtil.userDetail(); + UserInfoDetails user = LoginUserUtil.userDetailNotNull(); ProjectProcessType instType = ProjectProcessType.ACCEPTANCE_DECLARATION_APPROVAL_PROCESS; WflowModels model = processModelManage.getWflowModelsNoNull(instType, user.getMhUnitId()); - List purchases = purchaseService.listByProjectId(req.getProjectId()); - Map purchaseMap = CollUtils.listToMap(purchases, Purchase::getId); - Purchase purchase = purchaseMap.get(req.getBidId()); + Purchase purchase = purchaseService.getById(req.getBidId()); Assert.notNull(purchase, "当前标段不存在"); if (!TenderMainStatus.TO_BE_SUBMIT_FINALLY_INSPECTED_APPLY.eq(purchase.getStatus()) && !TenderMainStatus.FINALLY_INSPECTED_FAILED.eq(purchase.getStatus())) { @@ -360,21 +358,6 @@ public class FinalAcceptanceManage { projectInst.setInstCode(instanceId); projectInst.setProjectId(req.getProjectId()); projectInstService.save(projectInst); - - if (ProjectStatus.ON_PILOT_RUNNING.eq(project.getStatus())) { - // 判断是否所有标段已经进行过终验申报 无论是否通过 - LambdaQueryWrapper purchaseInstQuery = Wrappers.lambdaQuery(PurchaseInst.class) - .select(PurchaseInst::getBidId) - .eq(PurchaseInst::getInstType, ProjectProcessType.ACCEPTANCE_DECLARATION_APPROVAL_PROCESS.getCode()) - .in(PurchaseInst::getBidId, purchaseMap.keySet()); - List currPurchaseInstList = purchaseInstService.list(purchaseInstQuery); - Set finalInspectedBidIds = CollUtils.fieldSet(currPurchaseInstList, PurchaseInst::getBidId); - int needFinalAcceptCount = CollUtil.count(purchases, w -> BidTypeEnum.BUILD_APP.eq(w.getBidType())); - if (finalInspectedBidIds.size() == needFinalAcceptCount) { - projectStateMachineUtil.pass(project); - projectService.updateById(project); - } - } //发送给第一个审批人消息 SpringUtil.publishEvent(MhTodoHandedEvent.of(MHTodoTypeEnum.FINAL_INSPECT_APPLY, req.getBidId())); return instanceId;