|
|
|
@ -63,6 +63,8 @@ import java.util.Date; |
|
|
|
import java.util.List; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Objects; |
|
|
|
import java.util.Objects; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import static org.springblade.desk.process.pojo.entity.FmProjectMilestoneEntity.EXECUTE_RESULT_NO; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 项目里程碑 服务实现类 |
|
|
|
* 项目里程碑 服务实现类 |
|
|
|
* |
|
|
|
* |
|
|
|
@ -180,7 +182,7 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl<FmProjectMile |
|
|
|
fmProjectMilestone.setEvaluate(fmProjectMilestone.getEvolve()); |
|
|
|
fmProjectMilestone.setEvaluate(fmProjectMilestone.getEvolve()); |
|
|
|
|
|
|
|
|
|
|
|
// 如果评价分数在75分以上,并且执行类型不是延期。则代表本节点已经完成
|
|
|
|
// 如果评价分数在75分以上,并且执行类型不是延期。则代表本节点已经完成
|
|
|
|
if (score < 75 && !FmProjectMilestoneEntity.EXECUTE_RESULT_YQ.equals(fmProjectMilestone.getExecuteResult())) { |
|
|
|
if (score < 75 && !FmProjectMilestoneEntity.EXECUTE_RESULT_YQ.equals(fmProjectMilestone.getExecuteType())) { |
|
|
|
fmProjectMilestone.setCheckResult(FmProjectMilestoneEntity.CHECK_RESULT_TREAT); |
|
|
|
fmProjectMilestone.setCheckResult(FmProjectMilestoneEntity.CHECK_RESULT_TREAT); |
|
|
|
baseMapper.updateById(fmProjectMilestone); |
|
|
|
baseMapper.updateById(fmProjectMilestone); |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
@ -188,7 +190,7 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl<FmProjectMile |
|
|
|
baseMapper.updateById(fmProjectMilestone); |
|
|
|
baseMapper.updateById(fmProjectMilestone); |
|
|
|
|
|
|
|
|
|
|
|
// 如果选择的是延期,则生成一条新的里程碑,此里程碑关闭
|
|
|
|
// 如果选择的是延期,则生成一条新的里程碑,此里程碑关闭
|
|
|
|
if (FmProjectMilestoneEntity.EXECUTE_RESULT_YQ.equals(fmProjectMilestone.getExecuteResult())) { |
|
|
|
if (FmProjectMilestoneEntity.EXECUTE_RESULT_YQ.equals(fmProjectMilestone.getExecuteType())) { |
|
|
|
FmProjectMilestoneEntity projectMilestoneClone = BeanUtil.copyProperties(fmProjectMilestone, FmProjectMilestoneEntity.class); |
|
|
|
FmProjectMilestoneEntity projectMilestoneClone = BeanUtil.copyProperties(fmProjectMilestone, FmProjectMilestoneEntity.class); |
|
|
|
projectMilestoneClone.setId(null); |
|
|
|
projectMilestoneClone.setId(null); |
|
|
|
projectMilestoneClone.setDelayDate(Boolean.TRUE); |
|
|
|
projectMilestoneClone.setDelayDate(Boolean.TRUE); |
|
|
|
@ -207,6 +209,7 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl<FmProjectMile |
|
|
|
projectMilestoneClone.setGrade((short) 0); |
|
|
|
projectMilestoneClone.setGrade((short) 0); |
|
|
|
projectMilestoneClone.setScore((double) 0); |
|
|
|
projectMilestoneClone.setScore((double) 0); |
|
|
|
projectMilestoneClone.setExecuteResult((short) 0); |
|
|
|
projectMilestoneClone.setExecuteResult((short) 0); |
|
|
|
|
|
|
|
projectMilestoneClone.setExecuteType(EXECUTE_RESULT_NO); |
|
|
|
projectMilestoneClone.setDelayTime(null); |
|
|
|
projectMilestoneClone.setDelayTime(null); |
|
|
|
projectMilestoneClone.setCheckResult((short) 0); |
|
|
|
projectMilestoneClone.setCheckResult((short) 0); |
|
|
|
projectMilestoneClone.setCheckMan(null); |
|
|
|
projectMilestoneClone.setCheckMan(null); |
|
|
|
@ -247,9 +250,8 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl<FmProjectMile |
|
|
|
public boolean projectExecute(FmProjectMilestoneEntity fmProjectMilestone) { |
|
|
|
public boolean projectExecute(FmProjectMilestoneEntity fmProjectMilestone) { |
|
|
|
check(fmProjectMilestone); |
|
|
|
check(fmProjectMilestone); |
|
|
|
|
|
|
|
|
|
|
|
// 如果执行结果为完成或延期,需要选择下一节点审批人
|
|
|
|
// 如果执行类型不是终止,需要选择下一节点审批人
|
|
|
|
if (FmProjectMilestoneEntity.EXECUTE_RESULT_JXSQ.equals(fmProjectMilestone.getExecuteResult()) |
|
|
|
if (!FmProjectMilestoneEntity.EXECUTE_RESULT_ZZ.equals(fmProjectMilestone.getExecuteType())) { |
|
|
|
|| FmProjectMilestoneEntity.EXECUTE_RESULT_YQ.equals(fmProjectMilestone.getExecuteResult())) { |
|
|
|
|
|
|
|
if (Objects.nonNull(fmProjectMilestone.getNextApproverId())) { |
|
|
|
if (Objects.nonNull(fmProjectMilestone.getNextApproverId())) { |
|
|
|
R<User> userR = userClient.userInfoById(fmProjectMilestone.getNextApproverId()); |
|
|
|
R<User> userR = userClient.userInfoById(fmProjectMilestone.getNextApproverId()); |
|
|
|
if (!userR.isSuccess() || BeanUtil.isEmpty(userR.getData())) { |
|
|
|
if (!userR.isSuccess() || BeanUtil.isEmpty(userR.getData())) { |
|
|
|
@ -263,20 +265,20 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl<FmProjectMile |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
FmProjectMilestoneEntity entity = getById(fmProjectMilestone.getId()); |
|
|
|
FmProjectMilestoneEntity entity = getById(fmProjectMilestone.getId()); |
|
|
|
entity.setExecuteResult(fmProjectMilestone.getExecuteResult()); |
|
|
|
|
|
|
|
entity.setNextApproverId(fmProjectMilestone.getNextApproverId()); |
|
|
|
entity.setNextApproverId(fmProjectMilestone.getNextApproverId()); |
|
|
|
entity.setNextApproverName(fmProjectMilestone.getNextApproverName()); |
|
|
|
entity.setNextApproverName(fmProjectMilestone.getNextApproverName()); |
|
|
|
entity.setPaIndex(fmProjectMilestone.getPaIndex()); |
|
|
|
entity.setPaIndex(fmProjectMilestone.getPaIndex()); |
|
|
|
|
|
|
|
entity.setCheckResult(FmProjectMilestoneEntity.CHECK_RESULT_TREAT); |
|
|
|
entity.setMilestoneMemo(fmProjectMilestone.getMilestoneMemo()); |
|
|
|
entity.setMilestoneMemo(fmProjectMilestone.getMilestoneMemo()); |
|
|
|
entity.setEvolve(fmProjectMilestone.getEvolve()); |
|
|
|
entity.setEvolve(fmProjectMilestone.getEvolve()); |
|
|
|
entity.setLastPlan(fmProjectMilestone.getLastPlan()); |
|
|
|
entity.setLastPlan(fmProjectMilestone.getLastPlan()); |
|
|
|
entity.setExecuteResult(fmProjectMilestone.getExecuteResult()); |
|
|
|
entity.setExecuteType(fmProjectMilestone.getExecuteType()); |
|
|
|
entity.setDelayTime(fmProjectMilestone.getDelayTime()); |
|
|
|
entity.setDelayTime(fmProjectMilestone.getDelayTime()); |
|
|
|
entity.setUpdateTime(new Date()); |
|
|
|
entity.setUpdateTime(new Date()); |
|
|
|
updateById(entity); |
|
|
|
updateById(entity); |
|
|
|
|
|
|
|
|
|
|
|
//如果类型选择终止,则后面的里程碑就不需要继续执行
|
|
|
|
//如果类型选择终止,则后面的里程碑就不需要继续执行
|
|
|
|
if (fmProjectMilestone.getExecuteResult().equals(FmProjectMilestoneEntity.EXECUTE_RESULT_ZZ)) { |
|
|
|
if (FmProjectMilestoneEntity.EXECUTE_RESULT_ZZ.equals(fmProjectMilestone.getExecuteType())) { |
|
|
|
FmProjectApplicationEntity fmProjectApplication = fmProjectMilestone.getFmProjectApplication(); |
|
|
|
FmProjectApplicationEntity fmProjectApplication = fmProjectMilestone.getFmProjectApplication(); |
|
|
|
String paIndex = fmProjectMilestone.getPaIndex(); |
|
|
|
String paIndex = fmProjectMilestone.getPaIndex(); |
|
|
|
List<FmProjectMilestoneEntity> fmProjectMilestoneList = baseMapper |
|
|
|
List<FmProjectMilestoneEntity> fmProjectMilestoneList = baseMapper |
|
|
|
@ -284,7 +286,7 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl<FmProjectMile |
|
|
|
.eq(FmProjectMilestoneEntity::getPaId, fmProjectApplication.getId())); |
|
|
|
.eq(FmProjectMilestoneEntity::getPaId, fmProjectApplication.getId())); |
|
|
|
for (FmProjectMilestoneEntity projectMilestone : fmProjectMilestoneList) { |
|
|
|
for (FmProjectMilestoneEntity projectMilestone : fmProjectMilestoneList) { |
|
|
|
if (Double.parseDouble(projectMilestone.getPaIndex()) > Double.parseDouble(paIndex)) { |
|
|
|
if (Double.parseDouble(projectMilestone.getPaIndex()) > Double.parseDouble(paIndex)) { |
|
|
|
projectMilestone.setExecuteResult(FmProjectMilestoneEntity.EXECUTE_RESULT_ZZ); |
|
|
|
projectMilestone.setExecuteType(FmProjectMilestoneEntity.EXECUTE_RESULT_ZZ); |
|
|
|
baseMapper.updateById(projectMilestone); |
|
|
|
baseMapper.updateById(projectMilestone); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -335,14 +337,13 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl<FmProjectMile |
|
|
|
if (BeanUtil.isEmpty(fmProjectMilestone) || Objects.isNull(fmProjectMilestone.getId())) { |
|
|
|
if (BeanUtil.isEmpty(fmProjectMilestone) || Objects.isNull(fmProjectMilestone.getId())) { |
|
|
|
throw new RuntimeException("参数异常"); |
|
|
|
throw new RuntimeException("参数异常"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (Objects.isNull(fmProjectMilestone.getExecuteResult())) { |
|
|
|
if (StrUtil.isNotEmpty(fmProjectMilestone.getExecuteType())) { |
|
|
|
throw new RuntimeException("请选择执行结果"); |
|
|
|
throw new RuntimeException("请选择执行类型"); |
|
|
|
} |
|
|
|
} |
|
|
|
// 剔除`无`选项
|
|
|
|
// 剔除`无`选项
|
|
|
|
if (!FmProjectMilestoneEntity.executeResultMap.containsKey(fmProjectMilestone.getExecuteResult()) && !fmProjectMilestone.getExecuteResult().equals(FmProjectMilestoneEntity.EXECUTE_RESULT_NO)) { |
|
|
|
if (!FmProjectMilestoneEntity.executeResultMap.containsKey(fmProjectMilestone.getExecuteType()) && !fmProjectMilestone.getExecuteType().equals(EXECUTE_RESULT_NO)) { |
|
|
|
throw new RuntimeException("请选择正确的执行结果"); |
|
|
|
throw new RuntimeException("请选择正确的执行类型"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (StrUtil.isEmpty(fmProjectMilestone.getMilestoneMemo())) { |
|
|
|
if (StrUtil.isEmpty(fmProjectMilestone.getMilestoneMemo())) { |
|
|
|
throw new RuntimeException("请填写里程碑描述"); |
|
|
|
throw new RuntimeException("请填写里程碑描述"); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -352,9 +353,6 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl<FmProjectMile |
|
|
|
if (StrUtil.isEmpty(fmProjectMilestone.getLastPlan())) { |
|
|
|
if (StrUtil.isEmpty(fmProjectMilestone.getLastPlan())) { |
|
|
|
throw new RuntimeException("请填写下一步计划"); |
|
|
|
throw new RuntimeException("请填写下一步计划"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (Objects.isNull(fmProjectMilestone.getExecuteResult())) { |
|
|
|
|
|
|
|
throw new RuntimeException("请选择执行结果"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (StrUtil.isEmpty(fmProjectMilestone.getPaIndex())) { |
|
|
|
if (StrUtil.isEmpty(fmProjectMilestone.getPaIndex())) { |
|
|
|
throw new RuntimeException("请填写序号"); |
|
|
|
throw new RuntimeException("请填写序号"); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -362,7 +360,14 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl<FmProjectMile |
|
|
|
if (BeanUtil.isEmpty(fmProjectApplication) || Objects.isNull(fmProjectApplication.getId())) { |
|
|
|
if (BeanUtil.isEmpty(fmProjectApplication) || Objects.isNull(fmProjectApplication.getId())) { |
|
|
|
throw new RuntimeException("参数异常"); |
|
|
|
throw new RuntimeException("参数异常"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
FmProjectApplicationEntity applicationEntity = fmProjectApplicationService.getById(fmProjectApplication.getId()); |
|
|
|
|
|
|
|
if (BeanUtil.isEmpty(applicationEntity)) { |
|
|
|
|
|
|
|
throw new RuntimeException("参数异常"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
Long userId = AuthUtil.getUserId(); |
|
|
|
|
|
|
|
if (!userId.toString().equals(applicationEntity.getProjectHeadId())) { |
|
|
|
|
|
|
|
throw new RuntimeException("非项目负责人没有执行权限"); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
|