diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectAcceptanceServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectAcceptanceServiceImpl.java index 277be155..818e2ee6 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectAcceptanceServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectAcceptanceServiceImpl.java @@ -57,10 +57,15 @@ public class ErpProjectAcceptanceServiceImpl implements IErpProjectAcceptanceSer private static final String ACCEPTANCE_CODE_RULE = "1008"; /** - * 项目计划阶段-验收(字典 project_phases,与台账报表 acceptance_* 列一致) + * 项目计划阶段-验收(字典 project_phases) */ private static final String PROJECT_PHASE_ACCEPTANCE = "8"; + /** + * 项目计划阶段-质保(字典 project_phases) + */ + private static final String PROJECT_PHASE_WARRANTY = "9"; + private final ErpProjectAcceptanceMapper baseMapper; private final ErpProjectInfoMapper projectInfoMapper; private final ErpProjectPlanStageMapper projectPlanStageMapper; @@ -344,7 +349,7 @@ public class ErpProjectAcceptanceServiceImpl implements IErpProjectAcceptanceSer acceptance.setAcceptanceStatus(OAStatusEnum.APPROVING.getStatus()); } else if (Objects.equals(processEvent.getStatus(), BusinessStatusEnum.FINISH.getStatus())) { acceptance.setAcceptanceStatus(OAStatusEnum.COMPLETED.getStatus()); - // 审批完成后:更新项目状态为已验收;将计划「验收」阶段实际完成时间写入验收日期 + // 审批完成后:更新项目状态为已验收;验收阶段实际完成时间、质保阶段实际开始时间均取实际验收日期 Long projectId = acceptance.getProjectId(); if (projectId != null) { ErpProjectInfo projectInfo = projectInfoMapper.selectById(projectId); @@ -354,11 +359,16 @@ public class ErpProjectAcceptanceServiceImpl implements IErpProjectAcceptanceSer } Date acceptanceDate = acceptance.getAcceptanceDate(); if (acceptanceDate != null) { - ErpProjectPlanStage stageUpdate = new ErpProjectPlanStage(); - stageUpdate.setRealEndTime(acceptanceDate); - projectPlanStageMapper.update(stageUpdate, Wrappers.lambdaUpdate(ErpProjectPlanStage.class) + ErpProjectPlanStage acceptanceStage = new ErpProjectPlanStage(); + acceptanceStage.setRealEndTime(acceptanceDate); + projectPlanStageMapper.update(acceptanceStage, Wrappers.lambdaUpdate(ErpProjectPlanStage.class) .eq(ErpProjectPlanStage::getProjectId, projectId) .eq(ErpProjectPlanStage::getProjectPhases, PROJECT_PHASE_ACCEPTANCE)); + ErpProjectPlanStage warrantyStage = new ErpProjectPlanStage(); + warrantyStage.setRealStartTime(acceptanceDate); + projectPlanStageMapper.update(warrantyStage, Wrappers.lambdaUpdate(ErpProjectPlanStage.class) + .eq(ErpProjectPlanStage::getProjectId, projectId) + .eq(ErpProjectPlanStage::getProjectPhases, PROJECT_PHASE_WARRANTY)); } } log.info("项目验收确认完成: acceptanceId={}", acceptance.getAcceptanceId());