From da407d4525cd6ea211d952fc2fd96f5ba30510e8 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 27 十一月 2024 15:43:28 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java |   30 ++++++++++++++++++------------
 1 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
index df62c1f..2097a81 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
@@ -4,11 +4,13 @@
 import com.zy.acs.common.enums.AgvDirectionType;
 import com.zy.acs.framework.common.Cools;
 import com.zy.acs.manager.common.utils.MapDataUtils;
+import com.zy.acs.manager.core.constant.MapDataConstant;
 import com.zy.acs.manager.core.service.astart.*;
 import com.zy.acs.manager.core.service.astart.domain.DynamicNode;
 import com.zy.acs.manager.core.service.floyd.FloydNavigateService;
 import com.zy.acs.manager.manager.entity.Code;
 import com.zy.acs.manager.manager.entity.Loc;
+import com.zy.acs.manager.manager.entity.Segment;
 import com.zy.acs.manager.manager.service.ActionService;
 import com.zy.acs.manager.manager.service.CodeService;
 import com.zy.acs.manager.system.service.ConfigService;
@@ -17,7 +19,9 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
 import java.util.stream.Collectors;
 
 /**
@@ -40,15 +44,11 @@
     @Autowired
     private ActionService actionService;
 
-    public List<String> checkoutPath(String agvNo, Code startCode, Code endCode, Boolean lock) {
-        return this.checkoutPath(agvNo, startCode, endCode, lock, null, null);
-    }
-
     /**
      * 瀵诲潃 ===>> A Star
      */
     public synchronized List<String> checkoutPath(String agvNo, Code startCode, Code endCode
-            , Boolean lock, List<String> whiteList, List<String> blackList) {
+            , Boolean lock, List<String> blackList, Segment segment) {
 
         int[] startMapIdx = mapDataDispatcher.getCodeMatrixIdx(null, startCode.getData());
         int[] endMapIdx = mapDataDispatcher.getCodeMatrixIdx(null, endCode.getData());
@@ -56,7 +56,7 @@
         NavigateNode startNode = new NavigateNode(startMapIdx[0], startMapIdx[1], startCode.getData());
         NavigateNode endNode = new NavigateNode(endMapIdx[0], endMapIdx[1], endCode.getData());
 
-        NavigateNode finishNode = aStarNavigateService.execute(agvNo, startNode, endNode, lock, whiteList, blackList);
+        NavigateNode finishNode = aStarNavigateService.execute(agvNo, startNode, endNode, lock, blackList, segment);
 
         if (null == finishNode) {
             log.warn("{} 鍙稟GV妫�绱{}] ===>> [{}]璺緞澶辫触......", agvNo, startCode.getData(), endCode.getData());
@@ -80,7 +80,14 @@
 //            navigateNode.setParent(null);
 //        }
 
-        return navigateNodes.stream().map(NavigateNode::getCodeData).collect(Collectors.toList());
+        List<String> navigatePath = navigateNodes.stream().map(NavigateNode::getCodeData).collect(Collectors.toList());
+
+        // max count of steps
+        if (navigatePath.size() > MapDataConstant.MAX_STEPS_SINGLE) {
+            navigatePath = navigatePath.subList(0, MapDataConstant.MAX_STEPS_SINGLE);
+        }
+
+        return navigatePath;
     }
 
     /**
@@ -123,10 +130,9 @@
 
         double deltaX = x1 - x0;
         double deltaY = y1 - y0;
-        double angle = Math.atan2(deltaX, deltaY);
-        int offsetAngle = configService.getVal("mapXoffset", Integer.class);
-        angle = angle + offsetAngle;
-        angle = Math.toDegrees(angle);
+        double angle = -Math.atan2(deltaX, deltaY);
+        int angleOffsetVal = configService.getVal("mapAngleOffsetVal", Integer.class);
+        angle = Math.toDegrees(angle) + angleOffsetVal;
         angle = (angle + 360) % 360; // 灏嗚搴﹁浆鎹负姝e��
 
         return angle;

--
Gitblit v1.9.1