From 90e8096a24e55fa40fbd5dbf7b9d94a6d88940d7 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期日, 20 七月 2025 16:20:59 +0800
Subject: [PATCH] 成品库出入库分配堆垛机顺序321

---
 src/main/java/com/zy/common/service/CommonService.java |   70 ++++++++++++++++++++++------------
 1 files changed, 45 insertions(+), 25 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..8c149c2 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("涓庡墠闈㈡《绫诲瀷涓嶄竴鏍凤紝鍓嶉潰妗朵笉鏄熬妗讹紝鍓嶉潰璇ユ《绫诲瀷浠诲姟鏁颁笉鏄伓鏁帮紝涓嶈兘鍏ュ簱");
                           }
@@ -332,37 +328,61 @@
 
             // 鍏ユ垚鍝佸簱鎽嗘斁瑙勫垯 鍒ゆ柇鍙敤鍫嗗灈鏈鸿嚜鍔�-鏃犳姤璀� 鎸夊眰鍒楁帓椤哄簭浠庝笅寰�涓婏紝浠庡墠寰�鍚庢帓 鍏堟繁搴撲綅鍦ㄦ祬搴撲綅 鏈�涓婇潰涓�灞傚彧鑳芥斁208L妗�(鍓╀綑搴撲綅杈惧埌涓�涓槇鍊�208L灏卞厛浠庢渶涓婇潰寮�濮嬫斁锛屼笅闈㈢暀缁欏叾浠栬揣鐗�-鍚庣画浼樺寲)
 
-            List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts", 3).eq("crn_err", 0).in("crn_no",1,2,3));
+            List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts", 3).eq("crn_err", 0).in("crn_no",1,2,3)
+                    .eq("in_enable","Y").orderBy("crn_no",false));
             if (basCrnps.size() == 0) {
                 log.error("鍏ュ簱璇锋眰搴撲綅澶辫触锛屾病鏈夎仈鏈哄爢鍨涙満鎴栧爢鍨涙満寮傚父");
                 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