From 53bbc5731dd8c78490a27211aea331ff1360ed4e Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期六, 28 六月 2025 09:34:19 +0800
Subject: [PATCH] wms功能完善

---
 src/main/java/com/zy/common/service/CommonService.java |   67 +++++++++++++++++++++------------
 1 files changed, 43 insertions(+), 24 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index fc0c51e..54280cc 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -316,11 +316,7 @@
                               locMast = locMastList.get(0);
                           } else { // 濂囨暟锛屼笉鍙互鍏ュ簱
                               // 鑷姩缁欏墠闈换鍔¤ˉ灏炬《淇″彿
-                              if (wrkMast.getCtnType() == 0) {
-                                  wrkMast.setCtnType(1);
-                                  wrkMastService.updateById(wrkMast);
-                                  log.info("鑷姩琛ュ熬妗朵俊鍙锋垚鍔�,浠诲姟鍙凤細{}",wrkMast.getCtnType());
-                              }
+                              wrkMastService.updateCtnType(wrkMast);
                               log.error("-----涓庡墠闈㈡《绫诲瀷涓嶄竴鏍凤紝鍓嶉潰妗朵笉鏄熬妗讹紝鍓嶉潰璇ユ《绫诲瀷浠诲姟鏁颁笉鏄伓鏁帮紝涓嶈兘鍏ュ簱----");
                               throw new CoolException("涓庡墠闈㈡《绫诲瀷涓嶄竴鏍凤紝鍓嶉潰妗朵笉鏄熬妗讹紝鍓嶉潰璇ユ《绫诲瀷浠诲姟鏁颁笉鏄伓鏁帮紝涓嶈兘鍏ュ簱");
                           }
@@ -338,31 +334,54 @@
                 throw new CoolException("鍏ュ簱璇锋眰搴撲綅澶辫触锛屾病鏈夎仈鏈哄爢鍨涙満鎴栧爢鍨涙満寮傚父");
             }
 
-            List<Integer> crnList = basCrnps.stream().map(BasCrnp::getCrnNo).collect(Collectors.toList());
+            List<BasCrnp> basCrnpList = new ArrayList<>();
+            for(BasCrnp basCrnp: basCrnps) {
+                Integer count = locMastMapper.selectCount(new EntityWrapper<LocMast>().eq("crn_no", basCrnp.getCrnNo()).eq("loc_sts", "S"));
+                basCrnp.setWrkNo(count);
+                basCrnpList.add(basCrnp);
+            }
+
+            basCrnpList = basCrnpList.stream().sorted(Comparator.comparing(BasCrnp::getWrkNo)).collect(Collectors.toList());
 
             // 鍏ュ簱妗跺瀷
             String model = findLocNoAttributeVo.getModel();
-            Wrapper<LocMast> wrapper = new EntityWrapper<LocMast>().eq("loc_sts", 'O')
-                    .in("crn_no", crnList).orderBy("lev1").orderBy("bay1").orderBy("row1");
-            // 鍏ュ簱妗跺瀷鏄笉鏄�208L
-            if (model == null || !model.equals("208L")) {
-                wrapper.ne("lev1", 11);
-            }
-            locMast = locMastService.selectOne(wrapper.in("row1", 1, 4, 5, 6, 7, 8));
-            // 娣卞簱浣嶆病鏈変簡鍒欒幏鍙栦竴涓祬搴撲綅
-            if (locMast == null) {
-                locMast = locMastService.selectOne(wrapper.in("row1", 2, 3));
-                if (locMast == null) {
-                    log.error("-----搴撲綅涓嶈冻----");
-                    throw new CoolException("搴撲綅涓嶈冻");
-                } else {
-                    int count = locMastService.selectCount(wrapper.in("row1", 2, 3));
-                    if (count <= 10) {
-                        log.error("-----搴撲綅涓嶈冻锛岄鐣�10涓簱浣嶇敤鏉ュ簱浣嶈浆绉�----");
-                        throw new CoolException("搴撲綅涓嶈冻锛岄鐣�10涓簱浣嶇敤鏉ュ簱浣嶈浆绉�");
+
+            locMast = null;
+
+            for(BasCrnp basCrnp:basCrnpList) {
+                Integer crnNo = basCrnp.getCrnNo();
+                Wrapper<LocMast> wrapper = new EntityWrapper<LocMast>().eq("loc_sts", 'O')
+                        .eq("crn_no", crnNo).orderBy("lev1").orderBy("bay1").orderBy("row1");
+                // 鍏ュ簱妗跺瀷鏄笉鏄�208L
+                if (model == null || !model.equals("208L")) {
+                    wrapper.ne("lev1", 11);
+                }
+                if (crnNo == 1) {
+                    wrapper.in("row1", 1, 4);
+                }
+                locMast = locMastService.selectOne(wrapper);
+                if (locMast != null) {
+                    break;
+                }
+                // 娣卞簱浣嶆病鏈変簡鍒欒幏鍙栦竴涓祬搴撲綅
+                if (crnNo == 1) {
+                    locMast = locMastService.selectOne(wrapper.in("row1", 2, 3));
+                    if (locMast != null) {
+                        int count = locMastService.selectCount(wrapper);
+                        if (count <= 10) {
+                            locMast = null;
+                        } else {
+                            break;
+                        }
                     }
                 }
             }
+
+            if (locMast == null) {
+                List<Integer> collect = basCrnps.stream().map(BasCrnp::getCrnNo).collect(Collectors.toList());
+                log.error("-----{}鍫嗗灈鏈哄簱浣嶄笉瓒�----",collect.toString());
+                throw new CoolException(collect.toString() + "鍫嗗灈鏈哄簱浣嶄笉瓒�");
+            }
         } else {
             log.error("鍏ュ簱绫诲瀷閿欒锛宻taDescId={}", staDescId);
             throw new CoolException("鍏ュ簱绫诲瀷閿欒锛宻taDescId=" + staDescId);

--
Gitblit v1.9.1