diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomBizSpecifyAssigneeToTaskCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomBizSpecifyAssigneeToTaskCmd.java index d7a7e3e2a..12e26e1db 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomBizSpecifyAssigneeToTaskCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomBizSpecifyAssigneeToTaskCmd.java @@ -55,8 +55,6 @@ public class CustomBizSpecifyAssigneeToTaskCmd implements Command, Seri addAssignee(commandContext, taskService, task); - RuntimeService runtimeService = processEngineConfiguration.getRuntimeService(); - runtimeService.deleteMultiInstanceExecution(task.getExecutionId(), false); return true; } @@ -94,6 +92,7 @@ public class CustomBizSpecifyAssigneeToTaskCmd implements Command, Seri // } }); + CustomTaskHelper.deleteMultiTask(commandContext, (TaskEntity) task); } private void validTask(Task task) { diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCountSignUserTaskCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCountSignUserTaskCmd.java index 5b00500c8..c37b20158 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCountSignUserTaskCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCountSignUserTaskCmd.java @@ -84,6 +84,7 @@ public class CustomCountSignUserTaskCmd implements Command, Serializable { } CustomTaskHelper.addAttachment(commandContext, task.getProcessInstanceId(), task.getId(), attachmentList); + CustomTaskHelper.deleteMultiTask(commandContext, (TaskEntity) task); return null; } diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomTransferUserTaskCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomTransferUserTaskCmd.java index e97b68f11..ee62e9a2a 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomTransferUserTaskCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomTransferUserTaskCmd.java @@ -69,6 +69,7 @@ public class CustomTransferUserTaskCmd implements Command, Serializable { CustomTaskHelper.addAttachment(commandContext, task.getProcessInstanceId(), task.getId(), attachmentList); CustomTaskHelper.addMultiTask(commandContext, (TaskEntity) task, targetTaskAssignee); + CustomTaskHelper.deleteMultiTask(commandContext, (TaskEntity) task); return null; } diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/helper/CustomTaskHelper.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/helper/CustomTaskHelper.java index fb3e18529..67cf95656 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/helper/CustomTaskHelper.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/helper/CustomTaskHelper.java @@ -53,6 +53,16 @@ public class CustomTaskHelper { setParentTaskId(originTask, subExecution); } + public static void deleteMultiTask(CommandContext commandContext, TaskEntity originTask) { + if (Objects.isNull(originTask)) { + return; + } + ProcessEngineConfigurationImpl processEngineConfiguration = + CommandContextUtil.getProcessEngineConfiguration(commandContext); + RuntimeService runtimeService = processEngineConfiguration.getRuntimeService(); + runtimeService.deleteMultiInstanceExecution(originTask.getExecutionId(), false); + } + private static void setParentTaskId(TaskEntity originTask, Execution subExecution) { CommandContextUtil.getEntityCache().findInCache(TaskEntity.class).stream() .filter(i -> Objects.equals(i.getExecutionId(), subExecution.getId())).findAny()