From 7692db6072ef569b5734d218cb11fa82e80171d1 Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期四, 22 一月 2026 17:12:17 +0800
Subject: [PATCH] agv出库逻辑调整

---
 src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java |  104 +++++++++++++++++----------------------------------
 1 files changed, 35 insertions(+), 69 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
index 18c2ae7..269f4eb 100644
--- a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
@@ -14,6 +14,7 @@
 
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 
 @Service("taskService")
@@ -39,7 +40,9 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void completeWrkMast(String workNo, Long userId) {
-        Task wrkMast = this.selectOne(new EntityWrapper<Task>().eq("wrk_no", workNo));
+        Task wrkMast = this.selectOne(new EntityWrapper<Task>()
+                .eq("wrk_no", workNo)
+                .andNew("(is_deleted = 0)"));
         if (Cools.isEmpty(wrkMast)) {
             throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
         }
@@ -47,10 +50,10 @@
             throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
         }
         // 鍏ュ簱 + 搴撲綅杞Щ
-        if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType() == 11)) {
+        if (wrkMast.getIoType() < 50){
             wrkMast.setWrkSts(4L);
             // 鍑哄簱
-        } else if (wrkMast.getWrkSts() > 10) {
+        } else  {
             wrkMast.setWrkSts(14L);
         }
         Date now = new Date();
@@ -68,7 +71,9 @@
     @Override
     @Transactional
     public void pickWrkMast(String workNo, Long userId) {
-        Task wrkMast = this.selectById(workNo);
+        Task wrkMast = this.selectOne(new EntityWrapper<Task>()
+                .eq("wrk_no", workNo)
+                .andNew("(is_deleted = 0)"));
         if (Cools.isEmpty(wrkMast)) {
             throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
         }
@@ -132,14 +137,16 @@
     @Transactional
     public void cancelWrkMast(String workNo, Long userId) {
         Date now = new Date();
-        Task wrkMast = this.selectOne(new EntityWrapper<Task>().eq("wrk_no", workNo));
+        Task wrkMast = this.selectOne(new EntityWrapper<Task>()
+                .eq("wrk_no", workNo)
+                .andNew("(is_deleted = 0)"));
         if (Cools.isEmpty(wrkMast)) {
             throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
         }
         String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
         String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
         // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
-        if (wrkMast.getWrkSts() < 4) {
+        if (wrkMast.getIoType() < 100) {
             locNo = wrkMast.getLocNo();
             locSts = "O";
 
@@ -156,7 +163,7 @@
                 locCacheService.updateById(locMast);
             }
             // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
-        } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
+        } else {
             locNo = wrkMast.getSourceLocNo();
             // 鍑哄簱 ===>> F.鍦ㄥ簱
             if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
@@ -177,8 +184,6 @@
                 locMast.setModiUser(userId);
                 locCacheService.updateById(locMast);
             }
-        } else {
-            throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
         }
 
         //鍙栨秷鍏ュ簱宸ヤ綔妗f椂锛屾煡璇㈢粍鎵樿〃锛屽鏋滄湁灏嗙姸鎬佹敼涓哄緟澶勭悊
@@ -197,53 +202,7 @@
             }
         }
 
-        //鍙栨秷鍑哄簱宸ヤ綔妗f椂锛屾煡璇㈠崟鎹鐞嗚〃锛屽洖婊氫綔涓氫腑鏁伴噺
-        if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103) {
-            List<TaskDetl> wrkDetls = taskDetlService.selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", wrkMast.getWrkNo()));
-            for (TaskDetl wrkDetl : wrkDetls) {
-                if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-                    if (!orderDetlPakoutService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(),
-                            wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
-                            wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) {
-                        throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
-                    }
 
-                    //淇敼璁㈠崟涓昏〃鐘舵��,娌℃湁浣滀笟鏁伴噺鏃舵墠鍙互淇敼
-                    boolean flag = true;
-//                    List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",wrkDetl.getOrderNo()));
-                    OrderPakout order = orderPakoutService.selectByNo(wrkDetl.getOrderNo());
-                    List<OrderDetlPakout> orderDetls = orderDetlPakoutService.selectByOrderId(order.getId());
-                    for (OrderDetlPakout orderDetl : orderDetls) {
-                        if (orderDetl.getWorkQty() > 0) {
-                            flag = false;
-                        }
-                    }
-                    if (flag) {
-                        if (!Cools.isEmpty(order) && order.getSettle() == 2) {
-                            order.setSettle(1L);
-                            order.setUpdateBy(userId);
-                            order.setUpdateTime(now);
-                        }
-                        if (!orderPakoutService.update(order, new EntityWrapper<OrderPakout>().eq("order_no", wrkDetl.getOrderNo()))) {
-                            throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�");
-                        }
-                    }
-                }
-            }
-
-        }
-
-//        // 璁㈠崟鍏宠仈
-//        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
-//        for (WrkDetl wrkDetl : wrkDetls) {
-//            if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-//                if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
-//                    throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
-//                }
-//                // 鐢熸垚鏂扮殑鍑哄簱浣滀笟
-////                        stockOutRe(wrkMast, wrkDetls);
-//            }
-//        }
 
         // 鍙栨秷鎿嶄綔浜哄憳璁板綍
         wrkMast.setManuType("鎵嬪姩鍙栨秷");
@@ -256,30 +215,37 @@
         if (!taskLogService.save(wrkMast.getWrkNo())) {
             throw new CoolException("淇濆瓨宸ヤ綔鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
         }
-        // 鍒犻櫎宸ヤ綔涓绘。
-        boolean wrkMastRes = taskService.deleteById(wrkMast);
+        // 閫昏緫鍒犻櫎宸ヤ綔涓绘。
+        wrkMast.setIsDeleted(1);
+        boolean wrkMastRes = taskService.updateById(wrkMast);
 
         if (wrkMast.getIoType() != 10 && wrkMast.getIoType() != 110) {
-            // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
-            if (!taskDetlLogService.save(wrkMast.getWrkNo())) {
-//                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
-            }
             // 鍒犻櫎宸ヤ綔妗f槑缁�
             boolean wrkDetlRes = taskDetlService.delete(new EntityWrapper<TaskDetl>().eq("wrk_no", workNo));
         }
 
-        // 淇敼搴撲綅鐘舵��
-        LocCache locMast = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", locNo));
-        if (Cools.isEmpty(locMast)) {
-            throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐ワ紝搴撲綅涓嶅瓨鍦�:" + locNo);
+        // 淇敼搴撲綅鐘舵�侊紙濡傛灉搴撲綅涓嶄负绌猴級
+        boolean locMastRes = true;
+        if (!Cools.isEmpty(locNo)) {
+            LocCache locMast = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", locNo));
+            if (Cools.isEmpty(locMast)) {
+                locMast.setLocSts("O");
+            }
+            if (!Cools.isEmpty(locSts)) {
+                locMast.setLocSts(locSts);
+                locMast.setModiTime(now);
+                locMast.setModiUser(userId);
+                locMastRes = locCacheService.updateById(locMast);
+            }
         }
-        locMast.setLocSts(locSts);
-        locMast.setModiTime(now);
-        locMast.setModiUser(userId);
-        boolean locMastRes = locCacheService.updateById(locMast);
         if (!wrkMastRes || !locMastRes) {
             throw new CoolException("淇濆瓨鏁版嵁澶辫触");
         }
     }
 
+    @Override
+    public List<Task> selectToBeHistoryData() {
+        return this.baseMapper.selectToBeHistoryData();
+    }
+
 }

--
Gitblit v1.9.1