diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/controller/ModelerController.java b/laws-modules/src/main/java/com/jero/modules/activiti/controller/ModelerController.java index 2ba48d76..ff406f33 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/controller/ModelerController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/controller/ModelerController.java @@ -30,6 +30,7 @@ import org.activiti.editor.language.json.converter.BpmnJsonConverter; import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; import org.activiti.engine.RepositoryService; +import org.activiti.engine.RuntimeService; import org.activiti.engine.delegate.BaseExecutionListener; import org.activiti.engine.delegate.TaskListener; import org.activiti.engine.repository.*; @@ -446,25 +447,28 @@ public class ModelerController { // 获取流程引擎 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); - // 获取RuntimeService并删除所有流程实例 - List instances = processEngine.getRuntimeService() - .createProcessInstanceQuery() - .list(); - for (ProcessInstance instance : instances) { - processEngine.getRuntimeService() - .deleteProcessInstance(instance.getId(), "Cleanup all instances"); + // 获取RuntimeService并批量删除所有流程实例 + RuntimeService runtimeService = processEngine.getRuntimeService(); + List instanceIds = runtimeService.createProcessInstanceQuery().list() + .stream() + .map(ProcessInstance::getId) + .collect(Collectors.toList()); + for (String id : instanceIds) { + runtimeService.deleteProcessInstance(id, "Cleanup all instances"); } - // 获取RepositoryService并删除所有流程 - List definitions = processEngine.getRepositoryService() - .createProcessDefinitionQuery() - .list(); - for (ProcessDefinition definition : definitions) { - processEngine.getRepositoryService() - .deleteDeployment(definition.getDeploymentId(), true); + // 获取RepositoryService并批量删除所有流程 + RepositoryService repositoryService = processEngine.getRepositoryService(); + List deploymentIds = repositoryService.createProcessDefinitionQuery().list() + .stream() + .map(ProcessDefinition::getDeploymentId) + .collect(Collectors.toList()); + for (String id : deploymentIds) { + repositoryService.deleteDeployment(id, true); } } + }