From 6496cdfe6303f4276a6dd41935669fe6c0bfcbdd Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期四, 19 三月 2026 13:08:18 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java |   25 +++++++++++++++++--------
 1 files changed, 17 insertions(+), 8 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 82c2626..33230e2 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
@@ -8,10 +8,7 @@
 import com.zy.acs.common.domain.protocol.*;
 import com.zy.acs.common.domain.protocol.action.*;
 import com.zy.acs.common.enums.*;
-import com.zy.acs.common.utils.Base62;
-import com.zy.acs.common.utils.GsonUtils;
-import com.zy.acs.common.utils.RedisSupport;
-import com.zy.acs.common.utils.Utils;
+import com.zy.acs.common.utils.*;
 import com.zy.acs.framework.common.Cools;
 import com.zy.acs.framework.common.SnowflakeIdWorker;
 import com.zy.acs.framework.exception.CoolException;
@@ -20,10 +17,11 @@
 import com.zy.acs.manager.common.exception.BusinessException;
 import com.zy.acs.manager.core.domain.AgvBackpackDto;
 import com.zy.acs.manager.core.domain.LaneDto;
+import com.zy.acs.manager.core.domain.PathDto;
 import com.zy.acs.manager.core.domain.TaskPosDto;
 import com.zy.acs.manager.core.integrate.conveyor.ConveyorStationService;
-import com.zy.acs.manager.core.service.astart.MapDataDispatcher;
 import com.zy.acs.manager.core.integrate.dto.OpenBusSubmitParam;
+import com.zy.acs.manager.core.service.astart.MapDataDispatcher;
 import com.zy.acs.manager.manager.entity.*;
 import com.zy.acs.manager.manager.enums.*;
 import com.zy.acs.manager.manager.service.*;
@@ -893,9 +891,10 @@
      * 鏍规嵁鍒嗙墖鐢熸垚鍔ㄤ綔 ( 杞﹁締鍙兘宸茬粡鍋氳繃涓�浜涗换鍔′簡,姝e湪绛夊緟涓嬩竴娈典换鍔� )
      */
     @Transactional
-    public synchronized void generateAction(Long agvId, List<Segment> segmentList, List<String> pathList, Date algoStartTime) {
+    public synchronized List<PathDto> generateAction(Long agvId, List<Segment> segmentList, List<String> pathList, Date algoStartTime) {
+        List<PathDto> pathTrace = new ArrayList<>();
         try {
-            if (Cools.isEmpty(agvId, segmentList)) { return; }
+            if (Cools.isEmpty(agvId, segmentList)) { return pathTrace; }
             Date now = new Date();
             long actionPrepareSts = ActionStsType.PREPARE.val();
 //            JSONObject storeDirection = configService.getVal("storeDirection", JSONObject.class);
@@ -924,6 +923,7 @@
             if (!lastCode.getData().equals(pathList.get(0))) {
                 throw new CoolException("AGV[" + agvNo + "]瀹氫綅鍋忕Щ...");
             }
+            pathTrace.add(new PathDto(lastCode.getData(), lastDirection, false));
 
             boolean first = true;
             for (Segment segment : segmentList) {
@@ -989,6 +989,7 @@
                                         now    // 宸ヤ綔鏃堕棿
                                 ));
                                 lastDirection = nextLaneDir;
+                                PathDto.markTurn(pathTrace, lastDirection);
                             }
 
                             if (nextDirection.equals(oppNextLaneDir)) {
@@ -1057,6 +1058,7 @@
                                         ));
 
                                         lastDirection = nextDirection;
+                                        PathDto.markTurn(pathTrace, lastDirection);
                                     }
                                 }
                             }
@@ -1082,6 +1084,7 @@
                             ));
 
                             lastDirection = nextDirection;
+                            PathDto.markTurn(pathTrace, lastDirection);
                         }
 
                         // run
@@ -1104,6 +1107,7 @@
                         ));
 
                         lastCode = nextCode;
+                        pathTrace.add(new PathDto(lastCode.getData(), lastDirection, false));
 
                     }
 
@@ -1149,6 +1153,7 @@
                         ));
 
                         lastDirection = firstTurnDir;
+                        PathDto.markTurn(pathTrace, lastDirection);
 
                     }
                     first = false;
@@ -1276,6 +1281,7 @@
                                     now    // 宸ヤ綔鏃堕棿
                             ));
                             lastDirection = oriStaWorkDirection;
+                            PathDto.markTurn(pathTrace, lastDirection);
                         }
                         // 璁$畻璐у弶宸ヤ綔鏂瑰悜
                         actuatorDirectionType = ActuatorDirectionType.fromVal(oriSta.getActDir());
@@ -1341,6 +1347,7 @@
                                     now    // 宸ヤ綔鏃堕棿
                             ));
                             lastDirection = destStaWorkDirection;
+                            PathDto.markTurn(pathTrace, lastDirection);
                         }
                         // 鑳岀瘬鍙栬揣
                         if (backupAction) {
@@ -1401,6 +1408,7 @@
                                     now    // 宸ヤ綔鏃堕棿
                             ));
                             lastDirection = chargeDirection;
+                            PathDto.markTurn(pathTrace, lastDirection);
                         }
 
                         // charge
@@ -1554,7 +1562,8 @@
                 throw new BusinessException("group[" + groupId + "] 鍔ㄤ綔淇濆瓨澶辫触");
             }
 
-            log.info("{}鍙稟gv鍔ㄤ綔缁勮瀹屾垚锛屾寚浠ゆ暟閲忥細{}", agvNo, newActionList.size());
+            News.info("{}鍙稟gv鍔ㄤ綔缁勮瀹屾垚锛屾寚浠ゆ暟閲忥細{}", agvNo, newActionList.size());
+            return pathTrace;
         } catch (Exception e) {
             log.error("mainService.generateAction", e);
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

--
Gitblit v1.9.1