From e961f254e0204b32e0fc5b3f8ec8156fec2cf554 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Mon, 8 Jan 2024 15:50:12 +0800 Subject: [PATCH] =?UTF-8?q?update=20-=20=E8=B0=83=E6=95=B4=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=E6=97=A5=E5=BF=97=E4=B8=AD=E7=9A=84=20NodeType=20?= =?UTF-8?q?=E5=92=8C=20NodeMode=20=E4=B8=A4=E4=B8=AA=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E7=9A=84=E7=94=9F=E6=88=90=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/service/impl/BpmnProcessInstanceServiceImpl.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 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 325816b86..5eb729f60 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 @@ -85,7 +85,6 @@ import static cn.axzo.workflow.common.enums.BpmnFlowNodeMode.OR; import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_BUSINESS; import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_CARBON_COPY; import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_STARTER; -import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_TASK; import static cn.axzo.workflow.core.common.code.BpmnInstanceRespCode.PROCESS_INSTANCE_ID_NOT_EXISTS; import static cn.axzo.workflow.core.common.code.BpmnInstanceRespCode.PROCESS_INSTANCE_NOT_EXISTS; import static cn.axzo.workflow.core.common.code.BpmnProcessDefinitionRespCode.PROCESS_DEFINITION_ID_NOT_EXISTS; @@ -568,12 +567,14 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic node.setId(userTask.getId()) .setName(userTask.getName()) .setFormKey(userTask.getFormKey()) - .setNodeType(NODE_TASK) .setNodeMode(GENERAL);//兜底设置 + // 获取最原始节点类型, 部分节点会根据功能更变运行时的节点类型,在这里统一获取变更前的原类型 + BpmnMetaParserHelper.getNodeType(i).ifPresent(node::setNodeType); if (Objects.equals(NODE_STARTER.getType(), i.getId())) { node.setNodeType(NODE_STARTER); } + // 处理一些特殊节点模式 getApprovalMethod(userTask).ifPresent(approvalMethod -> { switch (approvalMethod) { case autoPassed: @@ -602,7 +603,8 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic }); // 推测当前节点的审批人 - List forecastAssigners = springProcessEngineConfiguration.getCommandExecutor() + List forecastAssigners = + springProcessEngineConfiguration.getCommandExecutor() .execute(new CustomForecastUserTaskAssigneeCmd(processInstanceId, userTask, engineExecutionStartListener)); node.setForecastAssigners(forecastAssigners);