#
luxiaotao1123
2024-12-25 f941a47ccd057a719eef4db7decf13bf9ad2a4f8
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/RetreatNavigateService.java
@@ -23,6 +23,7 @@
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
/**
@@ -95,7 +96,7 @@
            List<RetreatNavigateNode> enableNodes = new ArrayList<>();
            ArrayList<RetreatNavigateNode> neighborNodes = this.getNeighborNodes(currentNode, existNodes, codeMatrix);
            List<RetreatNavigateNode> neighborNodes = this.getNeighborNodes(currentNode, existNodes, codeMatrix);
            boolean pointOfTurn = neighborNodes.size() >= 2;
            label: for (RetreatNavigateNode node : neighborNodes) {
                if (node.getCodeData().equals(breakPoint)) { continue; }
@@ -212,7 +213,7 @@
                RetreatNavigateNode currentNode = openQueue.poll();
                List<RetreatNavigateNode> enableNodes = new ArrayList<>();
                ArrayList<RetreatNavigateNode> neighborNodes = this.getNeighborNodes(currentNode, existNodes, codeMatrix);
                List<RetreatNavigateNode> neighborNodes = this.getNeighborNodes(currentNode, existNodes, codeMatrix);
                // 第一步:获取有效转弯点
                if (null == availablePointOfTurn) {
@@ -319,12 +320,12 @@
    }
    // 获取四周节点
    private ArrayList<RetreatNavigateNode> getNeighborNodes(RetreatNavigateNode currentNode, Set<RetreatNavigateNode> existNodes, String[][] codeMatrix) {
    private List<RetreatNavigateNode> getNeighborNodes(RetreatNavigateNode currentNode, Set<RetreatNavigateNode> existNodes, String[][] codeMatrix) {
        int x = currentNode.getX();
        int y = currentNode.getY();
        ArrayList<RetreatNavigateNode> neighbourNodes = new ArrayList<>();
        List<RetreatNavigateNode> neighbourNodes = new CopyOnWriteArrayList<>();
        List<RetreatNavigateNode> possibleNodes = Arrays.asList(
                new RetreatNavigateNode(x, y + 1), // right