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); }