From e288593b897e8a24c6c47006005b5694b0a0062e Mon Sep 17 00:00:00 2001 From: "everywhere.z" Date: Wed, 3 Aug 2022 18:08:41 +0800 Subject: [PATCH] =?UTF-8?q?bug=20#I5KJFP=20Switch=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E5=A6=82=E6=9E=9C=E8=A2=ABspring=E5=8A=A8=E6=80=81=E4=BB=A3?= =?UTF-8?q?=E7=90=86=E5=90=8E=EF=BC=8C=E6=97=A0=E6=B3=95=E5=8F=96=E5=88=B0?= =?UTF-8?q?=E8=B7=B3=E8=BD=AC=E5=88=B0=E7=9A=84=E7=9B=AE=E6=A0=87=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../liteflow/flow/element/condition/SwitchCondition.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/SwitchCondition.java b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/SwitchCondition.java index d6ad659b8..edbc2a092 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/SwitchCondition.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/SwitchCondition.java @@ -3,6 +3,7 @@ package com.yomahub.liteflow.flow.element.condition; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.yomahub.liteflow.core.proxy.ComponentProxy; import com.yomahub.liteflow.enums.ConditionTypeEnum; import com.yomahub.liteflow.enums.NodeTypeEnum; import com.yomahub.liteflow.exception.NoSwitchTargetNodeException; @@ -12,6 +13,7 @@ import com.yomahub.liteflow.flow.element.Executable; import com.yomahub.liteflow.flow.element.Node; import com.yomahub.liteflow.slot.DataBus; import com.yomahub.liteflow.slot.Slot; +import com.yomahub.liteflow.util.LiteFlowProxyUtil; import java.util.HashMap; import java.util.Map; @@ -34,7 +36,9 @@ public class SwitchCondition extends Condition{ //根据switch节点执行出来的结果选择 Slot slot = DataBus.getSlot(slotIndex); - String targetId = slot.getSwitchResult(this.getSwitchNode().getInstance().getClass().getName()); + //这里可能会有spring代理过的bean,所以拿到user原始的class + Class originalClass = LiteFlowProxyUtil.getUserClass(this.getSwitchNode().getInstance().getClass()); + String targetId = slot.getSwitchResult(originalClass.getName()); if (StrUtil.isNotBlank(targetId)) { Executable targetExecutor = targetMap.get(targetId); if (ObjectUtil.isNotNull(targetExecutor)) {