From 2df63e034920c7069905e9173618ca149e0aa15b Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期五, 26 十二月 2025 15:25:35 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaReserveServiceImpl.java |   31 +++++++++++++++++++++++++++++--
 1 files changed, 29 insertions(+), 2 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 c68acd5..a00deae 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
@@ -105,7 +105,8 @@
 
         // update reserve state to be confirmed
         if (0 == this.baseMapper.updateState(task.getId(), sta.getId(), type.toString(), StaReserveStateType.CONFIRMED.toString())) {
-            throw new BusinessException("failed to confirm sta reserve");
+            log.error("failed to confirm sta reserve");
+            return;
         }
 
         int cntOfDealWithReserve = 0;
@@ -120,7 +121,33 @@
                 break;
         }
         if (cntOfDealWithReserve == 0) {
-            throw new BusinessException("Sta[" + sta.getStaNo() + "] apply confirmed failed, type=" + type.toString());
+            throw new BusinessException("Sta[" + sta.getStaNo() + "] confirm failed, type=" + type.toString());
+        }
+    }
+
+    @Override
+    public void cancelStaReserve(Sta sta, Task task, Integer qty, StaReserveType type) {
+        qty = Optional.ofNullable(qty).orElse(1);
+
+        // update reserve state to be canceled
+        if (0 == this.baseMapper.updateState(task.getId(), sta.getId(), type.toString(), StaReserveStateType.CANCELLED.toString())) {
+            log.error("failed to cancel sta reserve");
+            return;
+        }
+
+        int cntOfDealWithReserve = 0;
+        switch (type) {
+            case IN:
+                cntOfDealWithReserve = staMapper.releaseReserveIn(sta.getId(), qty);
+                break;
+            case OUT:
+                cntOfDealWithReserve = staMapper.releaseReserveOut(sta.getId(), qty);
+                break;
+            default:
+                break;
+        }
+        if (cntOfDealWithReserve == 0) {
+            throw new BusinessException("Sta[" + sta.getStaNo() + "] cancel failed, type=" + type.toString());
         }
     }
 

--
Gitblit v1.9.1