From 6f7a815b2d6e4f30e7ccf901b24d5103aaa72078 Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期一, 25 十二月 2023 10:23:08 +0800
Subject: [PATCH] Merge branch 'tzskasrs-1' of http://47.97.1.152:5880/r/zy-asrs into tzskasrs-1

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   98 +++++++++++++++++++++++++++++++++++-------------
 1 files changed, 71 insertions(+), 27 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 188d814..3680f51 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -284,6 +284,7 @@
             }
         }
 
+        ArrayList<String> outerLocs = new ArrayList<>();
         //妫�娴嬫槸鍚︿负娴呭簱浣�
         boolean sign=false;
         String th = "";
@@ -301,17 +302,32 @@
                     LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", outerLoc));
                     if (locMast != null) {
                         if (!locMast.getLocSts().equals("O") && !locMast.getLocSts().equals("R")) {
-                            sign = true;
-                            th = "搴撲綅鍙凤細" + locNo + " 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
-                            break;
+//                            sign = true;
+//                            th = "搴撲綅鍙凤細" + locNo + " 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
+//                            break;
+
+                            OutLocDto outLocDto = new OutLocDto();
+                            outLocDto.setLocNo(locMast.getLocNo());
+                            List<LocDetlDto> locDetlDtos1 = new ArrayList<>();
+                            for (LocDetl locDetl : locDetlService.selectByLocNo(locMast.getLocNo())) {
+                                LocDetlDto locDetlDto = new LocDetlDto();
+                                locDetlDto.setLocDetl(locDetl);
+                                locDetlDto.setCount(locDetl.getAnfme());
+                                locDetlDtos1.add(locDetlDto);
+                            }
+                            outLocDto.setLocDetlDtos(locDetlDtos1);
+                            if (!outerLocs.contains(locMast.getLocNo())) {
+                                dtos.add(outLocDto);
+                                outerLocs.add(locMast.getLocNo());
+                            }
                         }
                     }
                 }
             }
         }
-        if (sign){
-            throw new CoolException("鍑哄簱澶辫触锛�"+th);
-        }
+//        if (sign){
+//            throw new CoolException("鍑哄簱澶辫触锛�"+th);
+//        }
 
         //**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜**************
         HashMap<String, Object> tmpMap = new HashMap<>();
@@ -511,26 +527,53 @@
             }
             Mat mat = matService.selectByMatnr(locDto.getMatnr());
             assert mat != null;
-            WrkDetl wrkDetl = new WrkDetl();
-            wrkDetl.sync(mat);
-            wrkDetl.setZpallet(wrkMast.getBarcode());
-            wrkDetl.setIoTime(now);
-            wrkDetl.setWrkNo(workNo);
-            wrkDetl.setBatch(locDto.getBatch());
-            wrkDetl.setOrderNo(locDto.getOrderNo());
-            wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
-            wrkDetl.setAppeTime(now);
-            wrkDetl.setAppeUser(userId);
-            wrkDetl.setModiTime(now);
-            wrkDetl.setModiUser(userId);
-            wrkDetl.setSuppCode(locDto.getContainerCode());
-            wrkDetl.setThreeCode(locDto.getCsocode());
-            wrkDetl.setDeadTime(locDto.getIsoseq());
-            if (!wrkDetlService.insert(wrkDetl)) {
-                throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+
+            if (!BaseController.isJSON(locDto.getOrderNo())) {
+                WrkDetl wrkDetl = new WrkDetl();
+                wrkDetl.sync(mat);
+                wrkDetl.setZpallet(wrkMast.getBarcode());
+                wrkDetl.setIoTime(now);
+                wrkDetl.setWrkNo(workNo);
+                wrkDetl.setBatch(locDto.getBatch());
+                wrkDetl.setOrderNo(locDto.getOrderNo());
+                wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
+                wrkDetl.setAppeTime(now);
+                wrkDetl.setAppeUser(userId);
+                wrkDetl.setModiTime(now);
+                wrkDetl.setModiUser(userId);
+                wrkDetl.setSuppCode(locDto.getContainerCode());
+                wrkDetl.setThreeCode(locDto.getCsocode());
+                wrkDetl.setDeadTime(locDto.getIsoseq());
+                if (!wrkDetlService.insert(wrkDetl)) {
+                    throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+                }
+                //琛ヨ揣鍗曞垯鐢熸垚AGV鍏ュ簱閫氱煡妗�
+                generateAgvWaitpakin(wrkDetl);
+            }else {
+                List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
+                orderDtoList.forEach(orderDto -> {
+                    WrkDetl wrkDetl = new WrkDetl();
+                    wrkDetl.sync(mat);
+                    wrkDetl.setZpallet(wrkMast.getBarcode());
+                    wrkDetl.setIoTime(now);
+                    wrkDetl.setWrkNo(workNo);
+                    wrkDetl.setBatch(locDto.getBatch());
+                    wrkDetl.setOrderNo(orderDto.getOrderNo());
+                    wrkDetl.setAnfme(orderDto.getAnfme()); // 鏁伴噺
+                    wrkDetl.setAppeTime(now);
+                    wrkDetl.setAppeUser(userId);
+                    wrkDetl.setModiTime(now);
+                    wrkDetl.setModiUser(userId);
+                    wrkDetl.setSuppCode(locDto.getContainerCode());
+                    wrkDetl.setThreeCode(locDto.getCsocode());
+                    wrkDetl.setDeadTime(locDto.getIsoseq());
+                    if (!wrkDetlService.insert(wrkDetl)) {
+                        throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+                    }
+                    //琛ヨ揣鍗曞垯鐢熸垚AGV鍏ュ簱閫氱煡妗�
+                    generateAgvWaitpakin(wrkDetl);
+                });
             }
-            //琛ヨ揣鍗曞垯鐢熸垚AGV鍏ュ簱閫氱煡妗�
-            generateAgvWaitpakin(wrkDetl);
 
             // 淇敼璁㈠崟鏄庣粏
             if (!BaseController.isJSON(locDto.getOrderNo())) {
@@ -557,8 +600,9 @@
                         orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq());
                     }
 
-                    if(locAnfme > orderDetl.getAnfme()){
-                        orderAnfme = orderDetl.getAnfme();
+                    orderAnfme = orderDetl.getAnfme() - orderDetl.getQty();
+
+                    if(locAnfme > orderAnfme){
                         locAnfme -= orderAnfme;
                     }else {
                         orderAnfme = locAnfme;

--
Gitblit v1.9.1