From 9e7d103dcc2d95f72109ab5f02d3e942e9b7bbf9 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@gmail.com>
Date: 星期一, 29 十二月 2025 13:13:41 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java                   |   27 ++++++++++++++++++---------
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/StaReserveService.java          |    2 +-
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaReserveServiceImpl.java |   19 +++++++++++--------
 zy-acs-manager/src/main/resources/mapper/manager/StaReserveMapper.xml                           |    2 +-
 4 files changed, 31 insertions(+), 19 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 ba30eab..841dc8b 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
@@ -1495,33 +1495,42 @@
                                 success = true;
                                 break;
                             case ORI_STA:
+                                // load from sta
                                 sta = staService.getById(currTask.getOriSta());
-                                boolean reserveWaitingOk = staReserveService.waitingStaReserve(sta, currTask, 1, StaReserveType.OUT);
-                                if (!reserveWaitingOk) {
+                                // reserve to be waiting
+                                if (!staReserveService.waitingStaReserve(sta, currTask, 1, StaReserveType.OUT)) {
                                     break;
                                 }
-
-                                boolean permit = conveyorStationService.allowAgvWork(sta, currTask, currSeg, StaReserveType.OUT);
-                                if (!permit) {
+                                // convey plc valid
+                                if (!conveyorStationService.allowAgvWork(sta, currTask, currSeg, StaReserveType.OUT)) {
                                     // reserve rollback
                                     staReserveService.rollbackWaitingToReserved(sta, currTask, StaReserveType.OUT);
                                     break;
                                 }
-
                                 success = true;
                                 break;
                             case DEST_STA:
-                                // place sta
+                                // place to sta
                                 sta = staService.getById(currTask.getDestSta());
-                                success = staReserveService.waitingStaReserve(sta, currTask, 1, StaReserveType.IN);
+                                // reserve to be waiting
+                                if (!staReserveService.waitingStaReserve(sta, currTask, 1, StaReserveType.IN)) {
+                                    break;
+                                }
+                                // convey plc valid
+                                if (!conveyorStationService.allowAgvWork(sta, currTask, currSeg, StaReserveType.OUT)) {
+                                    // reserve rollback
+                                    staReserveService.rollbackWaitingToReserved(sta, currTask, StaReserveType.OUT);
+                                    break;
+                                }
+                                success = true;
                                 break;
                             default:
                                 log.error("agv[{}] has wrong posType [{}], segment [{}]", protocol.getAgvNo(), posType.toString(), currSeg.getId());
                                 break;
                         }
                     }
-
                 }
+
             } catch (Exception e) {
                 log.error("agv[{}] failed to deal with action request, qrCode={}", agv.getUuid(), agv_06_up.getVal(), e);
             }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/StaReserveService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/StaReserveService.java
index 45a32cd..77b84c3 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/StaReserveService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/StaReserveService.java
@@ -15,7 +15,7 @@
 
     Boolean waitingStaReserve(Sta sta, Task task, Integer qty, StaReserveType type);
 
-    Boolean rollbackWaitingToReserved(Sta sta, Task currTask, StaReserveType staReserveType);
+    Boolean rollbackWaitingToReserved(Sta sta, Task task, StaReserveType staReserveType);
 
 
     void confirmStaReserve(Sta sta, Task task, Integer qty, StaReserveType type);
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaReserveServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaReserveServiceImpl.java
index 9750e6c..9dee9af 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaReserveServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaReserveServiceImpl.java
@@ -111,8 +111,8 @@
         qty = Optional.ofNullable(qty).orElse(DEFAULT_QTY);
 
         // update reserve to be waiting state
-        int changed = this.baseMapper.updateStateToWaiting(sta.getId()
-                , task.getId()
+        int changed = this.baseMapper.updateStateToWaiting(task.getId()
+                , sta.getId()
                 , type.toString()
                 , StaReserveStateType.WAITING.toString()
                 , WAITING_EXPIRE_TIME
@@ -131,7 +131,6 @@
         if (Cools.isEmpty(list)) {
             return false;
         }
-
         StaReserve reserve = list.get(0);
 
         StaReserveStateType stateType = StaReserveStateType.of(reserve.getState());
@@ -145,11 +144,15 @@
     }
 
     @Override
-    public Boolean rollbackWaitingToReserved(Sta sta, Task currTask, StaReserveType staReserveType) {
-
-        rollbackWaitingToReserved
-
-        return null;
+    public Boolean rollbackWaitingToReserved(Sta sta, Task task, StaReserveType type) {
+        int changed = this.baseMapper.updateStateBackToWaiting(
+                task.getId()
+                , sta.getId()
+                , type.toString()
+                , StaReserveStateType.RESERVED.toString()
+                , WAITING_EXPIRE_TIME
+        );
+        return changed > 0;
     }
 
     @Override
diff --git a/zy-acs-manager/src/main/resources/mapper/manager/StaReserveMapper.xml b/zy-acs-manager/src/main/resources/mapper/manager/StaReserveMapper.xml
index 9c26d9a..77ad9ab 100644
--- a/zy-acs-manager/src/main/resources/mapper/manager/StaReserveMapper.xml
+++ b/zy-acs-manager/src/main/resources/mapper/manager/StaReserveMapper.xml
@@ -33,7 +33,7 @@
     <update id="updateStateBackToWaiting">
         UPDATE man_sta_reserve
         SET state = #{state},
-            expire_time = DATE_ADD(NOW(), INTERVAL (#{reservedExtendMs} * 1000) MICROSECOND),
+            expire_time = DATE_ADD(NOW(), INTERVAL #{extendMs} MILLISECOND),
             update_time = NOW()
         WHERE task_id = #{taskId}
         AND sta_id = #{staId}

--
Gitblit v1.9.1