From 4525ba3cc26629d0042a509e1ac23f2808721aa9 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Mon, 19 Feb 2024 15:21:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=2081853=20=E4=BC=81=E6=A0=87=E6=9B=B4?= =?UTF-8?q?=E6=94=B9=E6=B5=81=E7=A8=8B--=E6=B5=81=E7=A8=8B=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E4=B8=AD=EF=BC=8C=E4=BC=81=E6=A0=87=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ProcessEsChangeService.java | 5 +++ .../impl/ProcessEsChangeServiceImpl.java | 40 +++++++++++++++++++ .../controller/LawsEnterpriseController.java | 8 ++++ 3 files changed, 53 insertions(+) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/service/ProcessEsChangeService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/service/ProcessEsChangeService.java index 1d8c14bc..0fa98483 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/service/ProcessEsChangeService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/service/ProcessEsChangeService.java @@ -20,4 +20,9 @@ public interface ProcessEsChangeService extends IService { void approval(ESChangeDataVO changeData, boolean pass); + /** + * 检查是否在流程中,如果在流程中则不允许删除 + * @param ids + */ + void delCheck(String ids); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/service/impl/ProcessEsChangeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/service/impl/ProcessEsChangeServiceImpl.java index 1a541de2..dc1218ed 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/service/impl/ProcessEsChangeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/service/impl/ProcessEsChangeServiceImpl.java @@ -7,6 +7,8 @@ import com.jero.common.api.vo.ResultCommon; import com.jero.common.aspect.TranslationAspect; 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.enums.ProcessTypeEnum; import com.jero.modules.activiti.process.common.entity.CommonVO; import com.jero.modules.activiti.process.common.entity.CounterSignNodeNameConstants; @@ -25,6 +27,7 @@ import com.jero.modules.activiti.process.esChange.mapper.ProcessEsChangeMapper; import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO; import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; +import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessNodeLinkService; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; @@ -40,6 +43,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; +import java.util.stream.Collectors; /** * @author ThinkBook @@ -76,6 +80,9 @@ public class ProcessEsChangeServiceImpl extends ServiceImpl processAllWrapper = new LambdaQueryWrapper<>(); + processAllWrapper.eq(ProcessAll::getPrcType, ProcessTypeEnum.ES_CHANGE.getValue()); + processAllWrapper.eq(ProcessAll::getPrcStatus, ProcessStatusEnum.INCOMPLETE.getValue()); + List processAllList = processAllService.list(processAllWrapper); + if (processAllList.isEmpty()) { + return; + } + // 获取所有流程实例ID + List processInstanceIdList = new ArrayList<>(); + for (ProcessAll processAll : processAllList) { + processInstanceIdList.add(processAll.getProcessInstanceId()); + } + // 根据所有流程实例Id找到相应的企标修改流程 + LambdaQueryWrapper processEsChangeWrapper = new LambdaQueryWrapper<>(); + processEsChangeWrapper.in(ProcessEsChange::getProcessInstanceId, processInstanceIdList); + List processEsChangeList = list(processEsChangeWrapper); + Map> processEsChangeMap = processEsChangeList.stream() + .filter(e -> e.getStandardId() != null) + .collect(Collectors.groupingBy(ProcessEsChange::getStandardId)); + // 判断是否有进行中的企标修改流程 + for (String id : idsList) { + if (processEsChangeMap.containsKey(id)) { + List processEsChanges = processEsChangeMap.get(id); + throw new JeroBootException("标准编号为:" + processEsChanges.get(0).getStandardNumber() + "已在企标变更流程进行中,不可删除!"); + } + } + + } + } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java index 20e7b857..dbc1f727 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java @@ -8,6 +8,7 @@ import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.exception.JeroBootException; import com.jero.common.util.MessageUtils; +import com.jero.modules.activiti.process.esChange.service.ProcessEsChangeService; import com.jero.modules.compare.service.ISarFileCompareInfoService; import com.jero.modules.laws.common.constant.FieldCommon; import com.jero.common.api.vo.ResultCommon; @@ -80,6 +81,9 @@ public class LawsEnterpriseController { @Resource private ILawsCustomCompareInfoService customCompareService; + @Resource + private ProcessEsChangeService esChangeService; + private static final String MODULE_VALUE = TableNameEnum.ENTERPRISE_STANDARDS.getValue(); @AutoLog(value = "企业法规标准-分页列表查询") @@ -183,6 +187,8 @@ public class LawsEnterpriseController { if (!auth) { throw new JeroBootException(MessageUtils.getMessage(ResultCommon.NO_AUTH)); } + // 检查是否在企标更改流程中,如果在流程中则不允许删除 + esChangeService.delCheck((String) parameterMap.get("ids")); //删除标准时同步删除这个标准的收藏数据 lawsStandardCollectionService.deleteByStandardId((String) parameterMap.get("ids")); lawsStandardSharingService.deleteByStandardId((String) parameterMap.get("ids")); @@ -201,6 +207,8 @@ public class LawsEnterpriseController { public Result singleDelete(@RequestBody @ApiParam(name = "ids", value = "主键(多个用逗号分隔)") Map parameterMap) { // 水平越权校验 esAuthUserService.isDeleteHorizontalOverstep((String) parameterMap.get("ids")); + // 检查是否在企标更改流程中,如果在流程中则不允许删除 + esChangeService.delCheck((String) parameterMap.get("ids")); // 删除标准时同步删除这个标准的收藏数据 lawsStandardCollectionService.deleteByStandardId((String) parameterMap.get("ids")); lawsStandardSharingService.deleteByStandardId((String) parameterMap.get("ids"));