fix: 检查所有route->router

master
Lesan 10 months ago
parent fcbf1d0765
commit 37cb20d964
  1. 4
      yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmSimpleModelNodeType.java
  2. 6
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java
  3. 24
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java

@ -33,7 +33,7 @@ public enum BpmSimpleModelNodeType implements IntArrayValuable {
CONDITION_BRANCH_NODE(51, "条件分支", "exclusiveGateway"),
PARALLEL_BRANCH_NODE(52, "并行分支", "parallelGateway"),
INCLUSIVE_BRANCH_NODE(53, "包容分支", "inclusiveGateway"),
ROUTE_BRANCH_NODE(54, "路由分支", "exclusiveGateway")
ROUTER_BRANCH_NODE(54, "路由分支", "exclusiveGateway")
;
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(BpmSimpleModelNodeType::getType).toArray();
@ -51,7 +51,7 @@ public enum BpmSimpleModelNodeType implements IntArrayValuable {
return Objects.equals(CONDITION_BRANCH_NODE.getType(), type)
|| Objects.equals(PARALLEL_BRANCH_NODE.getType(), type)
|| Objects.equals(INCLUSIVE_BRANCH_NODE.getType(), type)
|| Objects.equals(ROUTE_BRANCH_NODE.getType(), type);
|| Objects.equals(ROUTER_BRANCH_NODE.getType(), type);
}
public static BpmSimpleModelNodeType valueOf(Integer type) {

@ -117,10 +117,10 @@ public class BpmSimpleModelNodeVO {
private ConditionGroups conditionGroups; // 仅用于条件节点 BpmSimpleModelNodeType.CONDITION_NODE
@Schema(description = "路由分支组", example = "[]")
private List<RouteCondition> routerGroups;
private List<RouterCondition> routerGroups;
@Schema(description = "默认分支 ID", example = "Flow_xxx")
private String defaultFlowId; // 仅用于路由分支节点 BpmSimpleModelNodeType.ROUTE_BRANCH_NODE
private String defaultFlowId; // 仅用于路由分支节点 BpmSimpleModelNodeType.ROUTER_BRANCH_NODE
@Schema(description = "任务监听器")
@Valid
@ -293,7 +293,7 @@ public class BpmSimpleModelNodeVO {
@Schema(description = "路由分支")
@Data
@Valid
public static class RouteCondition {
public static class RouterCondition {
@Schema(description = "节点 Id", example = "Activity_xxx") // 跳转到该节点
@NotEmpty(message = "节点 Id 不能为空")

@ -188,7 +188,7 @@ public class SimpleModelUtils {
// 分支终点节点 ID
String branchEndNodeId = null;
if (nodeType == BpmSimpleModelNodeType.CONDITION_BRANCH_NODE
|| nodeType == BpmSimpleModelNodeType.ROUTE_BRANCH_NODE) { // 条件分支或路由分支
|| nodeType == BpmSimpleModelNodeType.ROUTER_BRANCH_NODE) { // 条件分支或路由分支
// 分两种情况 1. 分支节点有孩子节点为孩子节点 Id 2. 分支节点孩子为无效节点时 (分支嵌套且为分支最后一个节点) 为分支终点节点 ID
branchEndNodeId = isValidNode(childNode) ? childNode.getId() : targetNodeId;
} else if (nodeType == BpmSimpleModelNodeType.PARALLEL_BRANCH_NODE
@ -199,10 +199,10 @@ public class SimpleModelUtils {
Assert.notEmpty(branchEndNodeId, "分支终点节点 Id 不能为空");
// 3. 遍历分支节点
if (nodeType == BpmSimpleModelNodeType.ROUTE_BRANCH_NODE) {
if (nodeType == BpmSimpleModelNodeType.ROUTER_BRANCH_NODE) {
// 路由分支遍历
for (BpmSimpleModelNodeVO.RouteCondition route : node.getRouterGroups()) {
SequenceFlow sequenceFlow = RouteBranchNodeConvert.buildSequenceFlow(node.getId(), route);
for (BpmSimpleModelNodeVO.RouterCondition router : node.getRouterGroups()) {
SequenceFlow sequenceFlow = RouteBranchNodeConvert.buildSequenceFlow(node.getId(), router);
process.addFlowElement(sequenceFlow);
}
} else {
@ -233,7 +233,7 @@ public class SimpleModelUtils {
SequenceFlow sequenceFlow = buildBpmnSequenceFlow(branchEndNodeId, nextNodeId);
process.addFlowElement(sequenceFlow);
// 4.2 如果是路由分支,需要连接后续节点为默认路由
} else if (nodeType == BpmSimpleModelNodeType.ROUTE_BRANCH_NODE) {
} else if (nodeType == BpmSimpleModelNodeType.ROUTER_BRANCH_NODE) {
SequenceFlow sequenceFlow = buildBpmnSequenceFlow(node.getId(), branchEndNodeId, node.getDefaultFlowId(),
null, null);
process.addFlowElement(sequenceFlow);
@ -646,9 +646,9 @@ public class SimpleModelUtils {
node.getConditionGroups());
}
public static String buildConditionExpression(BpmSimpleModelNodeVO.RouteCondition route) {
return buildConditionExpression(route.getConditionType(), route.getConditionExpression(),
route.getConditionGroups());
public static String buildConditionExpression(BpmSimpleModelNodeVO.RouterCondition router) {
return buildConditionExpression(router.getConditionType(), router.getConditionExpression(),
router.getConditionGroups());
}
public static String buildConditionExpression(Integer conditionType, String conditionExpression,
@ -735,12 +735,12 @@ public class SimpleModelUtils {
@Override
public BpmSimpleModelNodeType getType() {
return BpmSimpleModelNodeType.ROUTE_BRANCH_NODE;
return BpmSimpleModelNodeType.ROUTER_BRANCH_NODE;
}
public static SequenceFlow buildSequenceFlow(String nodeId, BpmSimpleModelNodeVO.RouteCondition route) {
String conditionExpression = ConditionNodeConvert.buildConditionExpression(route);
return buildBpmnSequenceFlow(nodeId, route.getNodeId(), null, null, conditionExpression);
public static SequenceFlow buildSequenceFlow(String nodeId, BpmSimpleModelNodeVO.RouterCondition router) {
String conditionExpression = ConditionNodeConvert.buildConditionExpression(router);
return buildBpmnSequenceFlow(nodeId, router.getNodeId(), null, null, conditionExpression);
}
}

Loading…
Cancel
Save