From 2bdbfd1ac24d4e9a87daf6fb8b99ec32264d5752 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 21 十二月 2024 11:25:27 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/AStarNavigateService.java |   44 +++++++++-----------------------------------
 1 files changed, 9 insertions(+), 35 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/AStarNavigateService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/AStarNavigateService.java
index 1f506ac..46501c0 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/AStarNavigateService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/AStarNavigateService.java
@@ -1,11 +1,13 @@
 package com.zy.acs.manager.core.service.astart;
 
+import com.zy.acs.common.constant.RedisConstant;
 import com.zy.acs.common.utils.RedisSupport;
 import com.zy.acs.framework.common.Cools;
 import com.zy.acs.manager.common.utils.MapDataUtils;
 import com.zy.acs.manager.core.domain.Lane;
 import com.zy.acs.manager.core.service.LaneService;
 import com.zy.acs.manager.core.service.astart.domain.DynamicNode;
+import com.zy.acs.manager.core.utils.RouteGenerator;
 import com.zy.acs.manager.manager.entity.Route;
 import com.zy.acs.manager.manager.entity.Segment;
 import com.zy.acs.manager.manager.service.CodeService;
@@ -183,22 +185,22 @@
         ArrayList<NavigateNode> neighbourNodes = new ArrayList<>();
 
         NavigateNode rightNode = extendNeighborNodes(currentNode, new NavigateNode(x, y + 1), mapMatrix, existNodes, null, null);
-        if (is_valid(currentNode, rightNode)) {
+        if (null != rightNode) {
             neighbourNodes.add(rightNode);
         }
 
         NavigateNode leftNode = extendNeighborNodes(currentNode, new NavigateNode(x, y - 1), mapMatrix, existNodes, null, null);
-        if (is_valid(currentNode, leftNode)) {
+        if (null != leftNode) {
             neighbourNodes.add(leftNode);
         }
 
         NavigateNode topNode = extendNeighborNodes(currentNode, new NavigateNode(x - 1, y), mapMatrix, existNodes, null, null);
-        if (is_valid(currentNode, topNode)) {
+        if (null != topNode) {
             neighbourNodes.add(topNode);
         }
 
         NavigateNode bottomNode = extendNeighborNodes(currentNode, new NavigateNode(x + 1, y), mapMatrix, existNodes, null, null);
-        if (is_valid(currentNode, bottomNode)) {
+        if (null != bottomNode) {
             neighbourNodes.add(bottomNode);
         }
 
@@ -245,11 +247,9 @@
             nextNode.setCodeData(nextNodeCodeData);
 
             // 鍒ゆ柇閫氳繃鎬�
-            Route route = routeService.findByCodeOfBoth(
-                    codeService.selectByData(currentNodeCodeData).getId(),
-                    codeService.selectByData(nextNodeCodeData).getId()
-            );
-            if (null == route) {
+            String routeKey = RouteGenerator.generateRouteKey(currentNodeCodeData, nextNodeCodeData);
+            Object routeVal = redis.getMap(RedisConstant.AGV_MAP_ROUTE_HASH_FLAG, routeKey);
+            if (routeVal == null || !(Boolean) routeVal) {
                 return null;
             }
 
@@ -257,36 +257,10 @@
         }
     }
 
-    private boolean is_valid(NavigateNode currentNode, NavigateNode node) {
-        if (null == node) {
-            return false;
-        }
-        return true;
-    }
-
-    private boolean isExist(NavigateNode node, List<NavigateNode> existNodes) {
-        for (NavigateNode existNode : existNodes) {
-            if (this.isSame(node, existNode)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    private boolean isSame(NavigateNode o1, NavigateNode o2) {
-        if (Cools.isEmpty(o1, o2)) {
-            return false;
-        }
-        return o1.getX() == o2.getX() && o1.getY() == o2.getY();
-    }
-
     //------------------A*鍚彂鍑芥暟------------------//
 
     //璁$畻閫氳繃鐜板湪鐨勭粨鐐圭殑浣嶇疆鍜屾渶缁堢粨鐐圭殑浣嶇疆璁$畻H鍊�(鏇煎搱椤挎硶锛氬潗鏍囧垎鍒彇宸�肩浉鍔�)
     private int calcNodeCost(NavigateNode node1, NavigateNode node2) {
-//        Code code1 = codeService.selectByData(node1.getCodeData());
-//        Code code2 = codeService.selectByData(node2.getCodeData());
-//        return (int) (Math.abs(code2.getX() - code1.getX()) + Math.abs(code2.getY() - code1.getY()));
         return Math.abs(node2.getX() - node1.getX()) + Math.abs(node2.getY() - node1.getY());
     }
 

--
Gitblit v1.9.1