From 6ce49b375bba4e1bbbe75c4dd891dc95cd9ff28f Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期五, 31 五月 2024 15:44:09 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java |   77 ++++++++++++++++++++++++++++++++------
 1 files changed, 65 insertions(+), 12 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 0c3227a..3faa438 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -578,6 +578,10 @@
         if(wrkMast.getIoType() == 110){
             agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
         }
+        if (wrkMast.getIoType() == 10) {
+            agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getSourceLocNo(),"O",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
+            agvLocMastService.updateLocStsByLocNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(wrkMast.getLocNo()));
+        }
 
     }
 
@@ -647,7 +651,10 @@
                 }
             }
             // 鑷姩璋冩嫧鍑哄簱鍙栨秷
-        } else if(wrkMast.getIoType() == 108 || wrkMast.getIoType() == 111) {
+        } else if(wrkMast.getIoType() == 108 || wrkMast.getIoType() == 111 || wrkMast.getIoType() == 112) {
+            if (wrkMast.getIoType() == 112) {
+                throw new CoolException("褰撳墠浣滀笟涓嶈兘鍙栨秷锛�");
+            }
             // 婧愬簱浣�
             String locNo = wrkMast.getSourceLocNo();
             // 鐩爣搴撲綅
@@ -658,9 +665,15 @@
                     agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null);
                 }
             } else {
-                if (wrkMast.getWrkSts() != 22) {
-                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo,"O","",wrkMast.getWhsType().shortValue());
+                if (wrkMast.getWrkSts() != 207L && wrkMast.getWrkSts() != 205L) {
+                    if (wrkMast.getWrkSts() != 22) {
+                        agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo,"O","",wrkMast.getWhsType().shortValue());
+                    }
+                } else {
+                    throw new CoolException("褰撳墠浣滀笟涓嶈兘鍙栨秷锛�");
                 }
+
+
             }
 
             List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
@@ -679,20 +692,39 @@
             //鐩爣绔欑偣
             String devNo = wrkMast.getLocNo();
             if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 109) {
-                agvLocMastService.updateLocStsByLocNo(locNo,"D",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
-            } else {
-                agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
-            }
-            if (wrkMast.getIoType() == 109){
-                if (Cools.isEmpty(wrkMast.getLocNo())) {
+                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 {
-                    agvLocMastService.updateLocStsByLocNo(devNo,"O","",(short)getContainerTypeByloc(devNo));
+                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
+                    if (!Cools.isEmpty(devNo)) {
+                        agvLocMastService.updateLocStsByLocNo(devNo,"0","",null);
+                    }
                 }
 
-            }else {
+            } else  {
                 agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null);
+                agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
             }
+
         }
 
         if(wrkMast.getIoType() != 1 && wrkMast.getIoType() != 10 && wrkMast.getIoType()!=111 && wrkMast.getIoType()!=108 && wrkMast.getIoType() != 12){
@@ -734,11 +766,11 @@
         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());
@@ -949,6 +981,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