项目执行

liweidong
张乾翔 2 days ago
parent 574b92c0e9
commit 9fe2be4d89
  1. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectMilestoneEntity.java
  2. 43
      blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java

@ -122,6 +122,7 @@ public class FmProjectMilestoneEntity extends BaseEntity {
private Double score; private Double score;
/** /**
* 执行结果 * 执行结果
* -- mes 中存储执行类型改执行类型存储字段executeType该字段弃用
*/ */
@Schema(description = "执行结果") @Schema(description = "执行结果")
private Short executeResult=0; private Short executeResult=0;
@ -243,21 +244,21 @@ public class FmProjectMilestoneEntity extends BaseEntity {
/** /**
* 执行类型 * 执行类型
*/ */
public static Short EXECUTE_RESULT_NO = 0; public static String EXECUTE_RESULT_NO = "0";
/** /**
* 执行类型 延期 * 执行类型 延期
*/ */
public static Short EXECUTE_RESULT_YQ = 1; public static String EXECUTE_RESULT_YQ = "1";
/** /**
* 执行类型 终止 * 执行类型 终止
*/ */
public static Short EXECUTE_RESULT_ZZ = 2; public static String EXECUTE_RESULT_ZZ = "2";
/** /**
* 执行类型 完成 * 执行类型 完成
*/ */
public static Short EXECUTE_RESULT_JXSQ = 3; public static String EXECUTE_RESULT_JXSQ = "3";
public static Map<Short, String> executeResultMap = new HashMap<>(3); public static Map<String, String> executeResultMap = new HashMap<>(3);
static { static {
executeResultMap.put(EXECUTE_RESULT_NO, "无"); executeResultMap.put(EXECUTE_RESULT_NO, "无");
@ -267,7 +268,7 @@ public class FmProjectMilestoneEntity extends BaseEntity {
} }
public String getExecuteResultTitle() { public String getExecuteResultTitle() {
return executeResultMap.get(this.executeResult); return executeResultMap.get(this.executeType);
} }

@ -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

Loading…
Cancel
Save