This commit is contained in:
那些花儿
2025-09-29 14:07:19 +08:00
parent 17a31212d2
commit 0bded12010
48 changed files with 1842 additions and 255 deletions
+39
View File
@@ -3,6 +3,7 @@ package com.budwk.app;
import cn.hutool.core.lang.Dict;
import com.budwk.app.flow.constant.FlowConst;
import com.budwk.app.flow.engine.FlowEngine;
import com.budwk.app.flow.engine.model.*;
import com.budwk.app.flow.entity.ProcessTask;
import com.budwk.app.flow.enums.ProcessSubmitTypeEnum;
import org.junit.Test;
@@ -14,6 +15,7 @@ import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import java.util.List;
import java.util.Set;
@IocBean
@RunWith(NbJUnit4Runner.class)
@@ -52,4 +54,41 @@ public class FlowTest {
}
public static void findForkTaskNames(NodeModel node, StringBuilder buffer, Set<String> visitedNodes) {
if (node == null) return;
// 防止循环引用
String nodeId = node.getName();
if (visitedNodes.contains(nodeId)) return;
visitedNodes.add(nodeId);
// 如果遇到fork节点,停止递归
if (node instanceof ForkModel) return;
List<TransitionModel> inputs = node.getInputs();
for (TransitionModel tm : inputs) {
NodeModel source = tm.getSource();
if (source instanceof TaskModel) {
String taskName = source.getName();
// 避免重复添加
if (!buffer.toString().contains(taskName)) {
if (buffer.length() > 0) buffer.append(",");
buffer.append(taskName);
}
}
// 递归处理上游节点
findForkTaskNames(source, buffer, visitedNodes);
}
}
@Test
public void testForkJoin() {
JoinModel joinModel = new JoinModel();
}
}