..
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user