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

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskServiceImpl.java |   79 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 79 insertions(+), 0 deletions(-)

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 07c84af..248ee81 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
@@ -41,6 +41,8 @@
     private SnowflakeIdWorker snowflakeIdWorker;
     @Autowired
     private LaneService laneService;
+    @Autowired
+    private StaReserveService staReserveService;
 
     @Override
     public PageResult<Task> pageRel(PageParam<Task, BaseParam> pageParam) {
@@ -220,6 +222,83 @@
         return this.list(wrapper).stream().findFirst().orElse(null);
     }
 
+    @Override
+    public void maintainLocAndSta(Task task) {
+        if (null == task) {
+            return;
+        }
+        if (!task.getTaskSts().equals(TaskStsType.COMPLETE.val())) {
+            return;
+        }
+        Date now = new Date();
+        // loc status
+        Loc oriLoc = null;
+        Loc destLoc = null;
+        Sta oriSta = null;
+        Sta destSta = null;
+        switch (Objects.requireNonNull(TaskTypeType.get(task.getTaskTypeEl()))) {
+            case LOC_TO_LOC:
+                oriLoc = locService.getById(task.getOriLoc());
+                if (oriLoc.getLocSts().equals(LocStsType.PAKOUT.val())) {
+                    oriLoc.setLocSts(LocStsType.IDLE.val());
+                    oriLoc.setUpdateTime(now);
+                    if (!locService.updateById(oriLoc)) {
+                        log.error("Loc [{}] 搴撲綅淇敼鐘舵�佸け璐�", task.getOriLoc$());
+                    }
+                }
+
+                destLoc = locService.getById(task.getDestLoc());
+                if (destLoc.getLocSts().equals(LocStsType.PAKIN.val())) {
+                    destLoc.setLocSts(LocStsType.STOCK.val());
+                    destLoc.setUpdateTime(now);
+                    if (!locService.updateById(destLoc)) {
+                        log.error("Loc [{}] 搴撲綅淇敼鐘舵�佸け璐�", task.getDestLoc$());
+                    }
+                }
+                break;
+            case LOC_TO_STA:
+                oriLoc = locService.getById(task.getOriLoc());
+                if (oriLoc.getLocSts().equals(LocStsType.PAKOUT.val())) {
+                    oriLoc.setLocSts(LocStsType.IDLE.val());
+                    oriLoc.setUpdateTime(now);
+                    if (!locService.updateById(oriLoc)) {
+                        log.error("Loc [{}] 搴撲綅淇敼鐘舵�佸け璐�", task.getOriLoc$());
+                    }
+                }
+
+                destSta = staService.getById(task.getDestSta());
+                staReserveService.confirmStaReserve(destSta, task, 1, StaReserveType.IN);
+                break;
+            case STA_TO_LOC:
+                oriSta = staService.getById(task.getOriSta());
+                staReserveService.confirmStaReserve(oriSta, task, 1, StaReserveType.OUT);
+
+                destLoc = locService.getById(task.getDestLoc());
+                if (destLoc.getLocSts().equals(LocStsType.PAKIN.val())) {
+                    destLoc.setLocSts(LocStsType.STOCK.val());
+                    destLoc.setUpdateTime(now);
+                    if (!locService.updateById(destLoc)) {
+                        log.error("Loc [{}] 搴撲綅淇敼鐘舵�佸け璐�", task.getDestLoc$());
+                    }
+                }
+                break;
+            case STA_TO_STA:
+                oriSta = staService.getById(task.getOriSta());
+                staReserveService.confirmStaReserve(oriSta, task, 1, StaReserveType.OUT);
+
+                destSta = staService.getById(task.getDestSta());
+                staReserveService.confirmStaReserve(destSta, task, 1, StaReserveType.IN);
+                break;
+            case TO_CHARGE:
+            case TO_STANDBY:
+            case MOVE:
+                break;
+            default:
+                break;
+        }
+    }
+
+
     @Transactional
     public void maintainLocSts(Task task, Boolean complete) {
         Loc oriLoc = null; Loc destLoc = null;

--
Gitblit v1.9.1