From 6a19c21930c9fef7fe1dd3aaa35133f68375300a Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期四, 05 二月 2026 15:44:15 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java |   68 ++++++++++++++++++++--------------
 1 files changed, 40 insertions(+), 28 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
index 56079cf..2e52cda 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
@@ -19,6 +19,7 @@
 import com.zy.acs.manager.manager.enums.*;
 import com.zy.acs.manager.manager.service.*;
 import com.zy.acs.manager.system.controller.BaseController;
+import com.zy.acs.manager.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
@@ -78,6 +79,8 @@
     private StaReserveService staReserveService;
     @Autowired
     private AgvAreaDispatcher agvAreaDispatcher;
+    @Autowired
+    private ConfigService configService;
 
     @PreAuthorize("hasAuthority('manager:agv:update')")
     @OperationLog("Locate All Agv")
@@ -141,6 +144,7 @@
             return R.error();
         }
 
+        Boolean maintainLocSts = configService.getVal("maintainLocSts", Boolean.class);
         Date now = new Date();
         Agv agv = agvService.selectByUuid(param.getAgvNo());
         AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId());
@@ -233,13 +237,15 @@
 //                    throw new BusinessException("AGV " + agv.getUuid() + " failed to reach target code " + oriLoc.getCode$());
                     throw new BusinessException("AGV銆�" + agv.getUuid() + "銆戞棤娉曞埌杈捐捣濮嬪簱浣嶃��" + oriLoc.getLocNo() + "銆�");
                 }
-                if (!oriLoc.getLocSts().equals(LocStsType.STOCK.val())) {
-                    throw new BusinessException("oriLoc锛�" + oriLoc.getLocNo() + " 涓嶆槸鍦ㄥ簱鐘舵��");
-                }
-                oriLoc.setLocSts(LocStsType.PAKOUT.val());
-                oriLoc.setUpdateTime(now);
-                if (!locService.updateById(oriLoc)) {
-                    throw new BusinessException("oriLoc锛�" + oriLoc.getLocNo() + " 淇敼搴撲綅鐘舵�佸け璐�");
+                if (maintainLocSts) {
+                    if (!oriLoc.getLocSts().equals(LocStsType.STOCK.val())) {
+                        throw new BusinessException("oriLoc锛�" + oriLoc.getLocNo() + " 涓嶆槸鍦ㄥ簱鐘舵��");
+                    }
+                    oriLoc.setLocSts(LocStsType.PAKOUT.val());
+                    oriLoc.setUpdateTime(now);
+                    if (!locService.updateById(oriLoc)) {
+                        throw new BusinessException("oriLoc锛�" + oriLoc.getLocNo() + " 淇敼搴撲綅鐘舵�佸け璐�");
+                    }
                 }
 
                 // destLoc
@@ -256,13 +262,15 @@
 //                    throw new BusinessException("AGV " + agv.getUuid() + " failed to reach target code " + destLoc.getCode$());
                     throw new BusinessException("AGV銆�" + agv.getUuid() + "銆戞棤娉曞埌杈剧洰鏍囧簱浣嶃��" + destLoc.getLocNo() + "銆�");
                 }
-                if (!destLoc.getLocSts().equals(LocStsType.IDLE.val())) {
-                    throw new BusinessException("destLoc锛�" + destLoc.getLocNo() + " 涓嶆槸绌洪棽鐘舵��");
-                }
-                destLoc.setLocSts(LocStsType.PAKIN.val());
-                destLoc.setUpdateTime(now);
-                if (!locService.updateById(destLoc)) {
-                    throw new BusinessException("destLoc锛�" + destLoc.getLocNo() + " 淇敼搴撲綅鐘舵�佸け璐�");
+                if (maintainLocSts) {
+                    if (!destLoc.getLocSts().equals(LocStsType.IDLE.val())) {
+                        throw new BusinessException("destLoc锛�" + destLoc.getLocNo() + " 涓嶆槸绌洪棽鐘舵��");
+                    }
+                    destLoc.setLocSts(LocStsType.PAKIN.val());
+                    destLoc.setUpdateTime(now);
+                    if (!locService.updateById(destLoc)) {
+                        throw new BusinessException("destLoc锛�" + destLoc.getLocNo() + " 淇敼搴撲綅鐘舵�佸け璐�");
+                    }
                 }
 
                 // task
@@ -286,13 +294,15 @@
 //                    throw new BusinessException("AGV " + agv.getUuid() + " failed to reach target code " + oriLoc.getCode$());
                     throw new BusinessException("AGV銆�" + agv.getUuid() + "銆戞棤娉曞埌杈捐捣濮嬪簱浣嶃��" + oriLoc.getLocNo() + "銆�");
                 }
-                if (!oriLoc.getLocSts().equals(LocStsType.STOCK.val())) {
-                    throw new BusinessException("oriLoc锛�" + oriLoc.getLocNo() + " 涓嶆槸鍦ㄥ簱鐘舵��");
-                }
-                oriLoc.setLocSts(LocStsType.PAKOUT.val());
-                oriLoc.setUpdateTime(now);
-                if (!locService.updateById(oriLoc)) {
-                    throw new BusinessException("oriLoc锛�" + oriLoc.getLocNo() + " 淇敼搴撲綅鐘舵�佸け璐�");
+                if (maintainLocSts) {
+                    if (!oriLoc.getLocSts().equals(LocStsType.STOCK.val())) {
+                        throw new BusinessException("oriLoc锛�" + oriLoc.getLocNo() + " 涓嶆槸鍦ㄥ簱鐘舵��");
+                    }
+                    oriLoc.setLocSts(LocStsType.PAKOUT.val());
+                    oriLoc.setUpdateTime(now);
+                    if (!locService.updateById(oriLoc)) {
+                        throw new BusinessException("oriLoc锛�" + oriLoc.getLocNo() + " 淇敼搴撲綅鐘舵�佸け璐�");
+                    }
                 }
 
                 // destSta
@@ -353,13 +363,15 @@
 //                    throw new BusinessException("AGV " + agv.getUuid() + " failed to reach target code " + destLoc.getCode$());
                     throw new BusinessException("AGV銆�" + agv.getUuid() + "銆戞棤娉曞埌杈剧洰鏍囧簱浣嶃��" + destLoc.getLocNo() + "銆�");
                 }
-                if (!destLoc.getLocSts().equals(LocStsType.IDLE.val())) {
-                    throw new BusinessException("destLoc锛�" + destLoc.getLocNo() + " 涓嶆槸绌洪棽鐘舵��");
-                }
-                destLoc.setLocSts(LocStsType.PAKIN.val());
-                destLoc.setUpdateTime(now);
-                if (!locService.updateById(destLoc)) {
-                    throw new BusinessException("destLoc锛�" + destLoc.getLocNo() + " 淇敼搴撲綅鐘舵�佸け璐�");
+                if (maintainLocSts) {
+                    if (!destLoc.getLocSts().equals(LocStsType.IDLE.val())) {
+                        throw new BusinessException("destLoc锛�" + destLoc.getLocNo() + " 涓嶆槸绌洪棽鐘舵��");
+                    }
+                    destLoc.setLocSts(LocStsType.PAKIN.val());
+                    destLoc.setUpdateTime(now);
+                    if (!locService.updateById(destLoc)) {
+                        throw new BusinessException("destLoc锛�" + destLoc.getLocNo() + " 淇敼搴撲綅鐘舵�佸け璐�");
+                    }
                 }
 
                 // task

--
Gitblit v1.9.1