From 2a6e27f1c0064690d6fc6ab137d64c02fc0742da Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期一, 16 六月 2025 16:16:09 +0800
Subject: [PATCH] 1

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java            |    7 ++++---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java         |    2 +-
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java    |    4 ++--
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java              |    8 +++++---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainLockWrapService.java    |    4 ++--
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java          |    4 ++--
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java          |    2 +-
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java        |    2 +-
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java |   23 +++++++++++++++++++----
 9 files changed, 37 insertions(+), 19 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 8f6a78e..dc9d4dc 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
@@ -134,10 +134,12 @@
             log.info(agv.getUuid() + "鍙稟GV涓嶅彲鐢紝宸茬粡瀛樺湪杩涜涓殑浠诲姟...");
             return R.error();
         }
-        if (!agvService.judgeEnable(agv.getId())) {
+        // zhangc 鍦ㄧ敤鎴锋墜鍔ㄦ帶鍒舵椂锛岄渶瑕佺敤鎴蜂富瑙傚垽鏂紝鎵�浠ュ皬杞﹀彧瑕侀珮浜庝綆鐢甸噺闃堝�煎氨鍙互鎵嬪姩鎺у埗锛屾墍浠ユ敞閲�
+        if (!agvService.judgeEnable(agv.getId(),true,true)) {
             log.info(agv.getUuid() + "鍙稟GV涓嶅彲鐢紝浠诲姟鏃犳硶璁$畻...");
             return R.error();
         }
+
 
         // generate
         Loc oriLoc = null;
@@ -157,13 +159,13 @@
                 if (null == endCode) {
                     return R.error();
                 }
-                if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), endCode.getData(), null)) {
+                if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), endCode.getData(), null, true)) {
                     return R.error();
                 }
                 break;
             case TO_CHARGE:
             case TO_STANDBY:
-                if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), null, null)) {
+                if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), null, null, true)) {
                     return R.error();
                 }
                 break;
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java
index d5b5c73..b8ff15e 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java
@@ -81,7 +81,7 @@
                     continue;
                 }
 
-                mainLockWrapService.buildMinorTask(agv.getId(), TaskTypeType.TO_CHARGE, null, null);
+                mainLockWrapService.buildMinorTask(agv.getId(), TaskTypeType.TO_CHARGE, null, null,false);
             }
         }
     }
@@ -144,7 +144,7 @@
                 }
 //            }
 
-            mainLockWrapService.buildMinorTask(agv.getId(), TaskTypeType.TO_STANDBY, null, null);
+            mainLockWrapService.buildMinorTask(agv.getId(), TaskTypeType.TO_STANDBY, null, null,false);
         }
     }
 
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java
index 7204350..3d3b55c 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java
@@ -82,7 +82,7 @@
                 continue;
             }
             // 2. in idle status
-            if (!agvService.judgeEnable(agv.getId(), true)) {
+            if (!agvService.judgeEnable(agv.getId(), true,false)) {
                 continue;
             }
 
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainLockWrapService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainLockWrapService.java
index 0021542..108e789 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainLockWrapService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainLockWrapService.java
@@ -46,7 +46,7 @@
         }
     }
 
