From dc8605e5c26bdd43caff61179d7975c4281581ed Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期一, 27 四月 2026 17:24:51 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/service/CommonService.java |   58 +++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 45 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 0eb9d75..d51d09c 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -457,23 +457,55 @@
                 chosenCount = count;
             }
         }
-        if (chosenCrnNo == null) {
-            throw new CoolException("娌℃湁绌哄簱浣�");
+        StaDesc staDesc = null;
+        LocMast locMast = null;
+        if (chosenCrnNo != null) {
+            staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+                    .eq("type_no", staDescId)
+                    .eq("stn_no", sourceStaNo)
+                    .eq("crn_no", chosenCrnNo));
+            if (!Cools.isEmpty(staDesc)) {
+                locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+                        .eq("crn_no", chosenCrnNo)
+                        .eq("loc_sts", "O")
+                        .eq("frozen", 0)
+                        .eq("deleted", 0)
+                        .eq("whs_type", 1)
+                        .orderBy("lev1,bay1"));
+            }
         }
-        StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
-                .eq("type_no", staDescId)
-                .eq("stn_no", sourceStaNo)
-                .eq("crn_no", chosenCrnNo));
+        if (Cools.isEmpty(staDesc) || Cools.isEmpty(locMast)) {
+            List<LocMast> anyLocs = locMastService.selectList(new EntityWrapper<LocMast>()
+                    .eq("loc_sts", "O")
+                    .eq("frozen", 0)
+                    .eq("deleted", 0)
+                    .eq("whs_type", 1)
+                    .orderBy("lev1,bay1"));
+            if (!Cools.isEmpty(anyLocs)) {
+                for (LocMast anyLoc : anyLocs) {
+                    if (anyLoc == null || anyLoc.getCrnNo() == null) {
+                        continue;
+                    }
+                    if (!basCrnpService.checkSiteError(anyLoc.getCrnNo(), true)) {
+                        continue;
+                    }
+                    StaDesc anyStaDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+                            .eq("type_no", staDescId)
+                            .eq("stn_no", sourceStaNo)
+                            .eq("crn_no", anyLoc.getCrnNo()));
+                    if (Cools.isEmpty(anyStaDesc)) {
+                        continue;
+                    }
+                    chosenCrnNo = anyLoc.getCrnNo();
+                    staDesc = anyStaDesc;
+                    locMast = anyLoc;
+                    break;
+                }
+            }
+        }
         if (Cools.isEmpty(staDesc)) {
             throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
         }
-        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
-                .eq("crn_no", chosenCrnNo)
-                .eq("loc_sts", "O")
-                .eq("frozen", 0)
-                .eq("deleted", 0)
-                .eq("whs_type", 1)
-                .orderBy("lev1,bay1"));
         if (Cools.isEmpty(locMast)) {
             throw new CoolException("娌℃湁绌哄簱浣�");
         }

--
Gitblit v1.9.1