1.1.12 项目验收确认审批完成更新项目计划完成时间。

dev
yinq 1 month ago
parent aa448a8a9e
commit 5aa304281a

@ -42,6 +42,11 @@ public class ErpProjectPlanBo extends BaseEntity {
*/
private String projectPlanCode;
/**
*
*/
private String projectCode;
/**
*
*/

@ -2,6 +2,7 @@ package org.dromara.oa.erp.service.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.map.MapUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
@ -20,11 +21,13 @@ import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.tenant.helper.TenantHelper;
import org.dromara.oa.erp.domain.ErpProjectAcceptance;
import org.dromara.oa.erp.domain.ErpProjectInfo;
import org.dromara.oa.erp.domain.ErpProjectPlanStage;
import org.dromara.oa.erp.domain.bo.ErpProjectAcceptanceBo;
import org.dromara.oa.erp.domain.vo.ErpProjectAcceptanceVo;
import org.dromara.oa.erp.domain.vo.ErpProjectInfoVo;
import org.dromara.oa.erp.mapper.ErpProjectAcceptanceMapper;
import org.dromara.oa.erp.mapper.ErpProjectInfoMapper;
import org.dromara.oa.erp.mapper.ErpProjectPlanStageMapper;
import org.dromara.oa.erp.service.IErpProjectAcceptanceService;
import org.dromara.system.api.RemoteCodeRuleService;
import org.dromara.workflow.api.RemoteWorkflowService;
@ -35,6 +38,7 @@ import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@ -52,8 +56,14 @@ public class ErpProjectAcceptanceServiceImpl implements IErpProjectAcceptanceSer
private static final String ACCEPTANCE_CODE_RULE = "1008";
/**
* - project_phases acceptance_*
*/
private static final String PROJECT_PHASE_ACCEPTANCE = "8";
private final ErpProjectAcceptanceMapper baseMapper;
private final ErpProjectInfoMapper projectInfoMapper;
private final ErpProjectPlanStageMapper projectPlanStageMapper;
@DubboReference(timeout = 30000)
private RemoteWorkflowService remoteWorkflowService;
@ -334,33 +344,23 @@ public class ErpProjectAcceptanceServiceImpl implements IErpProjectAcceptanceSer
acceptance.setAcceptanceStatus(OAStatusEnum.APPROVING.getStatus());
} else if (Objects.equals(processEvent.getStatus(), BusinessStatusEnum.FINISH.getStatus())) {
acceptance.setAcceptanceStatus(OAStatusEnum.COMPLETED.getStatus());
// 审批完成后,更新项目信息的项目状态为 7已验收
// 审批完成后:更新项目状态为已验收;将计划「验收」阶段实际完成时间写入验收日期
Long projectId = acceptance.getProjectId();
if (projectId != null) {
ErpProjectInfo projectInfo = projectInfoMapper.selectById(projectId);
if (projectInfo != null) {
String currentStatus = projectInfo.getProjectStatus();
boolean needUpdate = false;
if (StringUtils.isBlank(currentStatus)) {
needUpdate = true;
} else {
try {
/** 7 1 3 5 "7"
退 8 7 */
needUpdate = Integer.parseInt(currentStatus) < 7;
} catch (NumberFormatException e) {
// 非数字状态直接覆盖为已验收
needUpdate = true;
}
}
if (needUpdate) {
projectInfo.setProjectStatus("7"); // 7已验收
projectInfoMapper.updateById(projectInfo);
}
projectInfo.setProjectStatus("7");
projectInfoMapper.updateById(projectInfo);
}
Date acceptanceDate = acceptance.getAcceptanceDate();
if (acceptanceDate != null) {
ErpProjectPlanStage stageUpdate = new ErpProjectPlanStage();
stageUpdate.setRealEndTime(acceptanceDate);
projectPlanStageMapper.update(stageUpdate, Wrappers.lambdaUpdate(ErpProjectPlanStage.class)
.eq(ErpProjectPlanStage::getProjectId, projectId)
.eq(ErpProjectPlanStage::getProjectPhases, PROJECT_PHASE_ACCEPTANCE));
}
}
log.info("项目验收确认完成: acceptanceId={}", acceptance.getAcceptanceId());
} else if (Objects.equals(processEvent.getStatus(), BusinessStatusEnum.INVALID.getStatus())
|| Objects.equals(processEvent.getStatus(), BusinessStatusEnum.TERMINATION.getStatus())) {

Loading…
Cancel
Save