From c27d8ec43a69c8251690030ebb4dc87cabe15c71 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 12 八月 2024 14:16:56 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |  125 ++++++++++++++++++++++++-----------------
 1 files changed, 74 insertions(+), 51 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 869bbeb..d46803f 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -992,25 +992,30 @@
         if (Cools.isEmpty(param)) {
             throw new CoolException("璇锋眰鍙傛暟鏈夎锛�" + param);
         }
-        int zpalletCount = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()));
-        if (zpalletCount > 0) {
-            throw new CoolException("搴撳瓨鎵樼洏鐮佸凡瀛樺湪锛�" + param.getBarcode());
-        }
+        if (!Cools.isEmpty(param.getBarcode())) {
+            int zpalletCount = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()));
+            if (zpalletCount > 0) {
+                throw new CoolException("搴撳瓨鎵樼洏鐮佸凡瀛樺湪锛�" + param.getBarcode());
+            }
 
-        int barcodeCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode()));
-        if (barcodeCount > 0) {
-            throw new CoolException("宸ヤ綔妗e凡瀛樺湪璇ユ墭鐩樼爜锛�" + param.getBarcode());
+            int barcodeCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode()));
+            if (barcodeCount > 0) {
+                throw new CoolException("宸ヤ綔妗e凡瀛樺湪璇ユ墭鐩樼爜锛�" + param.getBarcode());
+            }
         }
-
         LocTypeDto locTypeDto = new LocTypeDto();
         locTypeDto.setLocType1((short)1);
-
+        int iotype = 1;
+        if (Cools.isEmpty(param.getMatList())) {
+            iotype = 10;
+        }
         // 鏍规嵁婧愮珯鐐瑰鎵惧簱浣�
 //        StartupDto dto = commonService.getLocNo(1, 1, param.getPalletizingNo(), null,null,null, locTypeDto);
-        StartupDto dto = commonService.getLocNo(1, param.getPalletizingNo(), locTypeDto);
+        StartupDto dto = commonService.getLocNo(iotype, param.getPalletizingNo(), locTypeDto,0);
 
         // 杩斿洖GWCS鐩爣淇℃伅
         pushStaNoToGwcs(param.getPalletizingNo(),dto.getStaNo(),dto.getWorkNo());
+
 
         int workNo = dto.getWorkNo();
         Date now = new Date();
@@ -1019,7 +1024,7 @@
         wrkMast.setWrkNo(workNo);
         wrkMast.setIoTime(new Date());
         wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細璁惧涓婅蛋
-        wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+        wrkMast.setIoType(iotype); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
         wrkMast.setIoPri(13D); // 浼樺厛绾�
         wrkMast.setCrnNo(dto.getCrnNo());
         wrkMast.setSourceStaNo(param.getPalletizingNo());
@@ -1040,46 +1045,49 @@
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
         }
 
