From c01718265b81660519fdecbed84f3c739bd513a6 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Wed, 17 Apr 2024 18:14:33 +0800 Subject: [PATCH] =?UTF-8?q?update=20-=20=E4=BC=98=E5=8C=96=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=AE=9E=E4=BE=8B=E6=8E=A8=E6=B5=8B=20API=20=E7=9A=84?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E5=8F=AF=E8=BF=87=E6=BB=A4=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E7=9A=84=E6=9F=A5=E8=AF=A2=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BpmnProcessInstanceServiceImpl.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java index a7ded62a3..11a5c9271 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java @@ -785,7 +785,6 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic List resultList = new ArrayList<>(flowElements.size()); // 发起人节点,也是一个 UserTask 节点, 所以这里默认就包含了发起人节点 flowElements.stream() - .filter(i -> !nodeDefinitionKeys.contains(i.getId())) .filter(i -> (i instanceof UserTask || i instanceof ReceiveTask || i instanceof ServiceTask)) .forEach(i -> { ProcessNodeDetailVO node = new ProcessNodeDetailVO(); @@ -801,18 +800,21 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic node.setNodeMode(GENERAL); node.setId(i.getId()).setName(i.getName()); if (i instanceof UserTask) { - parseUserTask(processInstanceId, (UserTask) i, node); + parseUserTask(processInstanceId, (UserTask) i, node, nodeDefinitionKeys); } else if (i instanceof ServiceTask) { - parseServiceTask(processInstanceId, (ServiceTask) i, node); + parseServiceTask(processInstanceId, (ServiceTask) i, node, nodeDefinitionKeys); } resultList.add(node); }); return resultList; } - private void parseServiceTask(String processInstanceId, ServiceTask i, ProcessNodeDetailVO node) { + private void parseServiceTask(String processInstanceId, ServiceTask i, ProcessNodeDetailVO node, List skipTaskDefinitionKeys) { // ServiceTask 主要作用于抄送 node.setId(i.getId()).setName(i.getName()); + if (skipTaskDefinitionKeys.contains(i.getId())) { + return; + } getCarbonCopyConfigs(i).ifPresent(carbons -> node.setForecastAssigners(springProcessEngineConfiguration.getCommandExecutor() .execute(new CustomCarbonCopyUserSelectorCmd(processInstanceId, carbons, @@ -820,7 +822,7 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic historicTaskInstanceConverter, serviceVersion)))); } - private void parseUserTask(String processInstanceId, UserTask i, ProcessNodeDetailVO node) { + private void parseUserTask(String processInstanceId, UserTask i, ProcessNodeDetailVO node, List skipTaskDefinitionKeys) { node.setFormKey(i.getFormKey()); // 设置审批模式, if (i.getBehavior() instanceof MultiInstanceActivityBehavior) { @@ -833,6 +835,9 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic node.setNodeMode(BpmnFlowNodeMode.GENERAL); } + if (skipTaskDefinitionKeys.contains(i.getId())) { + return; + } if (Objects.equals(node.getApprovalMethod(), human)) { // 推测当前节点的审批人,并且如果审批人为空,也会根据审批人为空的策略去找人 List forecastAssigners =