项目执行

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;
/**
* 执行结果
* -- mes 中存储执行类型改执行类型存储字段executeType该字段弃用
*/
@Schema(description = "执行结果")
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 {
executeResultMap.put(EXECUTE_RESULT_NO, "无");
@ -267,7 +268,7 @@ public class FmProjectMilestoneEntity extends BaseEntity {
}
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.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());
// 如果评价分数在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);
baseMapper.updateById(fmProjectMilestone);
return true;
@ -188,7 +190,7 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl<FmProjectMile
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);
projectMilestoneClone.setId(null);
projectMilestoneClone.setDelayDate(Boolean.TRUE);
@ -207,6 +209,7 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl<FmProjectMile
projectMilestoneClone.setGrade((short) 0);
projectMilestoneClone.setScore((double) 0);
projectMilestoneClone.setExecuteResult((short) 0);
projectMilestoneClone.setExecuteType(EXECUTE_RESULT_NO);
projectMilestoneClone.setDelayTime(null);
projectMilestoneClone.setCheckResult((short) 0);
projectMilestoneClone.setCheckMan(null);
@ -247,9 +250,8 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl<FmProjectMile
public boolean projectExecute(FmProjectMilestoneEntity fmProjectMilestone) {
check(fmProjectMilestone);
// 如果执行结果为完成或延期,需要选择下一节点审批人
if (FmProjectMilestoneEntity.EXECUTE_RESULT_JXSQ.equals(fmProjectMilestone.getExecuteResult())
|| FmProjectMilestoneEntity.EXECUTE_RESULT_YQ.equals(fmProjectMilestone.getExecuteResult())) {
// 如果执行类型不是终止,需要选择下一节点审批人
if (!FmProjectMilestoneEntity.EXECUTE_RESULT_ZZ.equals(fmProjectMilestone.getExecuteType())) {
if (Objects.nonNull(fmProjectMilestone.getNextApproverId())) {
R<User> userR = userClient.userInfoById(fmProjectMilestone.getNextApproverId());
if (!userR.isSuccess() || BeanUtil.isEmpty(userR.getData())) {
@ -263,20 +265,20 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl<FmProjectMile
}
FmProjectMilestoneEntity entity = getById(fmProjectMilestone.getId());
entity.setExecuteResult(fmProjectMilestone.getExecuteResult());
entity.setNextApproverId(fmProjectMilestone.getNextApproverId());
entity.setNextApproverName(fmProjectMilestone.getNextApproverName());
entity.setPaIndex(fmProjectMilestone.getPaIndex());
entity.setCheckResult(FmProjectMilestoneEntity.CHECK_RESULT_TREAT);
entity.setMilestoneMemo(fmProjectMilestone.getMilestoneMemo());
entity.setEvolve(fmProjectMilestone.getEvolve());
entity.setLastPlan(fmProjectMilestone.getLastPlan());
entity.setExecuteResult(fmProjectMilestone.getExecuteResult());
entity.setExecuteType(fmProjectMilestone.getExecuteType());
entity.setDelayTime(fmProjectMilestone.getDelayTime());
entity.setUpdateTime(new Date());
updateById(entity);
//如果类型选择终止,则后面的里程碑就不需要继续执行
if (fmProjectMilestone.getExecuteResult().equals(FmProjectMilestoneEntity.EXECUTE_RESULT_ZZ)) {
if (FmProjectMilestoneEntity.EXECUTE_RESULT_ZZ.equals(fmProjectMilestone.getExecuteType())) {
FmProjectApplicationEntity fmProjectApplication = fmProjectMilestone.getFmProjectApplication();
String paIndex = fmProjectMilestone.getPaIndex();
List<FmProjectMilestoneEntity> fmProjectMilestoneList = baseMapper
@ -284,7 +286,7 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl<FmProjectMile
.eq(FmProjectMilestoneEntity::getPaId, fmProjectApplication.getId()));
for (FmProjectMilestoneEntity projectMilestone : fmProjectMilestoneList) {
if (Double.parseDouble(projectMilestone.getPaIndex()) > Double.parseDouble(paIndex)) {
projectMilestone.setExecuteResult(FmProjectMilestoneEntity.EXECUTE_RESULT_ZZ);
projectMilestone.setExecuteType(FmProjectMilestoneEntity.EXECUTE_RESULT_ZZ);
baseMapper.updateById(projectMilestone);
}
}
@ -335,14 +337,13 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl<FmProjectMile
if (BeanUtil.isEmpty(fmProjectMilestone) || Objects.isNull(fmProjectMilestone.getId())) {
throw new RuntimeException("参数异常");
}
if (Objects.isNull(fmProjectMilestone.getExecuteResult())) {
throw new RuntimeException("请选择执行结果");
if (StrUtil.isNotEmpty(fmProjectMilestone.getExecuteType())) {
throw new RuntimeException("请选择执行类型");
}
// 剔除`无`选项
if (!FmProjectMilestoneEntity.executeResultMap.containsKey(fmProjectMilestone.getExecuteResult()) && !fmProjectMilestone.getExecuteResult().equals(FmProjectMilestoneEntity.EXECUTE_RESULT_NO)) {
throw new RuntimeException("请选择正确的执行结果");
if (!FmProjectMilestoneEntity.executeResultMap.containsKey(fmProjectMilestone.getExecuteType()) && !fmProjectMilestone.getExecuteType().equals(EXECUTE_RESULT_NO)) {
throw new RuntimeException("请选择正确的执行类型");
}
if (StrUtil.isEmpty(fmProjectMilestone.getMilestoneMemo())) {
throw new RuntimeException("请填写里程碑描述");
}
@ -352,9 +353,6 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl<FmProjectMile
if (StrUtil.isEmpty(fmProjectMilestone.getLastPlan())) {
throw new RuntimeException("请填写下一步计划");
}
if (Objects.isNull(fmProjectMilestone.getExecuteResult())) {
throw new RuntimeException("请选择执行结果");
}
if (StrUtil.isEmpty(fmProjectMilestone.getPaIndex())) {
throw new RuntimeException("请填写序号");
}
@ -362,7 +360,14 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl<FmProjectMile
if (BeanUtil.isEmpty(fmProjectApplication) || Objects.isNull(fmProjectApplication.getId())) {
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

Loading…
Cancel
Save