-        List<GwmsGenerateInventoryDto.MatList> matList = param.getMatList();
-        for (GwmsGenerateInventoryDto.MatList obj :matList) {
-            WrkDetl wrkDetl = new WrkDetl();
-            wrkDetl.setWrkNo(wrkMast.getWrkNo());
-            obj.getRolls().forEach(roll -> {
-                Mat mat = matService.selectByMatnr(roll.getSpecs());
-                if (mat == null) {
-                    mat = new Mat();
-                    mat.setTagId(6L);
-                    mat.setMatnr(roll.getSpecs());
-                    mat.setMaktx(roll.getSpecs());
-                    mat.setSpecs(roll.getSpecs());
-                    mat.setStatus(1);
-                    mat.setCreateTime(now);
-                    mat.setUpdateTime(now);
-                    if (!matService.insert(mat)) {
-                        throw new CoolException("鐗╂枡瀵煎叆澶辫触锛�");
-                    }
-                }
+        if (!Cools.isEmpty(param.getMatList())) {
+            List<GwmsGenerateInventoryDto.MatList> matList = param.getMatList();
+            for (GwmsGenerateInventoryDto.MatList obj :matList) {
+                WrkDetl wrkDetl = new WrkDetl();
                 wrkDetl.setWrkNo(wrkMast.getWrkNo());
-                wrkDetl.setMatnr(roll.getSpecs()); // 瑙勬牸
-                wrkDetl.setMaktx(roll.getSpecs()); //瑙勬牸
-                wrkDetl.setBatch(roll.getBoxNo()); // 绠卞彿
-                wrkDetl.setModel(roll.getRollNo()); // 鍗峰彿
-                wrkDetl.setBrand(""); // 鏈ㄧ绫诲瀷
-                wrkDetl.setZpallet(param.getBarcode()); // 鎵樼洏鍚�
-                wrkDetl.setOrigin(obj.getBoxPos()); // 鏈ㄧ鍦ㄦ墭鐩樹綅缃�
-                wrkDetl.setWeight(roll.getNetWeight()); // 鍑�閲�
-                wrkDetl.setVolume(roll.getGrossWeight()); // 姣涢噸
-                wrkDetl.setPrice(roll.getLength());
-                wrkDetl.setSpecs(String.valueOf(roll.getSplices()));
-                wrkDetl.setAnfme(1.0);
-                wrkDetl.setIoTime(now);
-                wrkDetl.setAppeTime(now);
-                wrkDetl.setModiTime(now);
-                if (!wrkDetlService.insert(wrkDetl)) {
-                    throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
-                }
-            });
+                obj.getRolls().forEach(roll -> {
+//                Mat mat = matService.selectByMatnr(roll.getSpecs());
+//                if (mat == null) {
+//                    mat = new Mat();
+//                    mat.setTagId(6L);
+//                    mat.setMatnr(roll.getSpecs());
+//                    mat.setMaktx(roll.getSpecs());
+//                    mat.setSpecs(roll.getSpecs());
+//                    mat.setStatus(1);
+//                    mat.setCreateTime(now);
+//                    mat.setUpdateTime(now);
+//                    if (!matService.insert(mat)) {
+//                        throw new CoolException("鐗╂枡瀵煎叆澶辫触锛�");
+//                    }
+//                }
+                    wrkDetl.setWrkNo(wrkMast.getWrkNo());
+                    wrkDetl.setMatnr(roll.getSpecs()); // 瑙勬牸
+                    wrkDetl.setMaktx(roll.getSpecs()); //瑙勬牸
+                    wrkDetl.setBatch(roll.getBoxNo()); // 绠卞彿
+                    wrkDetl.setModel(roll.getRollNo()); // 鍗峰彿
+                    wrkDetl.setBrand(obj.getPackageGroupNo()); // 鍖呰缁勫彿
+                    wrkDetl.setZpallet(param.getBarcode()); // 鎵樼洏鍚�
+                    wrkDetl.setOrigin(obj.getBoxPos()); // 鏈ㄧ鍦ㄦ墭鐩樹綅缃�
+                    wrkDetl.setWeight(roll.getNetWeight()); // 鍑�閲�
+                    wrkDetl.setVolume(roll.getGrossWeight()); // 姣涢噸
+                    wrkDetl.setPrice(roll.getLength());
+                    wrkDetl.setSpecs(String.valueOf(roll.getSplices()));
+                    wrkDetl.setAnfme(1.0);
+                    wrkDetl.setIoTime(now);
+                    wrkDetl.setAppeTime(now);
+                    wrkDetl.setModiTime(now);
+                    if (!wrkDetlService.insert(wrkDetl)) {
+                        throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+                    }
+                });
+            }
         }
+
 
         // 鏇存柊鐩爣搴撲綅鐘舵��
         LocMast locMast = locMastService.selectById(dto.getLocNo());
@@ -1237,17 +1245,32 @@
         return "鍑哄簱缁撴灉涓婃姤鎴愬姛";
     }
 
+    @Autowired
+    private BasCrnpService basCrnpService;
+
     @Override
     @Transactional
     public String emptyOutLoc(GhjtApiParam param) {
 //        3102/3009/3008/3006/3003/3002鈫�3047/3112
+        // 鑾峰彇妯″紡涓虹數鑴戞ā寮忥紝鏃犱换鍔$殑鍫嗗灈鏈哄垪琛�:闃叉鍒嗛厤鍒板爢鍨涙満涓嶅彲鐢�
+        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts",3)
+                .eq("wrk_no",0));
+        if (basCrnps.isEmpty()) {
+            // 閮芥湁浠诲姟鍒欒幏鍙栫數鑴戞ā寮忕殑鍫嗗灈鏈哄垪琛�
+            basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts",3));
+        }
+        if (basCrnps.isEmpty()) {
+            throw new CoolException("娌℃湁鍙敤鍫嗗灈鏈�,鍫嗗灈鏈哄仠姝㈡垨寮傚父");
+        }
+        // 鍙敤鍫嗗灈鏈哄垪琛�
+        List<Integer> crnNoList = basCrnps.stream().map(BasCrnp::getCrnNo).collect(Collectors.toList());
         // 瀵绘壘绌烘墭鐩樺簱浣嶏紝鍏堟壘娴呭簱浣�
         List<LocMast> locMasts;
             locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts","D")
-                    .orderAsc(Arrays.asList("row1","lev1","bay1")).in("row1",3,4,6,7,10,11,14,15,18,19,22,23));
+                    .orderAsc(Arrays.asList("row1","lev1","bay1")).in("crn_no",crnNoList).in("row1",3,4,6,7,10,11,14,15,18,19,22,23));
             if (locMasts.isEmpty()) {
                 locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts","D")
-                        .orderAsc(Arrays.asList("row1","lev1","bay1")).in("row1",1,4,5,8,9,12,13,16,17,20,21,24));
+                        .orderAsc(Arrays.asList("row1","lev1","bay1")).in("crn_no",crnNoList).in("row1",1,4,5,8,9,12,13,16,17,20,21,24));
             }
 
         if (locMasts.isEmpty()) {

--
Gitblit v1.9.1