From cf81f641bd8d0e84b7e2eb687b852416758d1ce1 Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: 星期一, 08 四月 2024 22:43:12 +0800 Subject: [PATCH] update 修改流程定义删除 --- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java | 31 ++++++++++++++++++------------- 1 files changed, 18 insertions(+), 13 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java index 1627eba..468e397 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java @@ -35,6 +35,7 @@ import org.flowable.bpmn.model.UserTask; import org.flowable.engine.ProcessMigrationService; import org.flowable.engine.RepositoryService; +import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.impl.bpmn.deployer.ResourceNameUtil; import org.flowable.engine.repository.*; import org.flowable.task.api.history.HistoricTaskInstance; @@ -45,9 +46,7 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; +import java.util.*; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; @@ -188,24 +187,30 @@ /** * 鍒犻櫎娴佺▼瀹氫箟 * - * @param deploymentId 閮ㄧ讲id - * @param processDefinitionId 娴佺▼瀹氫箟id + * @param deploymentIds 閮ㄧ讲id + * @param processDefinitionIds 娴佺▼瀹氫箟id */ @Override @Transactional(rollbackFor = Exception.class) - public boolean deleteDeployment(String deploymentId, String processDefinitionId) { + public boolean deleteDeployment(List<String> deploymentIds, List<String> processDefinitionIds) { try { - List<HistoricTaskInstance> taskInstanceList = QueryUtils.hisTaskInstanceQuery() - .processDefinitionId(processDefinitionId).list(); - if (CollectionUtil.isNotEmpty(taskInstanceList)) { - throw new ServiceException("褰撳墠娴佺▼瀹氫箟宸茶浣跨敤涓嶅彲鍒犻櫎锛�"); + List<HistoricProcessInstance> historicProcessInstances = QueryUtils.hisInstanceQuery().deploymentIdIn(deploymentIds).list(); + if (CollectionUtil.isNotEmpty(historicProcessInstances)) { + Set<String> defIds = StreamUtils.toSet(historicProcessInstances, HistoricProcessInstance::getProcessDefinitionId); + List<ProcessDefinition> processDefinitions = QueryUtils.definitionQuery().processDefinitionIds(defIds).list(); + if (CollUtil.isNotEmpty(processDefinitions)) { + Set<String> keys = StreamUtils.toSet(processDefinitions, ProcessDefinition::getKey); + throw new ServiceException("褰撳墠銆�" + String.join(",", keys) + "銆戞祦绋嬪畾涔夊凡琚娇鐢ㄤ笉鍙垹闄わ紒"); + } } //鍒犻櫎娴佺▼瀹氫箟 - repositoryService.deleteDeployment(deploymentId); + for (String deploymentId : deploymentIds) { + repositoryService.deleteDeployment(deploymentId); + } //鍒犻櫎娴佺▼瀹氫箟閰嶇疆 - iWfDefinitionConfigService.deleteByDefIds(Collections.singletonList(processDefinitionId)); + iWfDefinitionConfigService.deleteByDefIds(processDefinitionIds); //鍒犻櫎鑺傜偣閰嶇疆 - iWfNodeConfigService.deleteByDefIds(Collections.singletonList(processDefinitionId)); + iWfNodeConfigService.deleteByDefIds(processDefinitionIds); return true; } catch (Exception e) { e.printStackTrace(); -- Gitblit v1.9.3