From 5127f46eedeede5cbfeae7a4908ddac11d332494 Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期三, 11 六月 2025 17:20:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wz-JiAo-wms' into wz-JiAo-wms

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  110 ++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 92 insertions(+), 18 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 fe07b72..9553b17 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -91,7 +91,11 @@
         // 妫�绱㈠簱浣�
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
         List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
-        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matnrs, locTypeDto, 0);
+//        List<String> batchs = param.getList().stream().map(FullStoreParam.MatCodeStore::getBatch).distinct().collect(Collectors.toList());
+        StartupDto dto = commonService.getLocNo(1, param.getDevpNo(), matnrs.get(0), null, null,locTypeDto);
+        if (Cools.isEmpty(dto)){
+            throw new CoolException("鏌ヨ搴撲綅澶辫触锛侊紒==銆媠tartupFullPutStore ==銆� commonService.getLocNo");
+        }
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = dto.getWorkNo();
         // 鐢熸垚宸ヤ綔妗�
@@ -168,8 +172,24 @@
             }
         }
         if (!locDetlDtos.isEmpty()) {
-            // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
-            stockOut(staNo, locDetlDtos, null, userId);
+            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
+            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                    .eq("lev1", locMast.getLev1())
+                    .orderBy("bay1",false));
+            for (LocMast locMast1 : locMasts) {
+                if (locMast1.getLocNo().equals(locMast.getLocNo())) {
+                    break;
+                }
+                if (locMast1.getLocSts().equals("D") || locMast1.getLocSts().equals("F")) {
+                    throw new CoolException(locMast.getLocNo()+"搴撲綅鍫靛锛岀姝㈠嚭搴�");
+                }
+            }
+            if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ){
+                // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
+                stockOut(staNo, locDetlDtos, null, userId);
+            }else {
+                throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+            }
         } else {
             throw new CoolException("搴撳瓨涓嶅瓨鍦�");
         }
@@ -223,7 +243,7 @@
             WrkMast wrkMast = new WrkMast();
             wrkMast.setWrkNo(workNo);
             wrkMast.setIoTime(now);
-            wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+            wrkMast.setWrkSts(0L); // 宸ヤ綔鐘舵�侊細0.寰呮帴鏀�
             wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
             wrkMast.setIoPri(13D); // 浼樺厛绾э細13
             wrkMast.setCrnNo(locMast.getCrnNo());
@@ -366,7 +386,7 @@
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
-        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto, 0);
+        StartupDto dto = commonService.getLocNo( 10, devpNo, null,null,null, locTypeDto);
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
@@ -431,6 +451,24 @@
             if (Cools.isEmpty(locMast)) {
                 throw new CoolException(locNo+"搴撲綅涓嶅瓨鍦�");
             }
+            if (!locMast.getLocSts().equals("D")){
+                throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+            }
+            boolean res1 = false;
+            if(param.getOutSite()==100){
+                res1 = true;
+            }
+            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                    .eq("lev1", locMast.getLev1())
+                    .orderBy("bay1",res1));
+            for (LocMast locMast1 : locMasts) {
+                if (locMast1.getLocNo().equals(locMast.getLocNo())) {
+                    break;
+                }
+                if (locMast1.getLocSts().equals("D") || locMast1.getLocSts().equals("F")) {
+                    throw new CoolException(locNo+"搴撲綅鍫靛锛岀姝㈠嚭搴�");
+                }
+            }
             // 鑾峰彇婧愮珯
             Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                     .eq("type_no", 110)
@@ -446,7 +484,7 @@
             WrkMast wrkMast = new WrkMast();
             wrkMast.setWrkNo(workNo);
             wrkMast.setIoTime(now);
-            wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+            wrkMast.setWrkSts(0L); // 宸ヤ綔鐘舵�侊細0.寰呭彂閫�
             wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
             wrkMast.setIoPri(10D);
             wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
@@ -556,8 +594,13 @@
             }
         }
         if (!locDetlDtos.isEmpty()) {
-            // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
-            stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId);
+            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
+            if (locMast.getLocSts().equals("F")){
+                // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
+                stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId);
+            }else {
+                throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+            }
         } else {
             throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
         }
