From d5d8b1eb8fac9e63265f9753305377f79c7014e8 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Fri, 9 Aug 2024 15:31:57 +0800 Subject: [PATCH] =?UTF-8?q?update=20-=20=E8=87=AA=E5=8A=A8=E9=A9=B3?= =?UTF-8?q?=E5=9B=9E=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=88=A9=E7=94=A8=E7=8E=B0?= =?UTF-8?q?=E6=9C=89=E7=9A=84=20rejectionCmd=20=E7=9A=84=E8=83=BD=E5=8A=9B?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E8=B0=83=E6=95=B4=E5=85=B6=E5=86=85=E9=83=A8?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/cmd/CustomRejectionTaskCmd.java | 10 ++++---- .../engine/cmd/helper/CustomTaskHelper.java | 24 +++++++++++-------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomRejectionTaskCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomRejectionTaskCmd.java index 05b3142c8..259d69036 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomRejectionTaskCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomRejectionTaskCmd.java @@ -102,14 +102,12 @@ public class CustomRejectionTaskCmd extends AbstractCommand implements Ser validTask(historicTaskInstance, (TaskEntity) task, approver, nodeTypes); ((TaskEntity) task).setTransientVariable(TASK_COMPLETE_OPERATION_TYPE + task.getId(), REJECTED.getStatus()); - if (!Objects.equals(operationDesc, "自动驳回")) { - task = createVirtualTask(commandContext, extAxHiTaskInstService, task.getProcessInstanceId(), task.getName(), - task.getTaskDefinitionKey(), advice, approver, REJECTED.getStatus()); - } + Task virtualTask = createVirtualTask(commandContext, extAxHiTaskInstService, task.getProcessInstanceId(), task.getName(), + task.getTaskDefinitionKey(), advice, Objects.equals(operationDesc, "自动驳回") ? null : approver, REJECTED.getStatus()); - addComment(commandContext, task, COMMENT_TYPE_OPERATION_DESC, operationDesc); + addComment(commandContext, virtualTask, COMMENT_TYPE_OPERATION_DESC, operationDesc); - batchAddAttachment(commandContext, task.getProcessInstanceId(), task.getId(), attachmentList, approver); + batchAddAttachment(commandContext, task.getProcessInstanceId(), virtualTask.getId(), attachmentList, approver); RuntimeService runtimeService = processEngineConfiguration.getRuntimeService(); finishProcessInstance(commandContext, runtimeService, task, advice); 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 efad5b23b..0ec02599b 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 @@ -339,23 +339,27 @@ public class CustomTaskHelper { // 创建临时节点 taskService.saveTask(task); - CommandContextUtil.getEntityCache().findInCache(TaskEntity.class).stream() - .filter(i -> Objects.equals(i.getId(), task.getId())).findAny() - .ifPresent(i -> i.setAssignee(assigner.buildAssigneeId())); + if (Objects.nonNull(assigner)) { + CommandContextUtil.getEntityCache().findInCache(TaskEntity.class).stream() + .filter(i -> Objects.equals(i.getId(), task.getId())).findAny() + .ifPresent(i -> i.setAssignee(assigner.buildAssigneeId())); - CommandContextUtil.getEntityCache().findInCache(HistoricTaskInstanceEntity.class).stream() - .filter(i -> Objects.equals(i.getId(), task.getId())).findAny() - .ifPresent(i -> i.setAssignee(assigner.buildAssigneeId())); + CommandContextUtil.getEntityCache().findInCache(HistoricTaskInstanceEntity.class).stream() + .filter(i -> Objects.equals(i.getId(), task.getId())).findAny() + .ifPresent(i -> i.setAssignee(assigner.buildAssigneeId())); + } // 添加审批意见 - addAdvice(commandContext, task, advice, assigner.buildAssigneeId()); + addAdvice(commandContext, task, advice, Objects.nonNull(assigner) ? assigner.buildAssigneeId() : null); CustomTaskHelper.createExtTaskInst(extAxHiTaskInstService, task.getProcessInstanceId(), task.getId(), task.getTaskDefinitionKey(), assigner, extTaskInstStatus); task.setTransientVariable(TASK_COMPLETE_OPERATION_TYPE + task.getId(), extTaskInstStatus); - // 设置快照信息 - task.setVariable(INTERNAL_TASK_RELATION_ASSIGNEE_INFO + task.getId(), assigner.toJson()); + if (Objects.nonNull(assigner)) { + // 设置快照信息 + task.setVariable(INTERNAL_TASK_RELATION_ASSIGNEE_INFO + task.getId(), assigner.toJson()); + } // 完成临时节点 taskService.complete(task.getId()); @@ -384,7 +388,7 @@ public class CustomTaskHelper { entity.setTaskDefinitionKey(taskDefinitionKey); entity.setTaskId(taskId); entity.setStatus(StringUtils.hasLength(status) ? status : PROCESSING.getStatus()); - entity.setAssignee(assignee.buildAssigneeId()); + entity.setAssignee(Objects.nonNull(assignee) ? assignee.buildAssigneeId() : null); extAxHiTaskInstService.save(entity); } }