diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java b/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java index af029034..c6315504 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java @@ -141,6 +141,11 @@ public class ResultCommon { */ public static final String EN_STANDARD_NUMBER_CONFLICT = "en.standard.number.conflict"; + /** + * 该新企标编号与已存在的企标编号重复,请重新修改提交 + */ + public static final String NEW_EN_STANDARD_NUMBER_CONFLICT = "new.en.standard.number.conflict"; + /** * 无效的企标计划 */ diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/ProcessESInitChangeEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/ProcessESInitChangeEndListener.java index 8fed6c4c..937150cc 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/ProcessESInitChangeEndListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/ProcessESInitChangeEndListener.java @@ -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())); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java index d3462dac..2d1de8e9 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java @@ -370,6 +370,11 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl numList = new ArrayList<>(); // 判断是否和企标库中重复 - numList.addAll(esService.list().stream().map(LawsEnterpriseStandard::getStandardNumber).collect(Collectors.toList())); + LambdaQueryWrapper esWrapper = new LambdaQueryWrapper<>(); + esWrapper.eq(LawsEnterpriseStandard::getStandardNumber, StandardNumber); + esWrapper.eq(LawsEnterpriseStandard::getDelFlag, YesOrNoEnum.NO.getInteger()); + List numList = esService.list(esWrapper) + .stream().map(LawsEnterpriseStandard::getStandardNumber).collect(Collectors.toList()); // 判断是否和企标计划库中重复 - numList.addAll(espService.list().stream().map(EnterpriseStandardPlan::getNewEnStandardNo).collect(Collectors.toList())); + LambdaQueryWrapper 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 processAllLambdaQueryWrapper = new LambdaQueryWrapper<>(); + processAllLambdaQueryWrapper.eq(ProcessAll::getPrcType, ProcessTypeEnum.ES_INIT_CHANGE.getValue()); + processAllLambdaQueryWrapper.ne(ProcessAll::getPrcStatus, ProcessStatusEnum.WITHDRAWN.getValue()); + List paList = processAllService.list(processAllLambdaQueryWrapper); + List processInstanceIdList = new ArrayList<>(); + if (paList != null && !paList.isEmpty()) { + processInstanceIdList = paList.stream().map(ProcessAll::getProcessInstanceId).collect(Collectors.toList()); + } + LambdaQueryWrapper 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); } diff --git a/laws-single-startup/src/main/resources/i18n/messages.properties b/laws-single-startup/src/main/resources/i18n/messages.properties index 9a592e11..124aba19 100644 --- a/laws-single-startup/src/main/resources/i18n/messages.properties +++ b/laws-single-startup/src/main/resources/i18n/messages.properties @@ -73,4 +73,5 @@ can.not.edit.abolish.or.archive.es=\u5DF2\u5E9F\u6B62\u6216\u5DF2\u5F52\u6863\u7 task.urging.error.2=\u6682\u65E0\u8BE5\u6D41\u7A0B\u50AC\u529E\u6743\u9650 horizontal.transgression.select=\u6682\u65E0\u6743\u9650\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9 assess.delete.error=\u672A\u7B26\u5408\u9879\u4E2D\u6709\u6574\u6539\u4E2D\u3001\u5BA1\u6279\u4E2D\u7684\u6570\u636E\u65F6\uFF0C\u4E0D\u5141\u8BB8\u5220\u9664 -assess.delete.error2=\u9879\u76EE\u4E2D\u6709\u8BC4\u4F30\u4E2D\u7684\u6570\u636E\u65F6\uFF0C\u4E0D\u5141\u8BB8\u5220\u9664 \ No newline at end of file +assess.delete.error2=\u9879\u76EE\u4E2D\u6709\u8BC4\u4F30\u4E2D\u7684\u6570\u636E\u65F6\uFF0C\u4E0D\u5141\u8BB8\u5220\u9664 +new.en.standard.number.conflict=\u8BE5\u65B0\u4F01\u6807\u7F16\u53F7\u4E0E\u5DF2\u5B58\u5728\u7684\u4F01\u6807\u7F16\u53F7\u91CD\u590D\uFF0C\u8BF7\u91CD\u65B0\u4FEE\u6539\u63D0\u4EA4 \ No newline at end of file diff --git a/laws-single-startup/src/main/resources/i18n/messages_en.properties b/laws-single-startup/src/main/resources/i18n/messages_en.properties index a0144343..76f24847 100644 --- a/laws-single-startup/src/main/resources/i18n/messages_en.properties +++ b/laws-single-startup/src/main/resources/i18n/messages_en.properties @@ -78,4 +78,5 @@ can.not.edit.abolish.or.archive.es=Can not edit abolished or archived enterprise task.urging.error.2=I currently do not have the authority to urge this process horizontal.transgression.select=no permission at the moment please reselect assess.delete.error=When there is data under rectification or approval in the non compliant items, deletion is not allowed -assess.delete.error2=When there is data under evaluation in the project, deletion is not allowed \ No newline at end of file +assess.delete.error2=When there is data under evaluation in the project, deletion is not allowed +new.en.standard.number.conflict=The new enterprise standard number is duplicated with the existing enterprise standard number, please modify and submit it again \ No newline at end of file diff --git a/laws-single-startup/src/main/resources/i18n/messages_zh.properties b/laws-single-startup/src/main/resources/i18n/messages_zh.properties index 8f39fb9b..97242f7c 100644 --- a/laws-single-startup/src/main/resources/i18n/messages_zh.properties +++ b/laws-single-startup/src/main/resources/i18n/messages_zh.properties @@ -78,4 +78,5 @@ can.not.edit.abolish.or.archive.es=\u5DF2\u5E9F\u6B62\u6216\u5DF2\u5F52\u6863\u7 task.urging.error.2=\u6682\u65E0\u8BE5\u6D41\u7A0B\u50AC\u529E\u6743\u9650 horizontal.transgression.select=\u6682\u65E0\u6743\u9650\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9 assess.delete.error=\u672A\u7B26\u5408\u9879\u4E2D\u6709\u6574\u6539\u4E2D\u3001\u5BA1\u6279\u4E2D\u7684\u6570\u636E\u65F6\uFF0C\u4E0D\u5141\u8BB8\u5220\u9664 -assess.delete.error2=\u9879\u76EE\u4E2D\u6709\u8BC4\u4F30\u4E2D\u7684\u6570\u636E\u65F6\uFF0C\u4E0D\u5141\u8BB8\u5220\u9664 \ No newline at end of file +assess.delete.error2=\u9879\u76EE\u4E2D\u6709\u8BC4\u4F30\u4E2D\u7684\u6570\u636E\u65F6\uFF0C\u4E0D\u5141\u8BB8\u5220\u9664 +new.en.standard.number.conflict=\u8BE5\u65B0\u4F01\u6807\u7F16\u53F7\u4E0E\u5DF2\u5B58\u5728\u7684\u4F01\u6807\u7F16\u53F7\u91CD\u590D\uFF0C\u8BF7\u91CD\u65B0\u4FEE\u6539\u63D0\u4EA4 \ No newline at end of file