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

This commit is contained in:
jason 2025-03-28 21:41:40 +08:00
parent f0c26d5b5a
commit d7a785d1de
2 changed files with 11 additions and 7 deletions

View File

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

View File

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