修复回滚组件无法获得tag的问题

This commit is contained in:
rain
2023-09-25 20:12:36 +08:00
parent 49a677e45b
commit 9108c8fa75
3 changed files with 16 additions and 1 deletions

View File

@@ -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);
}
}

View File

@@ -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();

View File

@@ -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)) {