From efabc6ba991acfd01d38bb0bf4e8cfd772416617 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期一, 05 一月 2026 13:07:39 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaReserveServiceImpl.java |   23 +++++++++++++++++++----
 1 files changed, 19 insertions(+), 4 deletions(-)

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 f9641ba..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
@@ -27,6 +27,7 @@
 public class StaReserveServiceImpl extends ServiceImpl<StaReserveMapper, StaReserve> implements StaReserveService {
 
     public static final Long RESERVE_EXPIRE_TIME = 30 * 60 * 1000L;
+    public static final Long WAITING_EXPIRE_TIME = 5 * 60 * 1000L;
 
     public static final Integer DEFAULT_QTY = 1;
 
@@ -110,10 +111,13 @@
         qty = Optional.ofNullable(qty).orElse(DEFAULT_QTY);
 
         // update reserve to be waiting state
-        if (0 < this.baseMapper.updateStateToWaiting(sta.getId()
-                , task.getId()
+        int changed = this.baseMapper.updateStateToWaiting(task.getId()
+                , sta.getId()
                 , type.toString()
-                , StaReserveStateType.WAITING.toString())) {
+                , StaReserveStateType.WAITING.toString()
+                , WAITING_EXPIRE_TIME
+        );
+        if (changed > 0) {
             return true;
         }
 
@@ -127,7 +131,6 @@
         if (Cools.isEmpty(list)) {
             return false;
         }
-
         StaReserve reserve = list.get(0);
 
         StaReserveStateType stateType = StaReserveStateType.of(reserve.getState());
@@ -141,6 +144,18 @@
     }
 
     @Override
+    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
     @Transactional(rollbackFor = Exception.class)
     public void confirmStaReserve(Sta sta, Task task, Integer qty, StaReserveType type) {
         qty = Optional.ofNullable(qty).orElse(DEFAULT_QTY);

--
Gitblit v1.9.1