|
|
|
|
@ -194,16 +194,13 @@ public class ErpProjectChangeServiceImpl implements IErpProjectChangeService {
|
|
|
|
|
validateProjectManager(bo.getProjectManagerId());
|
|
|
|
|
|
|
|
|
|
Long projectId = bo.getProjectId();
|
|
|
|
|
// 校验项目计划是否已审批通过
|
|
|
|
|
validateProjectPlanApproved(projectId);
|
|
|
|
|
|
|
|
|
|
ErpProjectInfo projectInfo = projectInfoMapper.selectById(projectId);
|
|
|
|
|
if (projectInfo == null) {
|
|
|
|
|
throw new ServiceException("项目不存在");
|
|
|
|
|
}
|
|
|
|
|
// 验证项目状态
|
|
|
|
|
/*
|
|
|
|
|
if (!OAStatusEnum.COMPLETED.getStatus().equals(projectInfo.getProjectStatus())) {
|
|
|
|
|
throw new ServiceException("项目未审批通过");
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
ErpProjectChange add = MapstructUtils.convert(bo, ErpProjectChange.class);
|
|
|
|
|
fillProjectChangeCode(add);
|
|
|
|
|
@ -484,6 +481,8 @@ public class ErpProjectChangeServiceImpl implements IErpProjectChangeService {
|
|
|
|
|
public Boolean projectChangeSubmitAndFlowStart(ErpProjectChangeBo bo) {
|
|
|
|
|
// 权限校验:只有项目经理才能提交
|
|
|
|
|
validateProjectManager(bo.getProjectManagerId());
|
|
|
|
|
// 校验项目计划是否已审批通过
|
|
|
|
|
validateProjectPlanApproved(bo.getProjectId());
|
|
|
|
|
|
|
|
|
|
// 检查是否有未完成的变更
|
|
|
|
|
List<ErpProjectChange> existingChanges = baseMapper.selectList(
|
|
|
|
|
@ -543,6 +542,24 @@ public class ErpProjectChangeServiceImpl implements IErpProjectChangeService {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 校验项目计划是否已审批通过,只有审批通过后才能发起项目变更
|
|
|
|
|
*/
|
|
|
|
|
private void validateProjectPlanApproved(Long projectId) {
|
|
|
|
|
ErpProjectPlan projectPlan = projectPlanMapper.selectOne(
|
|
|
|
|
Wrappers.<ErpProjectPlan>lambdaQuery()
|
|
|
|
|
.eq(ErpProjectPlan::getProjectId, projectId)
|
|
|
|
|
.eq(ErpProjectPlan::getDelFlag, "0")
|
|
|
|
|
);
|
|
|
|
|
if (projectPlan == null) {
|
|
|
|
|
throw new ServiceException("该项目尚未创建项目计划,无法发起项目变更");
|
|
|
|
|
}
|
|
|
|
|
// 项目计划状态:1-草稿 2-审批中 3-审批通过
|
|
|
|
|
if (!"3".equals(projectPlan.getProjectPlanStatus())) {
|
|
|
|
|
throw new ServiceException("项目计划尚未审批通过,无法发起项目变更");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 校验并批量删除项目变更申请信息
|
|
|
|
|
*/
|
|
|
|
|
|