From 040b980a8b8c4caf75e48d34cd6ee48c25d31f44 Mon Sep 17 00:00:00 2001 From: lanyuanxiaoyao Date: Fri, 3 Jan 2025 12:06:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=83=A8=E4=BB=BD=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/manager/FlowableManager.java | 27 ++++++++++--------- .../flowable/core/model/FlowableAccessor.java | 2 +- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/flowable-core/src/main/java/com/lanyuanxiaoyao/flowable/core/manager/FlowableManager.java b/flowable-core/src/main/java/com/lanyuanxiaoyao/flowable/core/manager/FlowableManager.java index afe4b01..ac0a826 100644 --- a/flowable-core/src/main/java/com/lanyuanxiaoyao/flowable/core/manager/FlowableManager.java +++ b/flowable-core/src/main/java/com/lanyuanxiaoyao/flowable/core/manager/FlowableManager.java @@ -71,7 +71,7 @@ public abstract class FlowableManager { repository.saveInstance(instance); if (FlowableNode.Type.AUTOMATIC.equals(node.getType())) { - autoAction(instance, node, MapHelper.empty()); + automaticAction(instance, node, MapHelper.empty()); } return instance.getInstanceId(); } @@ -81,7 +81,7 @@ public abstract class FlowableManager { } public void approve(String instanceId, String comment) { - action(instanceId, FlowableAction.APPROVE, comment); + manualAction(instanceId, FlowableAction.APPROVE, comment); } public void reject(String instanceId) { @@ -89,7 +89,7 @@ public abstract class FlowableManager { } public void reject(String instanceId, String comment) { - action(instanceId, FlowableAction.REJECT, comment); + manualAction(instanceId, FlowableAction.REJECT, comment); } public void terminal(String instanceId) { @@ -97,23 +97,23 @@ public abstract class FlowableManager { } public void terminal(String instanceId, String comment) { - action(instanceId, FlowableAction.TERMINAL, comment); + manualAction(instanceId, FlowableAction.TERMINAL, comment); } - public void action(String instanceId, FlowableAction action, String comment) { - action(instanceId, action, comment, MapHelper.empty()); + public void manualAction(String instanceId, FlowableAction action, String comment) { + manualAction(instanceId, action, comment, MapHelper.empty()); } - private void autoAction(FlowableInstance instance, FlowableNode node, Map metadata) { - action(instance, node, null, "系统自动执行", metadata); - } - - private void action(String instanceId, FlowableAction action, String comment, Map metadata) { + private void manualAction(String instanceId, FlowableAction action, String comment, Map metadata) { FlowableInstance instance = repository.getInstance(instanceId); FlowableNode node = repository.getNode(instance.getCurrentNodeId()); action(instance, node, action, comment, metadata); } + private void automaticAction(FlowableInstance instance, FlowableNode node, Map metadata) { + action(instance, node, null, "系统自动执行", metadata); + } + private void action(FlowableInstance instance, FlowableNode node, FlowableAction action, String comment, Map metadata) { if (FlowableInstance.Status.COMPLETED.equals(instance.getStatus()) || FlowableInstance.Status.ERROR.equals(instance.getStatus())) { throw new IllegalArgumentException("ID为" + instance.getInstanceId() + "的流程已结束,无法操作"); @@ -125,6 +125,9 @@ public abstract class FlowableManager { } FlowableHandler handler = createBean(handlerClass); action = handler.handle(action, instance, node, metadata); + if (Objects.isNull(action)) { + throw new IllegalArgumentException("节点执行结果不能为空"); + } if (FlowableAction.TERMINAL.equals(action)) { saveInstance(instance, FlowableInstance.Status.ERROR, metadata, action, comment); @@ -142,7 +145,7 @@ public abstract class FlowableManager { saveInstance(instance, FlowableInstance.Status.RUNNING, metadata, action, comment); if (FlowableNode.Type.AUTOMATIC.equals(nextNode.getType())) { - autoAction(instance, node, metadata); + automaticAction(instance, node, metadata); } } diff --git a/flowable-core/src/main/java/com/lanyuanxiaoyao/flowable/core/model/FlowableAccessor.java b/flowable-core/src/main/java/com/lanyuanxiaoyao/flowable/core/model/FlowableAccessor.java index 4258d33..01dfa1f 100644 --- a/flowable-core/src/main/java/com/lanyuanxiaoyao/flowable/core/model/FlowableAccessor.java +++ b/flowable-core/src/main/java/com/lanyuanxiaoyao/flowable/core/model/FlowableAccessor.java @@ -7,5 +7,5 @@ package com.lanyuanxiaoyao.flowable.core.model; * @version 20241231 */ public interface FlowableAccessor { - void access(Object accessor); + boolean access(Object accessor); }