fix: 81953 企标计划立项--修订--发起节点提交需要调整唯一性校验

This commit is contained in:
2024-02-23 11:24:04 +08:00
parent 427df4d803
commit c61e9aae81
7 changed files with 58 additions and 9 deletions
@@ -2,7 +2,9 @@ package com.jero.modules.activiti.process.esInitChange.listener;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
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;
import com.jero.modules.activiti.enums.ProcessStatusEnum;
import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange;
@@ -78,10 +80,14 @@ public class ProcessESInitChangeEndListener implements ExecutionListener {
processEsInitChange.setId(null);
processEsInitChange.setProjectStatus(ESPProjectStatus.IN_PROGRESS.getValue());
processEsInitChange.setChangeStatus(ESPChangeType.ADD.getValue());
if (ESPProjectType.MODIFY.getValue().equals(projectType))
if (ESPProjectType.MODIFY.getValue().equals(projectType)) {
processEsInitChange.setApplicationCategory(ESPProjectType.MODIFY.getValue());
else
if (!esUtil.verifyEnStandardNumber(processEsInitChanges.get(0).getNewEnStandardNo())) {
throw new JeroBootException(ResultCommon.NEW_EN_STANDARD_NUMBER_CONFLICT);
}
} else {
processEsInitChange.setApplicationCategory(ESPProjectType.ENACT.getValue());
}
// 设置企业标准代号字段值
processEsInitChange.setEnStandardCode(esUtil.getEnStandardCode(processEsInitChange.getNewEnStandardNo()));
}
@@ -370,6 +370,11 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
throw new JeroBootException(ResultCommon.EN_STANDARD_NUMBER_CONFLICT);
}
}
if (initChange.getProjectType().equals(ESPProjectType.MODIFY.getValue())) {
if (!esUtil.verifyEnStandardNumber(initChange.getNewEnStandardNo())) {
throw new JeroBootException(ResultCommon.NEW_EN_STANDARD_NUMBER_CONFLICT);
}
}
}
public void startRunTask(InitChangeDataVO initChangeData) {
@@ -1,11 +1,17 @@
package com.jero.modules.laws.enterprise.util;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.DictModel;
import com.jero.common.util.MessageUtils;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.enums.ProcessStatusEnum;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange;
import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.common.api.vo.ResultCommon;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
@@ -47,6 +53,9 @@ public class EnterpriseStandardUtil {
@Resource
private EnterpriseStandardPlanService espService;
@Resource
private ProcessAllService processAllService;
/**
* 生成新序列号
*
@@ -253,13 +262,34 @@ public class EnterpriseStandardUtil {
* @return
*/
public boolean verifyEnStandardNumber(String StandardNumber) {
List<String> numList = new ArrayList<>();
// 判断是否和企标库中重复
numList.addAll(esService.list().stream().map(LawsEnterpriseStandard::getStandardNumber).collect(Collectors.toList()));
LambdaQueryWrapper<LawsEnterpriseStandard> esWrapper = new LambdaQueryWrapper<>();
esWrapper.eq(LawsEnterpriseStandard::getStandardNumber, StandardNumber);
esWrapper.eq(LawsEnterpriseStandard::getDelFlag, YesOrNoEnum.NO.getInteger());
List<String> numList = esService.list(esWrapper)
.stream().map(LawsEnterpriseStandard::getStandardNumber).collect(Collectors.toList());
// 判断是否和企标计划库中重复
numList.addAll(espService.list().stream().map(EnterpriseStandardPlan::getNewEnStandardNo).collect(Collectors.toList()));
LambdaQueryWrapper<EnterpriseStandardPlan> planWrapper = new LambdaQueryWrapper<>();
planWrapper.eq(EnterpriseStandardPlan::getNewEnStandardNo, StandardNumber);
planWrapper.eq(EnterpriseStandardPlan::getDelFlag, YesOrNoEnum.NO.getInteger());
numList.addAll(espService.list(planWrapper)
.stream().map(EnterpriseStandardPlan::getNewEnStandardNo).collect(Collectors.toList()));
// 判断是否和立项流程中重复
numList.addAll(initChangeService.list().stream().map(ProcessEsInitChange::getNewEnStandardNo).collect(Collectors.toList()));
// 已经撤回的立项流程不需要判断重复
LambdaQueryWrapper<ProcessAll> processAllLambdaQueryWrapper = new LambdaQueryWrapper<>();
processAllLambdaQueryWrapper.eq(ProcessAll::getPrcType, ProcessTypeEnum.ES_INIT_CHANGE.getValue());
processAllLambdaQueryWrapper.ne(ProcessAll::getPrcStatus, ProcessStatusEnum.WITHDRAWN.getValue());
List<ProcessAll> paList = processAllService.list(processAllLambdaQueryWrapper);
List<String> processInstanceIdList = new ArrayList<>();
if (paList != null && !paList.isEmpty()) {
processInstanceIdList = paList.stream().map(ProcessAll::getProcessInstanceId).collect(Collectors.toList());
}
LambdaQueryWrapper<ProcessEsInitChange> initChangeWrapper = new LambdaQueryWrapper<>();
initChangeWrapper.eq(ProcessEsInitChange::getNewEnStandardNo, StandardNumber);
initChangeWrapper.eq(ProcessEsInitChange::getDelFlag, YesOrNoEnum.NO.getValue());
initChangeWrapper.in(ProcessEsInitChange::getProcessInstanceId, processInstanceIdList);
numList.addAll(initChangeService.list(initChangeWrapper)
.stream().map(ProcessEsInitChange::getNewEnStandardNo).collect(Collectors.toList()));
return !numList.contains(StandardNumber);
}