From 85ecc4d9a9af134cdf447a2c27e65f1a75f265db Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@gmail.com>
Date: 星期二, 18 三月 2025 13:30:43 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/constants.js                                              |    6 ++++--
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java |   12 +++++++++---
 zy-acs-flow/src/map/tool.js                                                   |    4 ++--
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java      |   11 ++++++-----
 4 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/zy-acs-flow/src/map/constants.js b/zy-acs-flow/src/map/constants.js
index feeac8a..c38044d 100644
--- a/zy-acs-flow/src/map/constants.js
+++ b/zy-acs-flow/src/map/constants.js
@@ -1,8 +1,10 @@
 
-export const ANIMATE_DURING_TIME = 300;
-
 export const MAP_DEFAULT_ROTATION = 180;
 
+export const AGV_ANGLE_OFFSET_VAL = 0;
+
+export const ANIMATE_DURING_TIME = 300;
+
 export const MAP_MODE = Object.freeze({
     OBSERVER_MODE: "1",
     MOVABLE_MODE: "2",
diff --git a/zy-acs-flow/src/map/tool.js b/zy-acs-flow/src/map/tool.js
index 740fff6..134a407 100644
--- a/zy-acs-flow/src/map/tool.js
+++ b/zy-acs-flow/src/map/tool.js
@@ -11,6 +11,7 @@
     DEVICE_SELECTED_EFFECT_COLOR,
     POINT_ROUTE_DIRECTION,
     ANIMATE_DURING_TIME,
+    AGV_ANGLE_OFFSET_VAL,
 } from './constants';
 import { getRouteList } from './http';
 import PointRoute from "./PointRoute";
@@ -712,8 +713,7 @@
     }
 }
 
-const agvRotationOffsetDegrees = 90;
-const agvRotationOffset = rotationParseNum(agvRotationOffsetDegrees);
+const agvRotationOffset = rotationParseNum(AGV_ANGLE_OFFSET_VAL);
 
 const showAgvSprite = (curZone, agvVo, setCurSprite) => {
     const { agvNo, code, direction, battery, jobType, backpack: backpackCount, slots, error } = agvVo;
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java
index 09533ab..096cba8 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java
@@ -7,10 +7,7 @@
 import com.zy.acs.manager.core.service.*;
 import com.zy.acs.manager.core.service.astart.MapDataDispatcher;
 import com.zy.acs.manager.core.utils.RouteGenerator;
-import com.zy.acs.manager.manager.entity.Agv;
-import com.zy.acs.manager.manager.entity.AgvDetail;
-import com.zy.acs.manager.manager.entity.Code;
-import com.zy.acs.manager.manager.entity.FuncSta;
+import com.zy.acs.manager.manager.entity.*;
 import com.zy.acs.manager.manager.enums.FuncStaType;
 import com.zy.acs.manager.manager.enums.StatusType;
 import com.zy.acs.manager.manager.service.*;
@@ -63,6 +60,8 @@
     private RouteGenerator routeGenerator;
     @Autowired
     private FuncStaService funcStaService;
+    @Autowired
+    private AgvModelService agvModelService;
 
     @RequestMapping(value = "/system/info", method = {RequestMethod.GET, RequestMethod.POST})
     public R systemInfo() {
@@ -149,11 +148,13 @@
 
             Agv agv = agvList.get(i);
             AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId());
+            AgvModel agvModel = agvModelService.getByAgvId(agv.getId());
+            Double workDirection = agvModel.getWorkDirection();
 
             agvDetail.setPos(1);
             agvDetail.setCode(code.getId());
             agvDetail.setStatus(AgvStatusType.IDLE.val);
-            agvDetail.setAgvAngle(90D);
+            agvDetail.setAgvAngle(workDirection);
             agvDetail.setVol(5000);
 
             agvDetailService.updateById(agvDetail);
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 efc79ab..7cf12fb 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
@@ -696,27 +696,33 @@
                         Code nextCode = codeService.getCacheByData(next);
                         Double nextDirection = mapService.calculateDirection(lastCode, nextCode, angleOffsetVal);
 
-                        // 濡傛灉鍘讳笅涓妭鐐圭殑鏂瑰悜涓庡綋鍓嶆柟鍚戝樊180搴︼紝鍒欎笉闇�瑕佹棆杞紝鏀逛负鍙嶆柟鍚戣璧帮紝nextDirection缁х画璧嬪�兼槸涓轰簡閬垮厤 鈥樼涓�涓姩浣滀竴瀹氭槸 turn鈥� 鐨勫垽鏂�
+                        // 绗竴姝ワ細濡傛灉涓嬩竴涓柟鍚戞濂芥槸浣滀笟鏂瑰悜鐨勭浉鍙嶆柟鍚戯紝鍒欓噸缃笅涓�涓柟鍚戜负浣滀笟鏂瑰悜锛屾爣璁皉everse
                         boolean reverse = false;
                         if (nextDirection.equals((workDirection + 180) % 360)) {
                             nextDirection = workDirection;
                             reverse = true;
                         }
 
+                        // 绗簩姝ワ細鍒ゆ柇褰撳墠鑺傜偣鏄惁鍙互鏃嬭浆
                         if (!lastCode.getCornerBool()) {
+                            // 濡傛灉鏄綔涓氭柟鍚戯紝浣嗘槸灏忚溅鍦ㄥ贩閬撳唴鏂瑰悜閿欒锛屽垯鍋滄
+                            if (reverse && !lastDirection.equals(nextDirection)) {
+                                throw new CoolException(agvNo + "鍙峰皬杞︽柟鍚戦敊璇紝璇锋帹鑷宠浆寮偣鎵嬪姩璋冩暣");
+                            }
+                            // 濡傛灉涓嶆槸浣滀笟鏂瑰悜锛屽垽鏂槸鍚︾浉鍙嶆柟鍚戯紝濡傛灉鍙嶆柟鍚戝垯鍊掗��琛岃蛋
                             if (nextDirection.equals((lastDirection + 180) % 360)) {
                                 nextDirection = lastDirection;
                                 reverse = true;
                             }
                         } else {
                             if (!lastDirection.equals(nextDirection)) {
-                                if (lastDirection.equals((nextDirection + 180) % 360)) {
+                                if (nextDirection.equals((lastDirection + 180) % 360)) {
                                     nextDirection = lastDirection;
                                     reverse = true;
                                 } else {
                                     // turn
                                     actionList.add(new Action(
-                                            null,    // 缂栧彿
+                                            null,    // 缂栧彿s
                                             task.getBusId(),    // 鎬荤嚎
                                             task.getId(),    // 浠诲姟
                                             null,    // 鍔ㄤ綔鍙�

--
Gitblit v1.9.1