-    public boolean buildMinorTask(Long agvId, TaskTypeType taskType, String destination, Jam jam) {
+    public boolean buildMinorTask(Long agvId, TaskTypeType taskType, String destination, Jam jam, Boolean force) {
         boolean lockAcquired = false;
         try {
             if (!(lockAcquired = this.lock.tryLock(LOCK_TIMEOUT, TimeUnit.SECONDS))) {
@@ -54,7 +54,7 @@
             }
 //            log.info("buildMinorTask AGV[{}] lock time: {}", agv.getUuid(), System.currentTimeMillis());
 
-            return mainService.buildMinorTask(agvId, taskType, destination, jam);
+            return mainService.buildMinorTask(agvId, taskType, destination, jam,force);
         } catch (Exception e) {
             log.error("MainLockWrapService.buildMinorTask[task]", e);
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
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 dbf5fd2..8f9d1bf 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
@@ -288,7 +288,7 @@
         try {
             // valid -----------------------------------------------
             Agv agv = agvService.getById(agvId);
-            if (!agvService.judgeEnable(agv.getId(), false)) {
+            if (!agvService.judgeEnable(agv.getId(), false,  false)) {
                 return;
             }
             if (!Cools.isEmpty(taskService.selectInSts(agvId, TaskStsType.ASSIGN, TaskStsType.PROGRESS))) {
@@ -529,13 +529,14 @@
 
     /**
      * 鍏呯數 鍥炲緟鏈轰綅浠诲姟
+     * zc 鏂板浜嗘槸鍚﹀己鍒讹紝寮哄埗璇存槑鐢辩敤鎴峰彂璧凤紝灏忚溅鍦ㄨ秴杩囦綆鐢甸噺灏卞彲浠ュ仛绉诲姩鍏呯數鍘诲緟鏈轰綅
      */
     @Transactional(propagation = Propagation.REQUIRES_NEW) // although there is a Transactional here that the lock is isolated, but we can't join the caller's Transactional
-    public boolean buildMinorTask(Long agvId, TaskTypeType taskType, String destination, Jam jam) {
+    public boolean buildMinorTask(Long agvId, TaskTypeType taskType, String destination, Jam jam,boolean force) {
         if (Cools.isEmpty(agvId, taskType)) { return false; }
         try {
             String agvNo = agvService.getAgvNo(agvId);
-            if (!agvService.judgeEnable(agvId)) {
+            if (!agvService.judgeEnable(agvId,false, force)) {
                 return false;
             }
             if (!Cools.isEmpty(taskService.selectInSts(agvId, TaskStsType.ASSIGN, TaskStsType.PROGRESS))) {
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java
index 2fdaf0b..86fb4cc 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java
@@ -125,7 +125,7 @@
             return;
         }
 
-        if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null)) {
+        if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null,false)) {
             log.info( "{}寮�濮嬩綔涓氭紨绀�...", agvNo);
 
             CoreCache.AGV_MOCK_STEP_CACHE.put(agvId, CodeStepDto.build(destinationCodeData, jobType));
@@ -180,7 +180,7 @@
         if (Cools.isEmpty(destinationCodeData)) {
             return;
         }
-        if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null)) {
+        if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null,false)) {
             log.info( "{}寮�濮嬭蛋琛屾紨绀�...", agvNo);
         }
     }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
index 775f301..6e9066e 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
@@ -601,7 +601,7 @@
 
         } else {
 
-            return mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, endCodeData, jam);
+            return mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, endCodeData, jam, false);
         }
 
         return true;
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java
index 989a4e0..6b7e72f 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java
@@ -28,7 +28,7 @@
 
     Boolean judgeEnable(Long agvId);
 
-    Boolean judgeEnable(Long agvId, Boolean withBattery);
+    Boolean judgeEnable(Long agvId, Boolean withBattery, Boolean force);
 
     Boolean judgeOnline(Long agvId);
 
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
index 1a08ec2..e153887 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
@@ -106,11 +106,18 @@
 
     @Override
     public Boolean judgeEnable(Long agvId) {
-        return this.judgeEnable(agvId, false);
+        return this.judgeEnable(agvId, false,false);
     }
 
+    /**
+     * 鍒ゆ柇AGV鏄惁鍙敤
+     * @param agvId
+     * @param isLowBattery 浣庣數閲忓垽鏂�
+     * @param force 鏄惁寮哄埗鎿嶄綔
+     * @return
+     */
     @Override
-    public Boolean judgeEnable(Long agvId, Boolean isLowBattery) {
+    public Boolean judgeEnable(Long agvId, Boolean isLowBattery, Boolean force) {
         String agvNo = this.getAgvNo(agvId);
         AgvModel agvModel = agvModelService.getByAgvId(agvId);
         if (0 < segmentService.count(new LambdaQueryWrapper<Segment>()
@@ -137,8 +144,14 @@
             return false;
         }
         if (agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) {
-            if (agvDetail.getVol() < agvModel.getQuaBattery()) {
-                return false;
+            if (force){
+                if (agvDetail.getVol() < agvModel.getLowBattery()) {
+                    return false;
+                }
+            }else {
+                if (agvDetail.getVol() < agvModel.getQuaBattery()) {
+                    return false;
+                }
             }
         }
         if (!agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) {
@@ -163,6 +176,8 @@
         return true;
     }
 
+
+
     @Override
     public Boolean judgeOnline(Long agvId) {
         Agv agv = this.getById(agvId);

--
Gitblit v1.9.1