From 4f5b35538baf84ecd3cdbd4afd797b0f5d1641de Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期四, 16 十月 2025 15:02:05 +0800
Subject: [PATCH] 1

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java |   38 ++++++++++++++++++++++++--------------
 1 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
index 1ea8950..9c66bdc 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -1288,7 +1288,6 @@
     }
 
 
-
     /**
      * 鏍规嵁鍒嗙墖鐢熸垚鍔ㄤ綔 ( 杞﹁締鍙兘宸茬粡鍋氳繃涓�浜涗换鍔′簡,姝e湪绛夊緟涓嬩竴娈典换鍔� )
      */
@@ -1322,11 +1321,16 @@
                 throw new CoolException("AGV[" + agvNo + "]瀹氫綅鍋忕Щ...");
             }
 
-            String lastCorner = null;
-            for (int i =  pathList.size(); i <0; i++) {
-                Code nextCode = codeService.getCacheByData(pathList.get(i - 1));
-                if (nextCode!=null&&nextCode.getCornerBool()){
-                    lastCorner =pathList.get(i - 1);
+            //String lastCorner = null;
+            Integer index = -1;
+            for (int i = pathList.size(); i < 0; i++) {
+                if (i == 0) {
+                    continue;
+                }
+                Code nextCode = codeService.getCacheByData(pathList.get(i));
+                if (nextCode != null && nextCode.getCornerBool()) {
+                    //lastCorner = pathList.get(i);
+                    index = i;
                 }
             }
 
@@ -1350,17 +1354,23 @@
                         if (i == 0) {
                             continue;
                         }
-
                         String next = pathListPart.get(i);
-
                         Code nextCode = codeService.getCacheByData(next);
-                        Double nextDirection = mapService.calculateDirection(lastCode, nextCode, angleOffsetVal);
+                        Double nextDirection;
 
                         boolean reverse = false;
-                        if (lastCorner.equals(lastCode)){
-                            // DOTO
+                        if (index >= i) {
+                            // DOTO 娣诲姞杞集
+                            Code endCode = codeService.getCacheByData(pathList.get(pathList.size() - 1));
+                            nextDirection = mapService.calculateDirection(lastCode, endCode, angleOffsetVal);
+                            if (nextDirection.equals((workDirection + 180) % 360)) {
+                                nextDirection = workDirection;
+                                reverse = true;
+                            }
 
-                        }else {
+                        } else {
+                            nextDirection = mapService.calculateDirection(lastCode, nextCode, angleOffsetVal);
+
                             // 绗竴姝ワ細濡傛灉涓嬩竴涓柟鍚戞濂芥槸浣滀笟鏂瑰悜鐨勭浉鍙嶆柟鍚戯紝鍒欓噸缃笅涓�涓柟鍚戜负浣滀笟鏂瑰悜锛屾爣璁� reverse = true
                             if (nextDirection.equals((workDirection + 180) % 360)) {
                                 nextDirection = workDirection;
@@ -1851,7 +1861,7 @@
 
             log.info("{}鍙稟gv鍔ㄤ綔缁勮瀹屾垚锛屾寚浠ゆ暟閲忥細{}", agvNo, newActionList.size());
         } catch (Exception e) {
-            log.error("mainService.generateAction", e);
+            log.error("mainService.generateActionV2", e);
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 
             if (!Cools.isEmpty(pathList)) {
@@ -1860,7 +1870,7 @@
                 mapDataDispatcher.clearDynamicMatrixByCodeList(null, codeMatrixIdxList);
             }
 
-            throw new RuntimeException("generateAction method caught an exception, rolling back transaction.", e);
+            throw new RuntimeException("generateActionV2 method caught an exception, rolling back transaction.", e);
         }
     }
 

--
Gitblit v1.9.1