From 52433e1e316923c8fc26e2742e9943897c9271e7 Mon Sep 17 00:00:00 2001
From: tqs <56479841@qq.com>
Date: 星期五, 31 五月 2024 08:49:26 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java |  108 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 102 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
index fa57596..b71cbd0 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -561,7 +561,9 @@
 //            throw new CoolException("鐩爣搴撲綅鎴栬�呮簮搴撲綅鏆傛湭鍒嗛厤锛屾棤娉曞彇娑�");
 //        }
         //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚
-        agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205);
+        //agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205);
+
+        agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"鎵嬪姩瀹屾垚",userId);
 
         //鍑哄簱浠诲姟 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 107.鐩樼偣鍑哄簱
         if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107 || wrkMast.getIoType() == 111){
@@ -597,7 +599,30 @@
             //鐩爣搴撲綅
             String locNo = wrkMast.getLocNo();
             agvLocMastService.updateLocStsByLocNo(locNo,"O","",null);
-            agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
+            if (wrkMast.getIoType() == 58) {
+                agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
+            } else {
+                agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",wrkMast.getWhsType().shortValue());
+            }
+
+            if (wrkMast.getIoType() == 1) {
+                List<AgvWaitPakin> agvWaitPakins = agvWaitPakinService.selectByContainerCode2(wrkMast.getBarcode());
+
+                for (AgvWaitPakin agvWaitPakin : agvWaitPakins) {
+                    // 鍥炴粴鍏ュ簱璁㈠崟
+                    OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvWaitPakin.getThreeCode()).eq("matnr", agvWaitPakin.getMatnr()).eq("order_no", agvWaitPakin.getOrderNo()));
+                    orderDetl.setQty(orderDetl.getQty() - agvWaitPakin.getAnfme());
+                    if (!orderDetlService.updateById(orderDetl)) {
+                        throw new CoolException("璁㈠崟鍥炴粴澶辫触");
+                    }
+                    // 鍒犻櫎缁勬墭妗�
+                    if (!agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",agvWaitPakin.getSuppCode()).eq("matnr",agvWaitPakin.getMatnr()).eq("three_code",agvWaitPakin.getThreeCode()))) {
+                        throw new CoolException("鍏ュ簱閫氱煡妗e彇娑堝け璐�");
+                    }
+                }
+
+
+            }
 
 
             // 绉诲簱鍙栨秷
@@ -609,6 +634,18 @@
             String targetLocNo = wrkMast.getLocNo();
             agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
             agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null);
+            AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", targetLocNo));
+            // 褰撳墠浠诲姟鏄法灞傜Щ搴�  涓旂洰鏍囨ゼ灞傛槸1妤肩殑 鍥炴粴璋冩嫧鍗�
+            if (wrkMast.getIoType() == 12 && locMast.getFloor() == 1) {
+                List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
+                for (AgvLocDetl agvLocDetl : agvLocDetls) {
+                    OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("order_no", "DB" + agvLocDetl.getOrderNo()));
+                    orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme());
+                    if (!orderDetlService.updateById(orderDetl)) {
+                        throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+                    }
+                }
+            }
             // 鑷姩璋冩嫧鍑哄簱鍙栨秷
         } else if(wrkMast.getIoType() == 108 || wrkMast.getIoType() == 111) {
             // 婧愬簱浣�
@@ -642,14 +679,42 @@
             //鐩爣绔欑偣
             String devNo = wrkMast.getLocNo();
             if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 109) {
-                agvLocMastService.updateLocStsByLocNo(locNo,"D",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
-            } else {
+                if (wrkMast.getIoType() == 109){
+                    // 婧愬簱浣嶆槸绔欑偣
+                    if ("DB".equals(locNo.substring(0,2))) {
+                        agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
+                        agvLocMastService.updateLocStsByLocNo(devNo,"O","",null);
+                    // 婧愬簱浣嶆槸搴撲綅 鐩爣搴撲綅鏄珯鐐�
+                    } else if ("DB".equals(devNo.substring(0,2))) {
+                        agvLocMastService.updateLocStsByLocNo(locNo,"D",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
+                        agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo,"O","",null);
+                    // 婧愬簱浣嶆槸搴撲綅
+                    } else {
+                        agvLocMastService.updateLocStsByLocNo(locNo,"D",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
+                        agvLocMastService.updateLocStsByLocNo(devNo,"O","",null);
+                    }
+
+                }else {
+                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null);
+                }
+            } else if (wrkMast.getIoType() == 113) {
+                if (wrkMast.getWrkSts() == 212 || wrkMast.getWrkSts() == 213) {
+                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
+                } else {
+                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
+                    if (!Cools.isEmpty(devNo)) {
+                        agvLocMastService.updateLocStsByLocNo(devNo,"0","",null);
+                    }
+                }
+
+            } else  {
+                agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null);
                 agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
             }
-            agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null);
+
         }
 
-        if(wrkMast.getIoType() != 1 && wrkMast.getIoType() != 10){
+        if(wrkMast.getIoType() != 1 && wrkMast.getIoType() != 10 && wrkMast.getIoType()!=111 && wrkMast.getIoType()!=108 && wrkMast.getIoType() != 12){
             //璁㈠崟鍥炴粴
             //List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
             List<AgvWrkDetl> agvWrkDetlList1 = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
@@ -674,15 +739,25 @@
                 }
             });
         }
+        wrkMast.setModiUser(userId);
+        wrkMast.setModiTime(new Date());
+        if (type == 2) {
+            wrkMast.setManuType("鎵嬪姩鍙栨秷锛坅gv锛�");
+        } else {
+            wrkMast.setManuType("鎵嬪姩鍙栨秷");
+        }
+
 
         //淇濆瓨宸ヤ綔妗d互鍙婃槑缁�
         agvWrkMastLogService.save(wrkMast);
         agvWrkDetlLogService.save(wrkMast.getWrkNo());
 
+
         //鍒犻櫎宸ヤ綔妗d互鍙婃槑缁�
         if(!agvWrkMastService.deleteByWrkNo(wrkMast.getWrkNo()) || !agvWrkDetlService.deleteByWrkNo(wrkMast.getWrkNo())){
             throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�");
         }
+
         if (type == 2) {
             //璋冪敤agv鍙栨秷浠诲姟鎺ュ彛
             agvWrkMastService.callCancelTask(wrkMast.getWrkNo());
@@ -893,6 +968,27 @@
         }
     }
 
+    @Override
+    @Transactional
+    public void changeType(String workNo, Long userId) {
+        AgvWrkMast wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo));
+        if (Cools.isEmpty(wrkMast)) {
+            throw new CoolException("鏆傛棤\n" + workNo + "\n宸ヤ綔");
+        }
+        if (wrkMast.getWrkSts() != 22) {
+            throw new CoolException("褰撳墠浠诲姟宸插垎閰嶇洰鏍囧簱浣嶏紝鏆備笉鏀寔璋冩暣");
+        }
+        if (wrkMast.getIoType() == 108) {
+            wrkMast.setIoType(111);
+            agvWrkMastService.update(wrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo));
+        } else if(wrkMast.getIoType() == 111) {
+            wrkMast.setIoType(108);
+            agvWrkMastService.update(wrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo));
+        }
+
+
+    }
+
     private void addInQty(String devno){
         AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devno);
         if(!Cools.isEmpty(agvBasDevp)){

--
Gitblit v1.9.1