diff --git a/docs/components/flow-engine-framework_FlowScriptContext.md b/docs/components/flow-engine-framework_FlowScriptContext.md index bd905da4..cf784798 100644 --- a/docs/components/flow-engine-framework_FlowScriptContext.md +++ b/docs/components/flow-engine-framework_FlowScriptContext.md @@ -22,7 +22,7 @@ description: Groovy 脚本运行时的 $bind 上下文对象,为脚本提供 com.codingapi.flow flow-engine-framework - 0.0.34 + 0.0.35 ``` diff --git a/docs/components/flow-engine-framework_GatewayContext.md b/docs/components/flow-engine-framework_GatewayContext.md index 684629d9..427a1821 100644 --- a/docs/components/flow-engine-framework_GatewayContext.md +++ b/docs/components/flow-engine-framework_GatewayContext.md @@ -22,7 +22,7 @@ GatewayContext 是框架内部获取流程操作人(IFlowOperator)数据的 com.codingapi.flow flow-engine-framework - 0.0.34 + 0.0.35 ``` diff --git a/docs/components/flow-engine-framework_GroovyScriptBind.md b/docs/components/flow-engine-framework_GroovyScriptBind.md index 461e0dfc..c38eb58c 100644 --- a/docs/components/flow-engine-framework_GroovyScriptBind.md +++ b/docs/components/flow-engine-framework_GroovyScriptBind.md @@ -22,7 +22,7 @@ GroovyScriptBind 是脚本编写者在流程 Groovy 脚本中通过 `$bind` 变 com.codingapi.flow flow-engine-framework - 0.0.34 + 0.0.35 ``` diff --git a/docs/components/flow-engine-framework_GroovyScriptRequest.md b/docs/components/flow-engine-framework_GroovyScriptRequest.md index 658e53c3..1e0d1eb1 100644 --- a/docs/components/flow-engine-framework_GroovyScriptRequest.md +++ b/docs/components/flow-engine-framework_GroovyScriptRequest.md @@ -22,7 +22,7 @@ GroovyScriptRequest 是流程 Groovy 脚本中 `request` 参数的实际类型 com.codingapi.flow flow-engine-framework - 0.0.34 + 0.0.35 ``` diff --git a/docs/components/flow-engine-framework_GroovyWorkflowRequest.md b/docs/components/flow-engine-framework_GroovyWorkflowRequest.md index 6976944e..1c0e35ab 100644 --- a/docs/components/flow-engine-framework_GroovyWorkflowRequest.md +++ b/docs/components/flow-engine-framework_GroovyWorkflowRequest.md @@ -22,7 +22,7 @@ GroovyWorkflowRequest 用于工作流级别(非会话级别)的脚本场景 com.codingapi.flow flow-engine-framework - 0.0.34 + 0.0.35 ``` diff --git a/docs/components/flow-engine-framework_IFlowOperator.md b/docs/components/flow-engine-framework_IFlowOperator.md index 964ccff7..66aec2ce 100644 --- a/docs/components/flow-engine-framework_IFlowOperator.md +++ b/docs/components/flow-engine-framework_IFlowOperator.md @@ -22,7 +22,7 @@ IFlowOperator 是流程引擎中对参与流程的用户(审批人、创建者 com.codingapi.flow flow-engine-framework - 0.0.34 + 0.0.35 ``` diff --git a/docs/components/flow-engine-framework_RepositoryHolderContext.md b/docs/components/flow-engine-framework_RepositoryHolderContext.md index 8af2c91b..c5ef0456 100644 --- a/docs/components/flow-engine-framework_RepositoryHolderContext.md +++ b/docs/components/flow-engine-framework_RepositoryHolderContext.md @@ -22,7 +22,7 @@ RepositoryHolderContext 是流程引擎运行时的基础设施注册中心。 com.codingapi.flow flow-engine-framework - 0.0.34 + 0.0.35 ``` diff --git a/docs/components/flow-engine-framework_ScriptRegistryContext.md b/docs/components/flow-engine-framework_ScriptRegistryContext.md index 6387394b..fff05b8b 100644 --- a/docs/components/flow-engine-framework_ScriptRegistryContext.md +++ b/docs/components/flow-engine-framework_ScriptRegistryContext.md @@ -22,7 +22,7 @@ ScriptRegistryContext 是流程引擎中所有默认 Groovy 脚本的注册中 com.codingapi.flow flow-engine-framework - 0.0.34 + 0.0.35 ``` diff --git a/flow-engine-example/pom.xml b/flow-engine-example/pom.xml index 195f6d49..5a74d7e9 100644 --- a/flow-engine-example/pom.xml +++ b/flow-engine-example/pom.xml @@ -6,7 +6,7 @@ com.codingapi.flow flow-engine-parent - 0.0.34 + 0.0.35 ../pom.xml diff --git a/flow-engine-framework/pom.xml b/flow-engine-framework/pom.xml index 44d2cba1..4ec1ddc1 100644 --- a/flow-engine-framework/pom.xml +++ b/flow-engine-framework/pom.xml @@ -6,7 +6,7 @@ com.codingapi.flow flow-engine-parent - 0.0.34 + 0.0.35 flow-engine-framework diff --git a/flow-engine-framework/src/main/java/com/codingapi/flow/node/nodes/ManualNode.java b/flow-engine-framework/src/main/java/com/codingapi/flow/node/nodes/ManualNode.java index 827aba9e..a42e4839 100644 --- a/flow-engine-framework/src/main/java/com/codingapi/flow/node/nodes/ManualNode.java +++ b/flow-engine-framework/src/main/java/com/codingapi/flow/node/nodes/ManualNode.java @@ -1,10 +1,7 @@ package com.codingapi.flow.node.nodes; import com.codingapi.flow.builder.BaseNodeBuilder; -import com.codingapi.flow.node.BaseFlowNode; -import com.codingapi.flow.node.IBlockNode; -import com.codingapi.flow.node.IFlowNode; -import com.codingapi.flow.node.NodeType; +import com.codingapi.flow.node.*; import com.codingapi.flow.session.FlowSession; import com.codingapi.flow.utils.RandomUtils; @@ -15,7 +12,7 @@ /** * 人工控制节点 */ -public class ManualNode extends BaseFlowNode implements IBlockNode { +public class ManualNode extends BaseFlowNode implements IBlockNode , IDisplayNode { public static final String NODE_TYPE = NodeType.MANUAL.name(); public static final String DEFAULT_NAME = "人工控制节点"; diff --git a/flow-engine-framework/src/main/java/com/codingapi/flow/pojo/response/ProcessNode.java b/flow-engine-framework/src/main/java/com/codingapi/flow/pojo/response/ProcessNode.java index 970e343c..7aff445f 100644 --- a/flow-engine-framework/src/main/java/com/codingapi/flow/pojo/response/ProcessNode.java +++ b/flow-engine-framework/src/main/java/com/codingapi/flow/pojo/response/ProcessNode.java @@ -63,12 +63,7 @@ public boolean isHistory() { return this.approveState == ApproveState.PASS || this.approveState == ApproveState.ERROR; } - public void addFlowRecordOperator(FlowRecord record, IFlowOperator flowOperator) { - if (this.operators == null) { - this.operators = new ArrayList<>(); - } - this.operators.add(new FlowOperatorBody(record, flowOperator)); - } + public enum OperatorStrategy { /** @@ -83,7 +78,12 @@ public enum OperatorStrategy { /** * 审批人设定:当前节点审批时,审批人为下游该节点指定操作人 */ - APPROVER_SELECT + APPROVER_SELECT, + + /** + * 无人员设置 + */ + NO_OPERATOR } public enum ApproveState { @@ -188,22 +188,24 @@ public static ProcessNode createByNode(IFlowNode flowNode, OperatorSelectType op processNode.setApproveState(ApproveState.PENDING); processNode.resetApproveStrategy(flowNode); + OperatorStrategy operatorStrategy = OperatorStrategy.NO_OPERATOR; + if (operators != null && !operators.isEmpty()) { List flowOperatorBodyList = new ArrayList<>(); for (IFlowOperator operator : operators) { flowOperatorBodyList.add(new FlowOperatorBody(operator)); } processNode.setOperators(flowOperatorBodyList); - processNode.setOperatorStrategy(OperatorStrategy.OPERATOR_LIST); + operatorStrategy = OperatorStrategy.OPERATOR_LIST; } else { if (operatorSelectType == OperatorSelectType.APPROVER_SELECT) { - processNode.setOperatorStrategy(OperatorStrategy.APPROVER_SELECT); + operatorStrategy = OperatorStrategy.APPROVER_SELECT; } if (operatorSelectType == OperatorSelectType.INITIATOR_SELECT) { - processNode.setOperatorStrategy(OperatorStrategy.INITIATOR_SELECT); + operatorStrategy = OperatorStrategy.INITIATOR_SELECT; } } - + processNode.setOperatorStrategy(operatorStrategy); return processNode; } diff --git a/flow-engine-framework/src/main/java/com/codingapi/flow/service/impl/FlowProcessNodeService.java b/flow-engine-framework/src/main/java/com/codingapi/flow/service/impl/FlowProcessNodeService.java index 60ee576e..c4c68724 100644 --- a/flow-engine-framework/src/main/java/com/codingapi/flow/service/impl/FlowProcessNodeService.java +++ b/flow-engine-framework/src/main/java/com/codingapi/flow/service/impl/FlowProcessNodeService.java @@ -196,12 +196,16 @@ private void addFlowNode(IFlowNode flowNode, FlowSession flowSession) { operators.add(this.currentOperator); this.nodeList.add(ProcessNode.createByNode(flowNode, OperatorSelectType.SCRIPT, operators)); } else { - OperatorLoadStrategy operatorLoadStrategy = flowNode.strategyManager().getStrategy(OperatorLoadStrategy.class); - OperatorSelectType operatorSelectType = operatorLoadStrategy.getSelectType(); - OperatorManager operatorManager = flowNode.strategyManager().loadOperators(flowSession); List operators = operatorManager.getOperators(); + OperatorSelectType operatorSelectType = null; + // 针对延迟节点、触发节点、子流程节点、路由节点、人工节点都没有设置流程审批人 + OperatorLoadStrategy operatorLoadStrategy = flowNode.strategyManager().getStrategy(OperatorLoadStrategy.class); + if(operatorLoadStrategy!=null) { + operatorSelectType = operatorLoadStrategy.getSelectType(); + } + this.nodeList.add(ProcessNode.createByNode(flowNode, operatorSelectType, operators)); } } diff --git a/flow-engine-starter-api/pom.xml b/flow-engine-starter-api/pom.xml index 8bc65e9f..85d4a762 100644 --- a/flow-engine-starter-api/pom.xml +++ b/flow-engine-starter-api/pom.xml @@ -6,7 +6,7 @@ com.codingapi.flow flow-engine-parent - 0.0.34 + 0.0.35 flow-engine-starter-api diff --git a/flow-engine-starter-infra/pom.xml b/flow-engine-starter-infra/pom.xml index c3136b92..3ce0a3ad 100644 --- a/flow-engine-starter-infra/pom.xml +++ b/flow-engine-starter-infra/pom.xml @@ -6,7 +6,7 @@ com.codingapi.flow flow-engine-parent - 0.0.34 + 0.0.35 flow-engine-starter-infra diff --git a/flow-engine-starter-query/pom.xml b/flow-engine-starter-query/pom.xml index 093a9634..a768c4ba 100644 --- a/flow-engine-starter-query/pom.xml +++ b/flow-engine-starter-query/pom.xml @@ -6,7 +6,7 @@ com.codingapi.flow flow-engine-parent - 0.0.34 + 0.0.35 flow-engine-starter-query diff --git a/flow-engine-starter/pom.xml b/flow-engine-starter/pom.xml index ab1f2e92..1274da4e 100644 --- a/flow-engine-starter/pom.xml +++ b/flow-engine-starter/pom.xml @@ -6,7 +6,7 @@ com.codingapi.flow flow-engine-parent - 0.0.34 + 0.0.35 flow-engine-starter diff --git a/flow-frontend b/flow-frontend index 422f99a3..a80ea8ba 160000 --- a/flow-frontend +++ b/flow-frontend @@ -1 +1 @@ -Subproject commit 422f99a3ae1bc0231160642e9e7d40012b78db11 +Subproject commit a80ea8ba81fe0eef43f442028c7eecc9591c9c9b diff --git a/pom.xml b/pom.xml index 6dce3fc8..cea1c637 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.codingapi.flow flow-engine-parent - 0.0.34 + 0.0.35 pom https://github.com/codingapi/flow-engine