#
luxiaotao1123
2024-12-18 93d8a38f9fd0746b9ce6ac7541bf2b8b48f7c63c
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/RetreatNavigateService.java
@@ -80,13 +80,13 @@
        RetreatNavigateNode finialNode = null;
        PriorityQueue<RetreatNavigateNode> openQueue = new PriorityQueue<>();
        ArrayList<RetreatNavigateNode> existNodes = new ArrayList<>();
        Set<RetreatNavigateNode> existNodes = new HashSet<>();
        openQueue.add(start);
        existNodes.add(start);
        boolean phaseSecond = true;
        while (openQueue.size() > 0 && null == finialNode) {
        while (!openQueue.isEmpty() && null == finialNode) {
            RetreatNavigateNode currentNode = openQueue.poll();
@@ -203,7 +203,7 @@
            int actualLanesOfTurn = 0;
            int filterPointOfTurnTimes = 0;
            while (openQueue.size() > 0 && null == finialNode) {
            while (!openQueue.isEmpty() && null == finialNode) {
                RetreatNavigateNode currentNode = openQueue.poll();
                List<RetreatNavigateNode> enableNodes = new ArrayList<>();
@@ -315,7 +315,7 @@
    }
    // 获取四周节点
    private ArrayList<RetreatNavigateNode> getNeighborNodes(RetreatNavigateNode currentNode, List<RetreatNavigateNode> existNodes) {
    private ArrayList<RetreatNavigateNode> getNeighborNodes(RetreatNavigateNode currentNode, Set<RetreatNavigateNode> existNodes) {
        int x = currentNode.getX();
        int y = currentNode.getY();
@@ -345,7 +345,7 @@
        return neighbourNodes;
    }
    private RetreatNavigateNode extendNeighborNodes(RetreatNavigateNode currentNode, RetreatNavigateNode extendNode, List<RetreatNavigateNode> existNodes, Integer dx, Integer dy) {
    private RetreatNavigateNode extendNeighborNodes(RetreatNavigateNode currentNode, RetreatNavigateNode extendNode, Set<RetreatNavigateNode> existNodes, Integer dx, Integer dy) {
        RetreatNavigateNode nextNode;
        if (null == dx || null == dy) {
@@ -371,7 +371,7 @@
            return extendNeighborNodes(currentNode, nextNode, existNodes, dx, dy);
        } else {
            if (this.isExist(nextNode, existNodes)) {
            if (existNodes.contains(nextNode)) {
                return null;
            }