#
luxiaotao1123
2024-10-24 69869a21a127d2951f83421dbb6315f2997187e3
#
1个文件已修改
16 ■■■■ 已修改文件
zy-acs-manager/src/main/java/com/zy/acs/manager/core/DispatcherTestController.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/DispatcherTestController.java
@@ -51,10 +51,10 @@
        // 遍历所有节点,寻找度数不等于2的节点作为起点
        for (String codeData : codeDataList) {
            if (adjacencyCodeMap.getOrDefault(codeData, Collections.emptyList()).size() != 2) {
                List<String> neighbors = adjacencyCodeMap.getOrDefault(codeData, Collections.emptyList());
            if (adjacencyCodeMap.get(codeData).size() != 2) {
                List<String> neighbors = adjacencyCodeMap.get(codeData);
                for (String neighbor : neighbors) {
                    if (adjacencyCodeMap.getOrDefault(neighbor, Collections.emptyList()).size() == 2 && !visited.contains(neighbor)) {
                    if (adjacencyCodeMap.get(neighbor).size() == 2 && !visited.contains(neighbor)) {
                        Lane lane = new Lane(String.valueOf(snowflakeIdWorker.nextId()).substring(3));
                        lane.getCodes().add(codeData); // 包含起点
                        dfsCalcIncludingEnd(codeData, neighbor, lane, visited, adjacencyCodeMap);
@@ -66,7 +66,7 @@
        // 处理独立的度数为2的环路或未连接到度数不等于2的节点的部分
        for (String codeData : codeDataList) {
            if (adjacencyCodeMap.getOrDefault(codeData, Collections.emptyList()).size() == 2 && !visited.contains(codeData)) {
            if (adjacencyCodeMap.get(codeData).size() == 2 && !visited.contains(codeData)) {
                // 检查是否为环路的一部分
                Lane lane = new Lane(String.valueOf(snowflakeIdWorker.nextId()).substring(3));
                dfsCalcForLoop(codeData, null, lane, visited, adjacencyCodeMap);
@@ -84,7 +84,7 @@
        lane.getCodes().add(current);
        visited.add(current);
        List<String> neighbors = adjacencyCodeMap.getOrDefault(current, Collections.emptyList());
        List<String> neighbors = adjacencyCodeMap.get(current);
        if (neighbors == null || neighbors.isEmpty()) {
            return;
        }
@@ -95,7 +95,7 @@
            }
            if (!visited.contains(neighbor)) {
                int degree = adjacencyCodeMap.getOrDefault(neighbor, Collections.emptyList()).size();
                int degree = adjacencyCodeMap.get(neighbor).size();
                if (degree == 2) {
                    if (isSameDirection(current, neighbor, start)) {
                        dfsCalcIncludingEnd(current, neighbor, lane, visited, adjacencyCodeMap);
@@ -112,7 +112,7 @@
        lane.getCodes().add(current);
        visited.add(current);
        List<String> neighbors = adjacencyCodeMap.getOrDefault(current, Collections.emptyList());
        List<String> neighbors = adjacencyCodeMap.get(current);
        if (neighbors == null || neighbors.isEmpty()) {
            return;
        }
@@ -123,7 +123,7 @@
            }
            if (!visited.contains(neighbor)) {
                int degree = adjacencyCodeMap.getOrDefault(neighbor, Collections.emptyList()).size();
                int degree = adjacencyCodeMap.get(neighbor).size();
                if (degree == 2) {
                    if (isSameDirection(current, neighbor, parent)) {
                        dfsCalcForLoop(current, neighbor, lane, visited, adjacencyCodeMap);