From 928bc386bea03b9d3157e6d66dcb7afc843e9964 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 17 六月 2023 15:55:50 +0800
Subject: [PATCH] 小车从提升机移动出去增强管控

---
 src/main/java/com/zy/common/utils/NavigateUtils.java |   43 +++++++++++++++++++++++++++++++++++++------
 1 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java
index ea1a70e..9ac5f03 100644
--- a/src/main/java/com/zy/common/utils/NavigateUtils.java
+++ b/src/main/java/com/zy/common/utils/NavigateUtils.java
@@ -1,7 +1,7 @@
 package com.zy.common.utils;
 
-import com.alibaba.fastjson.JSONObject;
 import com.zy.asrs.utils.Utils;
+import com.zy.common.model.MapNode;
 import com.zy.common.model.NavigateNode;
 import com.zy.core.enums.ShuttleTaskModeType;
 
@@ -26,7 +26,7 @@
         start.setFather(null);
 
         NavigateNode end = new NavigateNode(endArr[0], endArr[1]);
-        NavigateSolution solution = new NavigateSolution(mapType);
+        NavigateSolution solution = new NavigateSolution(mapType, lev);
         NavigateNode res_node = solution.astarSearch(start, end);
         if (res_node == null) {
             System.out.println("鏈壘鍒拌矾寰�");
@@ -163,15 +163,37 @@
     //鑾峰彇浠巟鐐瑰埌涓嬩竴鐐圭殑琛岃蛋璺濈
     public static Integer getXToNextDistance(NavigateNode xNode) {
         NavigateMapData mapData = new NavigateMapData();
-        ArrayList<ArrayList<JSONObject>> lists = mapData.getJsonData(1);
+        List<List<MapNode>> lists = mapData.getJsonData(1);
         if (lists != null) {
-            JSONObject jsonObject = lists.get(xNode.getX()).get(xNode.getY());
-            if (jsonObject != null) {
-                return Integer.parseInt(jsonObject.getOrDefault(xNode.getDirection(), 0).toString());
+            MapNode mapNode = lists.get(xNode.getX()).get(xNode.getY());
+            if (mapNode != null) {
+                switch (xNode.getDirection()) {
+                    case "top":
+                        return mapNode.getTop();
+                    case "bottom":
+                        return mapNode.getBottom();
+                    case "left":
+                        return mapNode.getLeft();
+                    case "right":
+                        return mapNode.getRight();
+                }
             }
             return 0;
         }
         return 0;
+    }
+
+    /**
+     * 鏍规嵁鍘熷鑺傜偣缁撴灉锛岃绠楁�昏璧拌窛绂�
+     */
+    public static Integer getOriginPathAllDistance(List<NavigateNode> path) {
+        ArrayList<ArrayList<NavigateNode>> sectionPath = NavigateUtils.getSectionPath(path);
+        Integer allDistance = 0;
+        for (ArrayList<NavigateNode> navigateNodes : sectionPath) {
+            Integer distance = NavigateUtils.getCurrentPathAllDistance(navigateNodes);
+            allDistance += distance;
+        }
+        return allDistance;
     }
 
     /**
@@ -191,6 +213,15 @@
         return allDistance;
     }
 
+    /**
+     * 鑾峰彇涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
+     */
+    public static Integer getMiddleToDistDistance(List<NavigateNode> path) {
+        //涓棿璺緞
+        NavigateNode middlePath = path.get(path.size() - 2);
+        return middlePath.getMoveDistance();
+    }
+
     public static void main(String[] args) {
         //璁$畻璺緞
         List<NavigateNode> calc = calc("1000901", "1800201", ShuttleTaskModeType.PAK_OUT.id);

--
Gitblit v1.9.1