From 4881f66b288c535c3b9da41ee07c9609bacb8481 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期一, 22 十二月 2025 17:01:49 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/service/CommonService.java |  106 +++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 98 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 9db3ac8..a8e9e1c 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -1007,7 +1007,7 @@
         //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿
         int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber);
         curRow = locNecessaryParameters[1];
-        crnNo = locNecessaryParameters[2];
+        crnNo = 6;
         rowCount = locNecessaryParameters[0];
         nearRow = locNecessaryParameters[3];
 
@@ -1015,7 +1015,7 @@
         StaDesc staDesc = null;
         BasDevp staNo = null;
 
-        if (Utils.BooleanWhsTypeSta(rowLastno, staDescId)) {
+//        if (Utils.BooleanWhsTypeSta(rowLastno, staDescId)) {
             // 鑾峰彇鐩爣绔�
 //            wrapper = new EntityWrapper<StaDesc>()
 //                    .eq("type_no", staDescId)
@@ -1036,7 +1036,7 @@
 //                }
 //                startupDto.setStaNo(staNo.getDevNo());
 //            }
-        }
+//        }
 
         // 鏇存柊搴撲綅鎺掑彿
         if (Utils.BooleanWhsTypeSta(rowLastno, staDescId) && Cools.isEmpty(locMast)) {
@@ -1046,18 +1046,17 @@
 
         // 寮�濮嬫煡鎵惧簱浣� ==============================>>
 
-        // 1.鎸夎鍒欐煡鎵惧簱浣�
-        if (Cools.isEmpty(locMast) && crnNo != 0) {
-            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+        if (Cools.isEmpty(locMast) && sourceStaNo != 4006) {//si'lou'p鍥涙ゼ鐩樼偣閫夋嫨鍖哄煙
+                 List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                     .eq("row1", nearRow)
                     .eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
-                    .orderBy("lev1", true).orderBy("bay1", true));//鏈�娴呭簱浣�
+                    .orderBy("lev1", true).orderBy("bay1", true)); // 鏈�娴呭簱浣�
             for (LocMast locMast1 : locMasts) {
                 if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
                     continue;
                 }
                 if (Utils.BooleanWhsTypeStaIoType(rowLastno)) {
-                    //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娣辩┖搴撲綅
+                    // 鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娣辩┖搴撲綅
                     LocMast locMast2 = locMastService.selectLocByLocStsPakInO(curRow, nearRow, locMast1, rowLastnoType.getType().longValue());
                     if (!Cools.isEmpty(locMast2) && locMast2.getRow1() == curRow) {
                         locMast = locMast2;
@@ -1065,8 +1064,99 @@
                     }
                 }
             }
+        } else {
+            // 鏍规嵁 findLocNoAttributeVo.getOutArea() 璁剧疆鍒楄寖鍥�
+            int startBay = 1;
+            int endBay = 19;
+
+            switch (findLocNoAttributeVo.getOutArea()) {
+                case 1:
+                    startBay = 15;
+                    endBay = 19;
+                    break;
+                case 2:
+                    startBay = 8;
+                    endBay = 14;
+                    break;
+                case 3:
+                    startBay = 1;
+                    endBay = 8;
+                    break;
+                default:
+                    break;
+            }
+
+            // 浼樺厛浠庢寚瀹氬垪鑼冨洿鏌ユ壘
+            boolean found = false;
+
+            // 鎸夌収鎺掑彿浠�38鍒�32閫掑噺鏌ユ壘锛屼紭鍏堟煡鎵炬寚瀹氬垪鑼冨洿锛堝1-8銆�8-14銆�15-19锛�
+            for (int row = 38; row >= 32; row--) {
+                List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                        .eq("row1", row)
+                        .ge("bay1", startBay)
+                        .le("bay1", endBay)
+                        .eq("loc_sts", "O")
+                        .eq("whs_type", rowLastnoType.getType().longValue())
+                        .orderBy("lev1", true)
+                        .orderBy("bay1", true)); // 鏈�娴呭簱浣�
+
+                for (LocMast locMast1 : locMasts) {
+                    if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
+                        continue;
+                    }
+                    if (Utils.BooleanWhsTypeStaIoType(rowLastno)) {
+                        // 鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娣辩┖搴撲綅
+                        LocMast locMast2 = locMastService.selectLocByLocStsPakInO(curRow, nearRow, locMast1, rowLastnoType.getType().longValue());
+                        if (!Cools.isEmpty(locMast2) && locMast2.getRow1() == curRow) {
+                            locMast = locMast2;
+                            found = true;
+                            break;
+                        }
+                    }
+                }
+
+                if (found) {
+                    break; // 鎵惧埌鐩爣搴撲綅鍚庤烦鍑哄惊鐜�
+                }
+            }
+
+            // 濡傛灉娌℃湁鍦ㄤ紭鍏堣寖鍥村唴鎵惧埌鍚堥�傚簱浣嶏紝缁х画杩涜鍏ㄥ眬鏌ユ壘锛�1-19鍒楋級
+            if (!found) {
+                // 浠庢帓鍙�38鍒�32鏌ユ壘鎵�鏈夊垪锛�1-19锛�
+                for (int row = 38; row >= 32; row--) {
+                    List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                            .eq("row1", row)
+                            .ge("bay1", 1)  // 鏌ユ壘1鍒�19鍒�
+                            .le("bay1", 19)
+                            .eq("loc_sts", "O")
+                            .eq("whs_type", rowLastnoType.getType().longValue())
+                            .orderBy("lev1", true)
+                            .orderBy("bay1", true)); // 鏈�娴呭簱浣�
+
+                    for (LocMast locMast1 : locMasts) {
+                        if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
+                            continue;
+                        }
+                        if (Utils.BooleanWhsTypeStaIoType(rowLastno)) {
+                            // 鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娣辩┖搴撲綅
+                            LocMast locMast2 = locMastService.selectLocByLocStsPakInO(curRow, nearRow, locMast1, rowLastnoType.getType().longValue());
+                            if (!Cools.isEmpty(locMast2) && locMast2.getRow1() == curRow) {
+                                locMast = locMast2;
+                                found = true;
+                                break;
+                            }
+                        }
+                    }
+
+                    if (found) {
+                        break; // 鎵惧埌鐩爣搴撲綅鍚庤烦鍑哄惊鐜�
+                    }
+                }
+            }
         }
 
+
+
         // 閫掑綊鏌ヨ
         if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("O")) {
             // 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊

--
Gitblit v1.9.1