Forráskód Böngészése

【问题修复】 并行网关保存问题

jason 4 hónapja
szülő
commit
d7a785d1de

+ 2 - 2
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java

@@ -112,7 +112,7 @@ public class BpmSimpleModelNodeVO {
     /**
      * 条件节点设置
      */
-    private ConditionSetting conditionSetting; // 仅用于条件节点 BpmSimpleModelNodeType.CONDITION_NODE
+    private ConditionSetting conditionSetting; // 仅用于条件节点 BpmSimpleModelNodeTypeEnum.CONDITION_NODE
 
     @Schema(description = "路由分支组", example = "[]")
     private List<RouterSetting> routerGroups;
@@ -241,7 +241,7 @@ public class BpmSimpleModelNodeVO {
     @Schema(description = "条件设置")
     @Data
     @Valid
-    // 仅用于条件节点 BpmSimpleModelNodeType.CONDITION_NODE
+    // 仅用于条件节点 BpmSimpleModelNodeTypeEnum.CONDITION_NODE
     public static class ConditionSetting {
 
         @Schema(description = "条件类型", example = "1")

+ 9 - 5
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java

@@ -187,7 +187,7 @@ public class SimpleModelUtils {
     /**
      * 构建有附加节点的连线
      *
-     * @param nodeId 当前节点 ID
+     * @param nodeId       当前节点 ID
      * @param attachNodeId 附属节点 ID
      * @param targetNodeId 目标节点 ID
      */
@@ -662,6 +662,10 @@ public class SimpleModelUtils {
      * 构造条件表达式
      */
     public static String buildConditionExpression(BpmSimpleModelNodeVO.ConditionSetting conditionSetting) {
+        // 并行网关不需要设置条件
+        if (conditionSetting == null) {
+            return null;
+        }
         return buildConditionExpression(conditionSetting.getConditionType(), conditionSetting.getConditionExpression(),
                 conditionSetting.getConditionGroups());
     }
@@ -958,8 +962,8 @@ public class SimpleModelUtils {
         if (nodeType == BpmSimpleModelNodeTypeEnum.CONDITION_BRANCH_NODE) {
             // 查找满足条件的 BpmSimpleModelNodeVO 节点
             BpmSimpleModelNodeVO matchConditionNode = CollUtil.findOne(currentNode.getConditionNodes(),
-                        conditionNode -> !BooleanUtil.isTrue(conditionNode.getConditionSetting().getDefaultFlow())
-                                && evalConditionExpress(variables, conditionNode.getConditionSetting()));
+                    conditionNode -> !BooleanUtil.isTrue(conditionNode.getConditionSetting().getDefaultFlow())
+                            && evalConditionExpress(variables, conditionNode.getConditionSetting()));
             if (matchConditionNode == null) {
                 matchConditionNode = CollUtil.findOne(currentNode.getConditionNodes(),
                         conditionNode -> BooleanUtil.isTrue(conditionNode.getConditionSetting().getDefaultFlow()));
@@ -973,8 +977,8 @@ public class SimpleModelUtils {
         if (nodeType == BpmSimpleModelNodeTypeEnum.INCLUSIVE_BRANCH_NODE) {
             // 查找满足条件的 BpmSimpleModelNodeVO 节点
             Collection<BpmSimpleModelNodeVO> matchConditionNodes = CollUtil.filterNew(currentNode.getConditionNodes(),
-                        conditionNode -> !BooleanUtil.isTrue(conditionNode.getConditionSetting().getDefaultFlow())
-                                && evalConditionExpress(variables, conditionNode.getConditionSetting()));
+                    conditionNode -> !BooleanUtil.isTrue(conditionNode.getConditionSetting().getDefaultFlow())
+                            && evalConditionExpress(variables, conditionNode.getConditionSetting()));
             if (CollUtil.isEmpty(matchConditionNodes)) {
                 matchConditionNodes = CollUtil.filterNew(currentNode.getConditionNodes(),
                         conditionNode -> BooleanUtil.isTrue(conditionNode.getConditionSetting().getDefaultFlow()));