From b7d562f09526fc5d1fddc3a692f47aeb3ac956f6 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期二, 28 四月 2026 04:09:14 +0800
Subject: [PATCH] #退库优化/自动跨巷道移库V1

---
 src/main/java/com/zy/common/service/CommonService.java |   59 +++++++++++++++++++++++++++++++----------------------------
 1 files changed, 31 insertions(+), 28 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..677c40d 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -162,7 +162,7 @@
     @Transactional
     public StartupDto getLocNoV2(Integer staDescId, Integer sourceStaNo, WrkMast wrkMast, LocTypeDto locTypeDto) {
         try {
-            Integer whsType = Utils.GetWhsType(sourceStaNo);
+            Integer whsType = 1;
             RowLastno rowLastno = rowLastnoService.selectById(whsType);
             RowLastnoType rowLastnoType = rowLastnoTypeService.selectById(rowLastno.getTypeId());
             /**
@@ -424,16 +424,6 @@
         Integer chosenCrnNo = null;
         Integer chosenCount = null;
         for (int candidate : candidates) {
-            if (!basCrnpService.checkSiteError(candidate, true)) {
-                continue;
-            }
-            StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
-                    .eq("type_no", staDescId)
-                    .eq("stn_no", sourceStaNo)
-                    .eq("crn_no", candidate));
-            if (Cools.isEmpty(staDesc)) {
-                continue;
-            }
             //鍒ゆ柇璇ュ贩閬撴槸鍚﹀瓨鍦ㄧ┖浣�
             LocMast candidateLoc = locMastService.selectOne(new EntityWrapper<LocMast>()
                     .eq("crn_no", candidate)
@@ -457,23 +447,38 @@
                 chosenCount = count;
             }
         }
-        if (chosenCrnNo == null) {
-            throw new CoolException("娌℃湁绌哄簱浣�");
+        LocMast locMast = null;
+        if (chosenCrnNo != null) {
+            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)) {
-            throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+        if (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;
+                    }
+                    chosenCrnNo = anyLoc.getCrnNo();
+                    locMast = anyLoc;
+                    break;
+                }
+            }
         }
-        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("娌℃湁绌哄簱浣�");
         }
@@ -481,9 +486,7 @@
         int workNo = getWorkNo(0);
         startupDto.setWorkNo(workNo);
         startupDto.setCrnNo(chosenCrnNo);
-        startupDto.setSourceStaNo(sourceStaNo);
         startupDto.setLocNo(locNo);
-        startupDto.setStaNo(staDesc.getCrnStn());
         return startupDto;
     }
 

--
Gitblit v1.9.1