@@ -574,6 +617,9 @@
         LocMast loc = locMastService.selectById(locNo);
         if (Cools.isEmpty(loc)){
             throw new CoolException("鏈壘鍒板簱浣�");
+        }
+        if (!loc.getLocSts().equals("O") || (!sourceLoc.getLocSts().equals("F") && !sourceLoc.getLocSts().equals("D"))){
+            throw new CoolException("搴撲綅鐘舵�佸凡鏀瑰彉");
         }
         if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) {
             throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�");
@@ -654,12 +700,13 @@
         if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) {
             throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
         }
-        // 鍏ュ簱 + 搴撲綅杞Щ
-        if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) {
-            wrkMast.setWrkSts(4L);
         // 鍑哄簱
-        } else if (wrkMast.getWrkSts() > 10) {
+        if (wrkMast.getIoType() > 100) {
             wrkMast.setWrkSts(14L);
+            // 鍏ュ簱 + 搴撲綅杞Щ
+        } else if (wrkMast.getIoType()==1 || wrkMast.getIoType()==10 || wrkMast.getIoType()==11) {
+            wrkMast.setWrkSts(4L);
+
         }
         Date now = new Date();
         wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
@@ -805,7 +852,7 @@
         String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
         String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
         // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
-        if (wrkMast.getWrkSts() < 4) {
+        if (wrkMast.getIoType() < 100) {
             locNo = wrkMast.getLocNo();
             locSts = "O";
 
@@ -822,10 +869,10 @@
                 locMastService.updateById(locMast);
             }
         // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
-        } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
+        } else if (wrkMast.getIoType() > 100 && wrkMast.getWrkSts() != 14) {
             locNo = wrkMast.getSourceLocNo();
             // 鍑哄簱 ===>> F.鍦ㄥ簱
-            if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
+            if (wrkMast.getIoType() == 101) {
                 locSts = "F";
             // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
             } else if (wrkMast.getIoType() == 110) {
@@ -855,9 +902,9 @@
                     waitPakin.setIoStatus("N");
                     waitPakin.setLocNo("");
                     waitPakinService.update(waitPakin, new EntityWrapper<WaitPakin>()
-                            .eq("order_no", waitPakin.getOrderNo())
-                            .eq("matnr", waitPakin.getMatnr())
-                            .eq("batch", waitPakin.getBatch()));
+//                            .eq("order_no", waitPakin.getOrderNo())
+                            .eq("zpallet",waitPakin.getZpallet())
+                            .eq("matnr", waitPakin.getMatnr()));
                 }
             }
         }
@@ -1106,4 +1153,31 @@
         return targetLoc.getLocNo();
     }
 
+    @Override
+    @Transactional
+    public void turnMatLocDetl(EmptyPlateOutParam param, Long userId) {
+        Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("id", param.getMatId()));
+        if (Cools.isEmpty(mat)){
+            throw new CoolException("鐩爣搴撲綅鍟嗗搧缂栫爜鏈夎锛�");
+        }
+        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getLocDetls().get(0).getMatnr()));
+        if (Cools.isEmpty(locDetls) || locDetls.size()<1){
+            throw new CoolException("寰呬慨鏀瑰晢鍝佹棤搴撳瓨锛屾棤闇�淇敼锛�  鍝佸彿锛�"+param.getLocDetls().get(0).getMatnr());
+        }
+        try {
+            locDetlService.updateMatTurn(param.getLocDetls().get(0).getMatnr(),mat.getMatnr());
+        }catch (Exception e){
+            throw new CoolException("瀵规暟鎹簱淇敼鍑洪敊锛�");
+        }
+        for (LocDetl locDetl:locDetls){
+            // 淇濆瓨璋冩暣璁板綍
+            AdjDetl adjDetl = new AdjDetl();
+            adjDetl.setLocNo(locDetl.getLocNo());
+            adjDetl.setMatnr(mat.getMatnr());
+            adjDetl.setMatnrOld(param.getLocDetls().get(0).getMatnr());
+            adjDetl.setAdjQty(locDetl.getAnfme());
+            adjDetlService.save(adjDetl, userId);
+        }
+    }
+
 }

--
Gitblit v1.9.1