From d417e332b39e7da99f637e94ebacf199fb158a72 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期五, 31 五月 2024 18:16:50 +0800
Subject: [PATCH] #1

---
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java |  396 ++++++++++++++++++++++++++++++++------------------------
 1 files changed, 225 insertions(+), 171 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 7d9fa2e..bfe79c1 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -66,6 +66,8 @@
     private AgvWrkMastLogService agvWrkMastLogService;
     @Autowired
     private AgvWrkDetlLogService agvWrkDetlLogService;
+    @Autowired
+    private WrkMastExecuteService wrkMastExecuteService;
 
 
     /*
@@ -568,7 +570,23 @@
         //} else {
         //    agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"鎵嬪姩瀹屾垚",userId);
         //}
-        agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"鎵嬪姩瀹屾垚",userId);
+
+        if (wrkMast.getIoType()==121){
+            if (wrkMast.getWrkSts()<12L){
+                agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"鎵嬪姩瀹屾垚",userId);
+            }else if (wrkMast.getWrkSts()==12L){
+                agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),12,"鎵嬪姩瀹屾垚",userId);
+
+                WrkMastExecute wrkMastExecute = wrkMastExecuteService.selectOne(new EntityWrapper<WrkMastExecute>().eq("wrk_no", workNo));
+                wrkMastExecute.setWrkSts(3L);
+                wrkMastExecute.setNowPosition(3);
+                wrkMastExecuteService.updateById(wrkMastExecute);
+            }
+            return;
+
+        } else {
+            agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"鎵嬪姩瀹屾垚",userId);
+        }
 
         //鍑哄簱浠诲姟 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 107.鐩樼偣鍑哄簱
         if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107 || wrkMast.getIoType() == 111){
@@ -596,192 +614,228 @@
         if (Cools.isEmpty(wrkMast)){
             throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
         }
-        //鎷f枡鍏ュ簱 鐩樼偣鍏ュ簱涓嶅彲鍙栨秷
-        if(wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57){
-            throw new CoolException("褰撳墠浠诲姟涓嶅彲鍙栨秷");
-        }
+        if (wrkMast.getIoType()==121){
+            if (wrkMast.getWrkSts()<12L){
+                //婧愬簱浣�
+                String locNo = wrkMast.getSourceLocNo();
 
-        //鍏ュ簱鍙栨秷
-        if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10 || wrkMast.getIoType() == 58){
-            //婧愮珯鐐�
-            String devNo = wrkMast.getSourceLocNo();
-            //鐩爣搴撲綅
-            String locNo = wrkMast.getLocNo();
-            agvLocMastService.updateLocStsByLocNo(locNo,"O","",null);
-            if (wrkMast.getIoType() == 58) {
-                agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
-            } else {
-                agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",wrkMast.getWhsType().shortValue());
-            }
+                // 鐩爣搴撲綅
+                String targetLocNo = wrkMast.getLocNo();
+                agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
+                agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null);
 
-            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彇娑堝け璐�");
-                    }
-                }
-
-
-            }
-
-
-            // 绉诲簱鍙栨秷
-        } else if( wrkMast.getIoType() == 11 || wrkMast.getIoType() == 12) {
-            //婧愬簱浣�
-            String locNo = wrkMast.getSourceLocNo();
-
-            // 鐩爣搴撲綅
-            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 || wrkMast.getIoType() == 112) {
-            if (wrkMast.getIoType() == 112) {
-                throw new CoolException("褰撳墠浣滀笟涓嶈兘鍙栨秷锛�");
-            }
-            // 婧愬簱浣�
-            String locNo = wrkMast.getSourceLocNo();
-            // 鐩爣搴撲綅
-            String targetLocNo = wrkMast.getLocNo();
-            agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo),"",(short)0);
-            if (wrkMast.getIoType() == 108) {
-                if (wrkMast.getWrkSts() != 22) {
-                    agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null);
-                }
-            } else {
-                if (wrkMast.getWrkSts() != 207L && wrkMast.getWrkSts() != 205L) {
-                    if (wrkMast.getWrkSts() != 22) {
-                        agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo,"O","",wrkMast.getWhsType().shortValue());
-                    }
+                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());
+                }
+            }else {
+                throw new CoolException("褰撳墠浠诲姟姝e湪鎵ц锛屼笉鍙彇娑�");
+            }
+        }else {
+            //鎷f枡鍏ュ簱 鐩樼偣鍏ュ簱涓嶅彲鍙栨秷
+            if(wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57){
+                throw new CoolException("褰撳墠浠诲姟涓嶅彲鍙栨秷");
+            }
+
+            //鍏ュ簱鍙栨秷
+            if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10 || wrkMast.getIoType() == 58){
+                //婧愮珯鐐�
+                String devNo = wrkMast.getSourceLocNo();
+                //鐩爣搴撲綅
+                String locNo = wrkMast.getLocNo();
+                agvLocMastService.updateLocStsByLocNo(locNo,"O","",null);
+                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彇娑堝け璐�");
+                        }
+                    }
+
+
+                }
+
+
+                // 绉诲簱鍙栨秷
+            } else if( wrkMast.getIoType() == 11 || wrkMast.getIoType() == 12) {
+                //婧愬簱浣�
+                String locNo = wrkMast.getSourceLocNo();
+
+                // 鐩爣搴撲綅
+                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 || wrkMast.getIoType() == 112) {
+                if (wrkMast.getIoType() == 112) {
                     throw new CoolException("褰撳墠浣滀笟涓嶈兘鍙栨秷锛�");
                 }
-
-
-            }
-
-            List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
-            // 鏇存柊璁㈠崟
-            for (AgvLocDetl agvLocDetl : agvLocDetls) {
-                OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()));
-                orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme());
-                if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no","DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){
-                    throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr());
-                }
-            }
-            //鍑哄簱鍙栨秷
-        } else {
-            //婧愬簱浣�
-            String locNo = wrkMast.getSourceLocNo();
-            //鐩爣绔欑偣
-            String devNo = wrkMast.getLocNo();
-            if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 109) {
-                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);
+                // 婧愬簱浣�
+                String locNo = wrkMast.getSourceLocNo();
+                // 鐩爣搴撲綅
+                String targetLocNo = wrkMast.getLocNo();
+                agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo),"",(short)0);
+                if (wrkMast.getIoType() == 108) {
+                    if (wrkMast.getWrkSts() != 22) {
+                        agvLocMastService.updateLocStsByLocNo(targetLocNo,"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);
+                    if (wrkMast.getWrkSts() != 207L && wrkMast.getWrkSts() != 205L) {
+                        if (wrkMast.getWrkSts() != 22) {
+                            agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo,"O","",wrkMast.getWhsType().shortValue());
+                        }
+                    } else {
+                        throw new CoolException("褰撳墠浣滀笟涓嶈兘鍙栨秷锛�");
                     }
+
+
                 }
 
-            } 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){
-            //璁㈠崟鍥炴粴
-            //List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
-            List<AgvWrkDetl> agvWrkDetlList1 = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
-            agvWrkDetlList1.forEach(agvWrkDetl -> {
-
-                if(!Cools.isEmpty(agvWrkDetl.getOrderNo())){
-                    String orderNo = agvWrkDetl.getOrderNo();
-                    if(orderNo.contains("{")){
-                        JSONArray orderArray = JSON.parseArray(orderNo);
-                        for (Object o : orderArray){
-                            JSONObject jsonobject = (JSONObject) o;
-                            OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(jsonobject.get("orderNo").toString(),agvWrkDetl.getMatnr(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
-                            orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
-                            orderDetlService.updateById(orderDetl);
+                List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
+                // 鏇存柊璁㈠崟
+                for (AgvLocDetl agvLocDetl : agvLocDetls) {
+                    OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()));
+                    orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme());
+                    if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no","DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){
+                        throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr());
+                    }
+                }
+                //鍑哄簱鍙栨秷
+            } else {
+                //婧愬簱浣�
+                String locNo = wrkMast.getSourceLocNo();
+                //鐩爣绔欑偣
+                String devNo = wrkMast.getLocNo();
+                if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 109) {
+                    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 {
-                        OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(agvWrkDetl.getOrderNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
-                        orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
-                        orderDetlService.updateById(orderDetl);
+                        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));
                 }
-            });
+
+            }
+
+            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()));
+                agvWrkDetlList1.forEach(agvWrkDetl -> {
+
+                    if(!Cools.isEmpty(agvWrkDetl.getOrderNo())){
+                        String orderNo = agvWrkDetl.getOrderNo();
+                        if(orderNo.contains("{")){
+                            JSONArray orderArray = JSON.parseArray(orderNo);
+                            for (Object o : orderArray){
+                                JSONObject jsonobject = (JSONObject) o;
+                                OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(jsonobject.get("orderNo").toString(),agvWrkDetl.getMatnr(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
+                                orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
+                                orderDetlService.updateById(orderDetl);
+                            }
+
+                        }else {
+                            OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(agvWrkDetl.getOrderNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
+                            orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
+                            orderDetlService.updateById(orderDetl);
+                        }
+                    }
+                });
+            }
+            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());
+            }
         }
-        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());
-        }
-
-
     }
 
     /*

--
Gitblit v1.9.1