From 9108c8fa75a9c2c4bd6fac68857b3de86350931e Mon Sep 17 00:00:00 2001 From: rain <672378783@qq.com> Date: Mon, 25 Sep 2023 20:12:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=9E=E6=BB=9A=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=97=A0=E6=B3=95=E8=8E=B7=E5=BE=97tag=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yomahub/liteflow/core/FlowExecutor.java | 2 +- .../com/yomahub/liteflow/core/NodeComponent.java | 2 ++ .../com/yomahub/liteflow/flow/entity/CmpStep.java | 13 +++++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/FlowExecutor.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/FlowExecutor.java index 830ad1025..8c1068d1a 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/FlowExecutor.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/FlowExecutor.java @@ -441,7 +441,7 @@ public class FlowExecutor { while(cmpStepIterator.hasNext()) { CmpStep cmpStep = cmpStepIterator.next(); if(cmpStep.getInstance().isRollback()) { - Rollbackable rollbackItem = new Node(cmpStep.getInstance()); + Rollbackable rollbackItem = cmpStep.getRefNode(); rollbackItem.rollback(slotIndex); } } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java index 3df459ac6..2ecca94ca 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java @@ -100,6 +100,7 @@ public abstract class NodeComponent { CmpStep cmpStep = new CmpStep(nodeId, name, CmpStepTypeEnum.SINGLE); cmpStep.setTag(this.getTag()); cmpStep.setInstance(this); + cmpStep.setRefNode(this.getRefNode()); slot.addStep(cmpStep); StopWatch stopWatch = new StopWatch(); @@ -158,6 +159,7 @@ public abstract class NodeComponent { CmpStep cmpStep = new CmpStep(nodeId, name, CmpStepTypeEnum.SINGLE); cmpStep.setTag(this.getTag()); + cmpStep.setInstance(this); slot.addRollbackStep(cmpStep); StopWatch stopWatch = new StopWatch(); diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/entity/CmpStep.java b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/entity/CmpStep.java index eacc479e9..f5eff5165 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/entity/CmpStep.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/entity/CmpStep.java @@ -12,6 +12,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.yomahub.liteflow.core.NodeComponent; import com.yomahub.liteflow.enums.CmpStepTypeEnum; +import com.yomahub.liteflow.flow.element.Node; /** * 组件步骤对象 @@ -43,6 +44,10 @@ public class CmpStep { // 回滚消耗的时间 private Long rollbackTimeSpent; + // 当前执行的node + private Node refNode; + + public CmpStep(String nodeId, String nodeName, CmpStepTypeEnum stepType) { this.nodeId = nodeId; this.nodeName = nodeName; @@ -113,6 +118,14 @@ public class CmpStep { this.rollbackTimeSpent = rollbackTimeSpent; } + public Node getRefNode() { + return refNode; + } + + public void setRefNode(Node refNode) { + this.refNode = refNode; + } + public String buildString() { if (stepType.equals(CmpStepTypeEnum.SINGLE)) { if (StrUtil.isBlank(nodeName)) {