From cc69250f7766581dbfd38f500021d03b29f0a4e0 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期二, 07 四月 2026 13:00:11 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/hik/HikOrderPublishService.java |   24 +++++-------------------
 1 files changed, 5 insertions(+), 19 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/hik/HikOrderPublishService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/hik/HikOrderPublishService.java
index 4a27274..da4886e 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/hik/HikOrderPublishService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/hik/HikOrderPublishService.java
@@ -15,8 +15,8 @@
 import com.zy.acs.framework.common.SnowflakeIdWorker;
 import com.zy.acs.framework.exception.CoolException;
 import com.zy.acs.manager.common.config.HikOrderProperties;
-import com.zy.acs.manager.core.constant.HikAngleConstant;
 import com.zy.acs.manager.core.service.MapService;
+import com.zy.acs.manager.core.utils.AgvAngleUtils;
 import com.zy.acs.manager.manager.entity.Action;
 import com.zy.acs.manager.manager.entity.AgvDetail;
 import com.zy.acs.manager.manager.entity.AgvModel;
@@ -24,7 +24,6 @@
 import com.zy.acs.manager.manager.enums.ActionTypeType;
 import com.zy.acs.manager.manager.service.AgvDetailService;
 import com.zy.acs.manager.manager.service.CodeService;
-import com.zy.acs.manager.system.service.ConfigService;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -49,8 +48,6 @@
     private CodeService codeService;
     @Autowired
     private AgvDetailService agvDetailService;
-    @Autowired
-    private ConfigService configService;
 
     private final RedisSupport redis = RedisSupport.defaultRedisSupport;
 
@@ -134,7 +131,7 @@
                 case StraightBackTurnable:
                 case StraightBackUnturnable:
                     String endCode = findNextMoveEndCode(actionList, i, currentNode.code);
-                    Double travelDirection = calculateTravelDirection(currentNode.code, endCode);
+                    Double travelDirection = calculateTravelDirection(currentNode.code, endCode, agvModel);
                     Double moveDirection = resolveMoveDirection(currentDirection, travelDirection, actionType, actionGroupId, currentNode.code, endCode);
                     Double edgeOrientation = resolveEdgeOrientation(moveDirection, travelDirection);
                     HkOrderEdge edge = createEdge(actionGroupId, edgeIndex++, sequenceId++, currentNode, endCode, edgeOrientation, action, agvModel);
@@ -379,10 +376,7 @@
     }
 
     private Double toHikThetaRadians(Double thetaDegrees) {
-        if (thetaDegrees == null) {
-            return null;
-        }
-        return HikAngleConstant.toHikAngleRadians(Math.toRadians(thetaDegrees));
+        return AgvAngleUtils.toRadians(thetaDegrees);
     }
 
     private void applyNodeTheta(HkOrderNode node, Double directionDegrees) {
@@ -392,21 +386,13 @@
         node.getNodePosition().setTheta(toHikThetaRadians(directionDegrees));
     }
 
-    private Double calculateTravelDirection(String startCode, String endCode) {
+    private Double calculateTravelDirection(String startCode, String endCode, AgvModel agvModel) {
         Code start = codeService.getCacheByData(startCode);
         Code end = codeService.getCacheByData(endCode);
         if (start == null || end == null) {
             throw new CoolException("hik order adaptation failed: code position missing");
         }
-        Integer angleOffsetVal = configService.getVal("mapAngleOffsetVal", Integer.class);
-        if (angleOffsetVal == null) {
-            angleOffsetVal = 0;
-        }
-        double deltaX = end.getX() - start.getX();
-        double deltaY = end.getY() - start.getY();
-        double angle = Math.atan2(deltaX, deltaY);
-        angle = Math.toDegrees(angle) + angleOffsetVal;
-        return normalizeDegrees(angle);
+        return AgvAngleUtils.calculateDirection(start, end, agvModel);
     }
 
     private Double resolveMoveDirection(Double currentDirection,

--
Gitblit v1.9.1