From faaf6250dbda814e7554907912d898ddf805e869 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Mon, 25 Dec 2023 18:09:33 +0800 Subject: [PATCH] =?UTF-8?q?update=20-=20=E6=B5=8B=E8=AF=95=E4=B8=80?= =?UTF-8?q?=E7=A7=8D=E6=96=B0=E7=9A=84=E5=A4=84=E7=90=86=E5=8A=A0=E7=AD=BE?= =?UTF-8?q?=E5=92=8C=E8=BD=AC=E4=BA=A4=E7=9A=84=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/cmd/CustomBizSpecifyAssigneeToTaskCmd.java | 3 +-- .../core/engine/cmd/CustomCountSignUserTaskCmd.java | 1 + .../core/engine/cmd/CustomTransferUserTaskCmd.java | 1 + .../core/engine/cmd/helper/CustomTaskHelper.java | 10 ++++++++++ 4 files changed, 13 insertions(+), 2 deletions(-) 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()