From dd1abd11cf986aa6278c412da9e01f2c367b0091 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Thu, 7 Dec 2023 17:19:22 +0800 Subject: [PATCH] =?UTF-8?q?update=20-=20=E8=B0=83=E6=95=B4=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E4=B8=AD=20payload=20=E6=A8=A1=E5=9E=8B,=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=A8=A1=E5=9E=8B=E5=AF=B9=E5=BA=94=E7=9A=84=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=A8=A1=E6=9D=BF=E9=85=8D=E7=BD=AE=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BpmnProcessTaskServiceImpl.java | 5 +-- .../RocketMqMessagePushEventListener.java | 32 ++++++++----------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java index c2a993ba3..5f27f6bea 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java @@ -477,9 +477,10 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { runtimeService.deleteMultiInstanceExecution(task.getExecutionId(), false); taskService.deleteTask(task.getId(), dto.getAdvice()); - if (Objects.nonNull(currentNumberOfInstances) && currentNumberOfInstances == 1) { + // FIXME 这个拒绝的功能太过于业务定制了, 根本无法使用用户节点配置的完成条件, 后续慢慢熟悉后调整 + // if (Objects.nonNull(currentNumberOfInstances) && currentNumberOfInstances == 1) { finishProcessInstance(dto, instance); - } + // } } else { finishProcessInstance(dto, instance); } diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/notice/RocketMqMessagePushEventListener.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/notice/RocketMqMessagePushEventListener.java index 4af33b6cd..e09f3bed7 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/notice/RocketMqMessagePushEventListener.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/notice/RocketMqMessagePushEventListener.java @@ -179,27 +179,23 @@ public class RocketMqMessagePushEventListener implements BpmnMessagePushEventLis variables.put(VAR_PROCESS_END_TIME, sdf.format(processInstance.getEndTime())); } variables.put(VAR_PROCESS_RESULT, processInstance.getResult().getDesc()); - - if (!StringUtils.hasLength(event.getTaskId())) { - return variables; - } else { + if (StringUtils.hasLength(event.getTaskId())) { List tasks = historyService.createHistoricTaskInstanceQuery().taskId(event.getTaskId()).list(); - if (CollectionUtils.isEmpty(tasks)) { - return variables; + if (!CollectionUtils.isEmpty(tasks)) { + // 应该只有 1 个, 但是为了防止有多个, 这里只取第一个 + List assigners = + (List) originVariables.getOrDefault(INTERNAL_TASK_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + tasks.get(0).getTaskDefinitionKey(), Collections.emptyList()); + assigners.stream().filter(i -> Objects.equals(i.buildAssigneeId(), tasks.get(0).getAssignee())).findAny() + .ifPresent(i -> { + variables.put(VAR_TASK_USER_NAME, i.getAssignerName()); + }); + variables.put(VAR_ACTIVITY_ID, tasks.get(0).getTaskDefinitionKey()); + variables.put(VAR_ACTIVITY_NAME, tasks.get(0).getName()); + variables.put(VAR_TASK_START_TIME, sdf.format(tasks.get(0).getCreateTime())); + // 操作类型 同意、驳回、加签、评论、转交等, 暂时不实现, 这里设置有很多问题 + variables.put(VAR_OPERATOR_TYPE, ""); } - // 应该只有 1 个, 但是为了防止有多个, 这里只取第一个 - List assigners = - (List) originVariables.getOrDefault(INTERNAL_TASK_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + tasks.get(0).getTaskDefinitionKey(), Collections.emptyList()); - assigners.stream().filter(i -> Objects.equals(i.buildAssigneeId(), tasks.get(0).getAssignee())).findAny() - .ifPresent(i -> { - variables.put(VAR_TASK_USER_NAME, i.getAssignerName()); - }); - variables.put(VAR_ACTIVITY_ID, tasks.get(0).getTaskDefinitionKey()); - variables.put(VAR_ACTIVITY_NAME, tasks.get(0).getName()); - variables.put(VAR_TASK_START_TIME, sdf.format(tasks.get(0).getCreateTime())); - // 操作类型 同意、驳回、加签、评论、转交等, 暂时不实现, 这里设置有很多问题 - variables.put(VAR_OPERATOR_TYPE, ""); } categoryService.getById(Long.valueOf(processInstance.getCategory())).ifPresent(category -> {