Browse Source

#IB0SJ1 调整逻辑

jay li 5 months ago
parent
commit
02991bf4a4

+ 5 - 8
liteflow-core/src/main/java/com/yomahub/liteflow/flow/instanceId/BaseNodeInstanceIdManageSpi.java

@@ -55,14 +55,11 @@ public abstract class BaseNodeInstanceIdManageSpi implements NodeInstanceIdManag
             nodeInstanceIdManageSpi.writeInstanceIdFile(writeNodeInstanceId(condition, chainId), elMd5, chainId);
             nodeInstanceIdManageSpi.writeInstanceIdFile(writeNodeInstanceId(condition, chainId), elMd5, chainId);
         } else {
         } else {
             // 文件存在,则直接读取
             // 文件存在,则直接读取
-            List<InstanceInfoDto> instanceInfoDtos = new ArrayList<>();
+            List<InstanceInfoDto> instanceInfos = new ArrayList<>();
             for (int i = 1; i < instanceIdFile.size(); i++) {
             for (int i = 1; i < instanceIdFile.size(); i++) {
-                List<InstanceInfoDto> instanceInfoDtos1 = parseList(instanceIdFile.get(i), InstanceInfoDto.class);
-                if (instanceInfoDtos1 != null) {
-                    instanceInfoDtos.addAll(instanceInfoDtos1);
-                }
+                instanceInfos = parseList(instanceIdFile.get(i), InstanceInfoDto.class);
             }
             }
-
+            List<InstanceInfoDto> finalInstanceInfos = instanceInfos;
             condition.getExecutableGroup().forEach((key, executables) -> {
             condition.getExecutableGroup().forEach((key, executables) -> {
                 Map<String, Integer> idCntMap = new HashMap<>();
                 Map<String, Integer> idCntMap = new HashMap<>();
                 executables.forEach(executable -> {
                 executables.forEach(executable -> {
@@ -70,9 +67,9 @@ public abstract class BaseNodeInstanceIdManageSpi implements NodeInstanceIdManag
                         Node node = (Node) executable;
                         Node node = (Node) executable;
                         idCntMap.put(node.getId(), idCntMap.getOrDefault(node.getId(), -1) + 1);
                         idCntMap.put(node.getId(), idCntMap.getOrDefault(node.getId(), -1) + 1);
 
 
-                        for (InstanceInfoDto dto : instanceInfoDtos) {
+                        for (InstanceInfoDto dto : finalInstanceInfos) {
                             if (Objects.equals(dto.getNodeId(), node.getId())
                             if (Objects.equals(dto.getNodeId(), node.getId())
-                                    && Objects.equals(dto.getChainId(), node.getCurrChainId())
+                                    && Objects.equals(dto.getChainId(), chainId)
                                     && Objects.equals(dto.getIndex(), idCntMap.get(node.getId()))) {
                                     && Objects.equals(dto.getIndex(), idCntMap.get(node.getId()))) {
                                 node.setInstanceId(dto.getInstanceId());
                                 node.setInstanceId(dto.getInstanceId());
                                 break;
                                 break;