diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/WhileCondition.java b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/WhileCondition.java index e616db763..a26fbf4f8 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/WhileCondition.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/WhileCondition.java @@ -39,7 +39,7 @@ public class WhileCondition extends LoopCondition { int index = 0; if(!this.isParallel()){ //串行循环 - while (getWhileResult(slotIndex)) { + while (getWhileResult(slotIndex, index)) { executableItem.setCurrChainId(this.getCurrChainId()); setLoopIndex(executableItem, index); executableItem.execute(slotIndex); @@ -60,7 +60,7 @@ public class WhileCondition extends LoopCondition { List> futureList = new ArrayList<>(); //获取并行循环的线程池 ExecutorService parallelExecutor = ExecutorHelper.loadInstance().buildLoopParallelExecutor(); - while (getWhileResult(slotIndex)){ + while (getWhileResult(slotIndex, index)){ CompletableFuture future = CompletableFuture.supplyAsync(new LoopParallelSupplier(executableItem, this.getCurrChainId(), slotIndex, index), parallelExecutor); futureList.add(future); @@ -81,10 +81,11 @@ public class WhileCondition extends LoopCondition { } } - private boolean getWhileResult(Integer slotIndex) throws Exception { - Executable whileItem = this.getWhileItem(); + private boolean getWhileResult(Integer slotIndex, int loopIndex) throws Exception { + Node whileItem = (Node) this.getWhileItem(); // 执行while组件 whileItem.setCurrChainId(this.getCurrChainId()); + whileItem.setLoopIndex(loopIndex); whileItem.execute(slotIndex); return whileItem.getItemResultMetaValue(slotIndex); diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/CCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/CCmp.java index eb8bc9d64..9de22280d 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/CCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/CCmp.java @@ -15,7 +15,6 @@ public class CCmp extends NodeComponent { @Override public void process() { - System.out.println(this.getLoopIndex()); System.out.println("CCmp executed!"); } diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/DCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/DCmp.java index de42f8651..21602bea3 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/DCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/DCmp.java @@ -16,15 +16,7 @@ public class DCmp extends NodeComponent { @Override public void process() { - DefaultContext context = this.getFirstContextBean(); - String key = "test"; - if (context.hasData(key)) { - int count = context.getData(key); - context.setData(key, ++count); - } - else { - context.setData(key, 1); - } + System.out.println("DCmp executed!"); } } diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/YCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/YCmp.java index c4bb114c9..b70b16114 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/YCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/YCmp.java @@ -10,9 +10,7 @@ public class YCmp extends NodeBreakComponent { @Override public boolean processBreak() throws Exception { - DefaultContext context = this.getFirstContextBean(); - int count = context.getData("test"); - return count > 3; + return this.getLoopIndex() > 2; } } diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/ZCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/ZCmp.java index c7bb40e7c..1d464cae7 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/ZCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/ZCmp.java @@ -10,15 +10,7 @@ public class ZCmp extends NodeWhileComponent { @Override public boolean processWhile() throws Exception { - DefaultContext context = this.getFirstContextBean(); - String key = "test"; - if (context.hasData(key)) { - int count = context.getData("test"); - return count < 5; - } - else { - return true; - } + return this.getLoopIndex()<5; } }