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-flow/src/page/staReserve/StaReserveList.jsx                                              |    4 +-
 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/TaskServiceImpl.java       |   38 +++++++++---------
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/StaReserve.java                  |    1 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaReserveServiceImpl.java |   31 ++++++++++++++-
 5 files changed, 53 insertions(+), 23 deletions(-)

diff --git a/zy-acs-flow/src/page/staReserve/StaReserveList.jsx b/zy-acs-flow/src/page/staReserve/StaReserveList.jsx
index 3629507..8264033 100644
--- a/zy-acs-flow/src/page/staReserve/StaReserveList.jsx
+++ b/zy-acs-flow/src/page/staReserve/StaReserveList.jsx
@@ -84,7 +84,7 @@
     <DateInput source="expireTime" label="table.field.staReserve.expireTime" />,
     <DateInput source="waitingAt" label="table.field.staReserve.waitingAt" />,
     <DateInput source="confirmedAt" label="table.field.staReserve.confirmedAt" />,
-    <DateInput source="cancelledAt" label="table.field.staReserve.cancelledAt" />,
+    // <DateInput source="cancelledAt" label="table.field.staReserve.cancelledAt" />,
     <TextInput source="uniqKey" label="table.field.staReserve.uniqKey" />,
 
     <TextInput label="common.field.memo" source="memo" />,
@@ -160,7 +160,7 @@
                     <DateField source="expireTime" label="table.field.staReserve.expireTime" showTime />
                     <DateField source="waitingAt" label="table.field.staReserve.waitingAt" showTime />
                     <DateField source="confirmedAt" label="table.field.staReserve.confirmedAt" showTime />
-                    <DateField source="cancelledAt" label="table.field.staReserve.cancelledAt" showTime />
+                    {/* <DateField source="cancelledAt" label="table.field.staReserve.cancelledAt" showTime /> */}
                     <TextField source="uniqKey" label="table.field.staReserve.uniqKey" />
 
                     <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/StaReserve.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/StaReserve.java
index 05d23c2..df79e64 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/StaReserve.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/StaReserve.java
@@ -63,6 +63,7 @@
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private Date confirmedAt;
 
+    // 鐢ㄤ笉鍒帮紝浣跨敤纭鏃堕棿浠f浛
     @ApiModelProperty(value= "鍙栨秷鏃堕棿")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private Date cancelledAt;
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 9756404..089a8e1 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
@@ -14,4 +14,6 @@
 
     void confirmStaReserve(Sta sta, Task task, Integer qty, StaReserveType type);
 
+    void cancelStaReserve(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 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());
         }
     }
 
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskServiceImpl.java
index 248ee81..9666287 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskServiceImpl.java
@@ -98,7 +98,7 @@
         if (null == task) {
             return Boolean.FALSE;
         }
-        this.maintainLocSts(task, Boolean.TRUE);
+        this.maintainLocAndStaHandler(task, Boolean.TRUE);
 
         task.setTaskSts(TaskStsType.COMPLETE.val());
         task.setUpdateTime(new Date());
@@ -117,7 +117,7 @@
         if (null == task) {
             return Boolean.FALSE;
         }
-        this.maintainLocSts(task, Boolean.FALSE);
+        this.maintainLocAndStaHandler(task, Boolean.FALSE);
 
         task.setTaskSts(TaskStsType.CANCEL.val());
         task.setUpdateTime(new Date());
@@ -300,7 +300,7 @@
 
 
     @Transactional
-    public void maintainLocSts(Task task, Boolean complete) {
+    public void maintainLocAndStaHandler(Task task, Boolean complete) {
         Loc oriLoc = null; Loc destLoc = null;
         Sta oriSta = null; Sta destSta = null;
         Date now = new Date();
@@ -331,18 +331,18 @@
                 }
 
                 destSta = staService.getById(task.getDestSta());
-                destSta.setStaSts(complete?StaStsType.STOCK.val():StaStsType.IDLE.val());
-                destSta.setUpdateTime(now);
-                if (!staService.updateById(destSta)) {
-                    throw new BusinessException("Sta [" + destSta.getStaNo() + "] 绔欑偣淇敼鐘舵�佸け璐� 锛侊紒锛�");
+                if (complete) {
+                    staReserveService.confirmStaReserve(destSta, task, 1, StaReserveType.IN);
+                } else {
+                    staReserveService.cancelStaReserve(destSta, task, 1, StaReserveType.IN);
                 }
                 break;
             case STA_TO_LOC:
                 oriSta = staService.getById(task.getOriSta());
-                oriSta.setStaSts(complete?StaStsType.IDLE.val():StaStsType.STOCK.val());
-                oriSta.setUpdateTime(now);
-                if (!staService.updateById(oriSta)) {
-                    throw new BusinessException("Sta [" + oriSta.getStaNo() + "] 绔欑偣淇敼鐘舵�佸け璐� 锛侊紒锛�");
+                if (complete) {
+                    staReserveService.confirmStaReserve(oriSta, task, 1, StaReserveType.OUT);
+                } else {
+                    staReserveService.cancelStaReserve(oriSta, task, 1, StaReserveType.OUT);
                 }
 
                 destLoc = locService.getById(task.getDestLoc());
@@ -354,17 +354,17 @@
                 break;
             case STA_TO_STA:
                 oriSta = staService.getById(task.getOriSta());
-                oriSta.setStaSts(complete?StaStsType.IDLE.val():StaStsType.STOCK.val());
-                oriSta.setUpdateTime(now);
-                if (!staService.updateById(oriSta)) {
-                    throw new BusinessException("Sta [" + oriSta.getStaNo() + "] 绔欑偣淇敼鐘舵�佸け璐� 锛侊紒锛�");
+                if (complete) {
+                    staReserveService.confirmStaReserve(oriSta, task, 1, StaReserveType.OUT);
+                } else {
+                    staReserveService.cancelStaReserve(oriSta, task, 1, StaReserveType.OUT);
                 }
 
                 destSta = staService.getById(task.getDestSta());
-                destSta.setStaSts(complete?StaStsType.STOCK.val():StaStsType.IDLE.val());
-                destSta.setUpdateTime(now);
-                if (!staService.updateById(destSta)) {
-                    throw new BusinessException("Sta [" + destSta.getStaNo() + "] 绔欑偣淇敼鐘舵�佸け璐� 锛侊紒锛�");
+                if (complete) {
+                    staReserveService.confirmStaReserve(destSta, task, 1, StaReserveType.IN);
+                } else {
+                    staReserveService.cancelStaReserve(destSta, task, 1, StaReserveType.IN);
                 }
                 break;
             case TO_CHARGE:

--
Gitblit v1.9.1