feat: 企标计划删除相关判断逻辑

This commit is contained in:
2024-01-18 11:20:39 +08:00
parent 9e2ec77ed5
commit 43031bcfa3
7 changed files with 35 additions and 9 deletions
@@ -29,7 +29,9 @@ import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.laws.common.service.ILawsCommonService;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
import com.jero.modules.laws.enterprise.service.ESSequenceNumberProvider;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
@@ -90,6 +92,9 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
@Resource
private ILawsCommonService commonService;
@Resource
private EnterpriseStandardPlanService espService;
@Override
public void startProcess(InitChangeDataVO initChangeData) {
// 发起的时候校验标准编号是是否重复
@@ -331,8 +336,15 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
List<ProcessEsInitChange> esInitChangeList = initChangeData.getDataList();
// 校验企标编号是否冲突
ProcessEsInitChange initChange = esInitChangeList.get(0);
// 如果是变更流程,则需要撤回制修订流程
if (ESPApplicationCategoryEnum.CHANGE.getValue().equals(initChange.getApplicationCategory())) {
// 如果是变更流程,则需要判断计划是否有效
Set<String> espIdSet = esInitChangeList.stream().map(ProcessEsInitChange::getEspId).collect(Collectors.toSet());
List<EnterpriseStandardPlan> esplist = espService.list(new LambdaQueryWrapper<EnterpriseStandardPlan>().in(EnterpriseStandardPlan::getId, espIdSet));
if (esplist == null || esplist.size() != espIdSet.size()) {
throw new JeroBootException(ResultCommon.INVALID_ESP);
}
// 如果是变更流程,则需要撤回制修订流程
List<String> espIdList = initChangeData.getDataList().stream().map(ProcessEsInitChange::getEspId).collect(Collectors.toList());
LambdaQueryWrapper<ProcessEsRevision> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(ProcessEsRevision::getEspId, espIdList);
@@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.activiti.entity.ProcessAll;
@@ -159,7 +160,12 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
}
public void startRunTask(ESRevisionDataVO revisionData) {
// do nothing now
// 检查企标计划是否已被删除
String espId = revisionData.getData().getEspId();
EnterpriseStandardPlan esp = espService.getById(espId);
if (esp == null) {
throw new JeroBootException(ResultCommon.INVALID_ESP);
}
}
@Override
@@ -44,9 +44,6 @@ import java.util.stream.Collectors;
public class EnterpriseStandardPlanServiceImpl extends ServiceImpl<EnterpriseStandardPlanMapper, EnterpriseStandardPlan>
implements EnterpriseStandardPlanService, ESSequenceNumberProvider {
@Resource
private ISysBaseAPI sysBaseAPI;
@Resource
private EnterpriseStandardPlanMapper esPlanMapper;
@@ -54,8 +51,12 @@ public class EnterpriseStandardPlanServiceImpl extends ServiceImpl<EnterpriseSta
public IPage<EnterpriseStandardPlanVo> queryPageList(ESPlanQueryDTO esPlanQueryDTO, Integer pageNo, Integer pageSize) {
IPage<EnterpriseStandardPlanVo> page = new Page<>(pageNo, pageSize);
esPlanMapper.page(page, esPlanQueryDTO);
// TODO 判断其能否删除 主起草人在待办中未进行操作,该计划允许删除(目前都设为允许删除)
page.getRecords().forEach(p -> p.setAllowDel(true));
// 未开始的才可以删除,发起流程的时候需要判断计划有没有被删除,如果计划被删除了则需要重新制定计划
page.getRecords().forEach(enterpriseStandardPlanVo -> {
enterpriseStandardPlanVo.setAllowDel(
ESPProjectStatus.NOT_STARTED.getValue()
.equals(enterpriseStandardPlanVo.getProjectStatus()));
});
return page;
}