Commit d7a785d1de97a24d54fd169512359c488c938814

Authored by jason
1 parent f0c26d5b

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

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 { @@ -112,7 +112,7 @@ public class BpmSimpleModelNodeVO {
112 /** 112 /**
113 * 条件节点设置 113 * 条件节点设置
114 */ 114 */
115 - private ConditionSetting conditionSetting; // 仅用于条件节点 BpmSimpleModelNodeType.CONDITION_NODE 115 + private ConditionSetting conditionSetting; // 仅用于条件节点 BpmSimpleModelNodeTypeEnum.CONDITION_NODE
116 116
117 @Schema(description = "路由分支组", example = "[]") 117 @Schema(description = "路由分支组", example = "[]")
118 private List<RouterSetting> routerGroups; 118 private List<RouterSetting> routerGroups;
@@ -241,7 +241,7 @@ public class BpmSimpleModelNodeVO { @@ -241,7 +241,7 @@ public class BpmSimpleModelNodeVO {
241 @Schema(description = "条件设置") 241 @Schema(description = "条件设置")
242 @Data 242 @Data
243 @Valid 243 @Valid
244 - // 仅用于条件节点 BpmSimpleModelNodeType.CONDITION_NODE 244 + // 仅用于条件节点 BpmSimpleModelNodeTypeEnum.CONDITION_NODE
245 public static class ConditionSetting { 245 public static class ConditionSetting {
246 246
247 @Schema(description = "条件类型", example = "1") 247 @Schema(description = "条件类型", example = "1")
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 { @@ -187,7 +187,7 @@ public class SimpleModelUtils {
187 /** 187 /**
188 * 构建有附加节点的连线 188 * 构建有附加节点的连线
189 * 189 *
190 - * @param nodeId 当前节点 ID 190 + * @param nodeId 当前节点 ID
191 * @param attachNodeId 附属节点 ID 191 * @param attachNodeId 附属节点 ID
192 * @param targetNodeId 目标节点 ID 192 * @param targetNodeId 目标节点 ID
193 */ 193 */
@@ -662,6 +662,10 @@ public class SimpleModelUtils { @@ -662,6 +662,10 @@ public class SimpleModelUtils {
662 * 构造条件表达式 662 * 构造条件表达式
663 */ 663 */
664 public static String buildConditionExpression(BpmSimpleModelNodeVO.ConditionSetting conditionSetting) { 664 public static String buildConditionExpression(BpmSimpleModelNodeVO.ConditionSetting conditionSetting) {
  665 + // 并行网关不需要设置条件
  666 + if (conditionSetting == null) {
  667 + return null;
  668 + }
665 return buildConditionExpression(conditionSetting.getConditionType(), conditionSetting.getConditionExpression(), 669 return buildConditionExpression(conditionSetting.getConditionType(), conditionSetting.getConditionExpression(),
666 conditionSetting.getConditionGroups()); 670 conditionSetting.getConditionGroups());
667 } 671 }
@@ -958,8 +962,8 @@ public class SimpleModelUtils { @@ -958,8 +962,8 @@ public class SimpleModelUtils {
958 if (nodeType == BpmSimpleModelNodeTypeEnum.CONDITION_BRANCH_NODE) { 962 if (nodeType == BpmSimpleModelNodeTypeEnum.CONDITION_BRANCH_NODE) {
959 // 查找满足条件的 BpmSimpleModelNodeVO 节点 963 // 查找满足条件的 BpmSimpleModelNodeVO 节点
960 BpmSimpleModelNodeVO matchConditionNode = CollUtil.findOne(currentNode.getConditionNodes(), 964 BpmSimpleModelNodeVO matchConditionNode = CollUtil.findOne(currentNode.getConditionNodes(),
961 - conditionNode -> !BooleanUtil.isTrue(conditionNode.getConditionSetting().getDefaultFlow())  
962 - && evalConditionExpress(variables, conditionNode.getConditionSetting())); 965 + conditionNode -> !BooleanUtil.isTrue(conditionNode.getConditionSetting().getDefaultFlow())
  966 + && evalConditionExpress(variables, conditionNode.getConditionSetting()));
963 if (matchConditionNode == null) { 967 if (matchConditionNode == null) {
964 matchConditionNode = CollUtil.findOne(currentNode.getConditionNodes(), 968 matchConditionNode = CollUtil.findOne(currentNode.getConditionNodes(),
965 conditionNode -> BooleanUtil.isTrue(conditionNode.getConditionSetting().getDefaultFlow())); 969 conditionNode -> BooleanUtil.isTrue(conditionNode.getConditionSetting().getDefaultFlow()));
@@ -973,8 +977,8 @@ public class SimpleModelUtils { @@ -973,8 +977,8 @@ public class SimpleModelUtils {
973 if (nodeType == BpmSimpleModelNodeTypeEnum.INCLUSIVE_BRANCH_NODE) { 977 if (nodeType == BpmSimpleModelNodeTypeEnum.INCLUSIVE_BRANCH_NODE) {
974 // 查找满足条件的 BpmSimpleModelNodeVO 节点 978 // 查找满足条件的 BpmSimpleModelNodeVO 节点
975 Collection<BpmSimpleModelNodeVO> matchConditionNodes = CollUtil.filterNew(currentNode.getConditionNodes(), 979 Collection<BpmSimpleModelNodeVO> matchConditionNodes = CollUtil.filterNew(currentNode.getConditionNodes(),
976 - conditionNode -> !BooleanUtil.isTrue(conditionNode.getConditionSetting().getDefaultFlow())  
977 - && evalConditionExpress(variables, conditionNode.getConditionSetting())); 980 + conditionNode -> !BooleanUtil.isTrue(conditionNode.getConditionSetting().getDefaultFlow())
  981 + && evalConditionExpress(variables, conditionNode.getConditionSetting()));
978 if (CollUtil.isEmpty(matchConditionNodes)) { 982 if (CollUtil.isEmpty(matchConditionNodes)) {
979 matchConditionNodes = CollUtil.filterNew(currentNode.getConditionNodes(), 983 matchConditionNodes = CollUtil.filterNew(currentNode.getConditionNodes(),
980 conditionNode -> BooleanUtil.isTrue(conditionNode.getConditionSetting().getDefaultFlow())); 984 conditionNode -> BooleanUtil.isTrue(conditionNode.getConditionSetting().getDefaultFlow()));