From 6c00757e63a69b8d527f1b978859b17c8db136f6 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期三, 17 十二月 2025 15:00:16 +0800
Subject: [PATCH] #1

---
 src/main/java/com/zy/common/service/CommonService.java |   90 +++++++++++++++++++++++++++++++++++++++------
 1 files changed, 78 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 885c12e..ea68c95 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -160,7 +160,7 @@
             throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
         }
         // ===============>>>> 寮�濮嬫墽琛�
-        if (sourceStaNo == 118 || sourceStaNo == 122){
+        if (sourceStaNo == 118 || sourceStaNo == 122 || sourceStaNo == 1901){
             curRow = rowLastno.getCurrentRow1();
         } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){
             curRow = rowLastno.getCurrentRow2();
@@ -178,7 +178,7 @@
         }
 
         //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿
-        for (int i = times; i < crnNumber*2; i++) {
+        for (int i = times; i < crnNumber*4; i++) {
             int[] locNecessaryParameters = Utils.LocNecessaryParameters(whsType, curRow, crnNumber);
             curRow = locNecessaryParameters[1];
             crnNo = locNecessaryParameters[2];
@@ -230,7 +230,7 @@
                         if (locMast2.getCrnNo()==1 || locMast2.getCrnNo()==6){
                             continue;
                         }
-                        if (sourceStaNo == 118 || sourceStaNo == 122){
+                        if (sourceStaNo == 118 || sourceStaNo == 122 || sourceStaNo == 1901){
                             if (locMast2.getCrnNo()>3){
                                 continue;
                             }
@@ -262,7 +262,7 @@
                         if (shallowLoc.getCrnNo()==1 || shallowLoc.getCrnNo()==6){
                             continue;
                         }
-                        if (sourceStaNo == 118 || sourceStaNo == 122){
+                        if (sourceStaNo == 118 || sourceStaNo == 122 || sourceStaNo == 1901){
                             if (shallowLoc.getCrnNo()>3){
                                 continue;
                             }
@@ -355,7 +355,7 @@
 
         // 鏇存柊搴撲綅鎺掑彿
         if (Utils.BooleanWhsTypeSta(whsType, staDescId) && Cools.isEmpty(locMast)) {
-            if (sourceStaNo == 118 || sourceStaNo == 122){
+            if (sourceStaNo == 118 || sourceStaNo == 122 || sourceStaNo == 1901){
                 rowLastno.setCurrentRow1(curRow);
             } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){
                 rowLastno.setCurrentRow2(curRow);
@@ -369,7 +369,11 @@
 
         // 1.鎸夎鍒欐煡鎵惧簱浣�
         if (Cools.isEmpty(locMast) && crnNo != 0) {
-            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O").orderBy("lev1",true));
+            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                    .eq("row1", nearRow)
+                    .eq("loc_sts", "O")
+                    .orderBy("lev1",true).orderBy("bay1",true));
+
             for (LocMast locMast1 : locMasts) {
                 if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
                     continue;
@@ -381,6 +385,35 @@
                     break;
                 }
             }
+
+            if (Cools.isEmpty(locMast)){
+                for (LocMast locMast1 : locMasts) {
+                    if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
+                        continue;
+                    }
+                    String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo());
+                    LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
+                            .eq("loc_no", shallowLoc).eq("loc_sts", "O"));
+                    if (!Cools.isEmpty(locMast2)) {
+                        locMast = locMast2;
+                        break;
+                    } else {
+                        locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
+                                .eq("loc_no", shallowLoc).eq("loc_sts", "F"));
+                        if (!Cools.isEmpty(locMast2)) {
+                            locMast = locMast1;
+                            break;
+                        } else {
+                            locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
+                                    .eq("loc_no", shallowLoc).eq("loc_sts", "D"));
+                            if (!Cools.isEmpty(locMast2)) {
+                                locMast = locMast1;
+                                break;
+                            }
+                        }
+                    }
+                }
+            }
         }
 
         if (!Cools.isEmpty(locMast) && !basCrnpService.checkSiteError(crnNo, true)) {
@@ -390,7 +423,7 @@
         // 閫掑綊鏌ヨ
         if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("O")) {
             // 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊
-            if (times < rowCount) {
+            if (times < rowCount*4) {
                 times = times + 1;
                 return getLocNoRun(1, staDescId, sourceStaNo, matnr, batch, grade,moveCrnNo, locTypeDto, times);
             }
@@ -458,7 +491,7 @@
             throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
         }
         // ===============>>>> 寮�濮嬫墽琛�
-        if (sourceStaNo == 118 || sourceStaNo == 122){
+        if (sourceStaNo == 118 || sourceStaNo == 122 || sourceStaNo == 1901){
             curRow = rowLastno.getCurrentRow1();
         } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){
             curRow = rowLastno.getCurrentRow2();
@@ -476,7 +509,7 @@
         }
 
         //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿
-        for (int i = times; i < crnNumber; i++) {
+        for (int i = times; i < crnNumber*4; i++) {
             int[] locNecessaryParameters = Utils.LocNecessaryParameters(whsType, curRow, crnNumber);
             curRow = locNecessaryParameters[1];
             crnNo = locNecessaryParameters[2];
@@ -638,7 +671,7 @@
 
         // 鏇存柊搴撲綅鎺掑彿
         if (Utils.BooleanWhsTypeSta(whsType, staDescId) && Cools.isEmpty(locMast)) {
-            if (sourceStaNo == 118 || sourceStaNo == 122){
+            if (sourceStaNo == 118 || sourceStaNo == 122 || sourceStaNo == 1901){
                 rowLastno.setCurrentRow1(curRow);
             } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){
                 rowLastno.setCurrentRow2(curRow);
@@ -652,7 +685,11 @@
 
         // 1.鎸夎鍒欐煡鎵惧簱浣�
         if (Cools.isEmpty(locMast) && crnNo != 0) {
-            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O").orderBy("lev1",true));
+            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                    .eq("row1", nearRow)
+                    .eq("loc_sts", "O")
+                    .orderBy("lev1",true).orderBy("bay1",true));
+
             for (LocMast locMast1 : locMasts) {
                 if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
                     continue;
@@ -664,6 +701,35 @@
                     break;
                 }
             }
+
+            if (Cools.isEmpty(locMast)){
+                for (LocMast locMast1 : locMasts) {
+                    if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
+                        continue;
+                    }
+                    String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo());
+                    LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
+                            .eq("loc_no", shallowLoc).eq("loc_sts", "O"));
+                    if (!Cools.isEmpty(locMast2)) {
+                        locMast = locMast2;
+                        break;
+                    } else {
+                        locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
+                                .eq("loc_no", shallowLoc).eq("loc_sts", "F"));
+                        if (!Cools.isEmpty(locMast2)) {
+                            locMast = locMast1;
+                            break;
+                        } else {
+                            locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
+                                    .eq("loc_no", shallowLoc).eq("loc_sts", "D"));
+                            if (!Cools.isEmpty(locMast2)) {
+                                locMast = locMast1;
+                                break;
+                            }
+                        }
+                    }
+                }
+            }
         }
 
         if (!Cools.isEmpty(locMast) && !basCrnpService.checkSiteError(crnNo, true)) {
@@ -673,7 +739,7 @@
         // 閫掑綊鏌ヨ
         if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("O")) {
             // 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊
-            if (times < rowCount) {
+            if (times < rowCount*4) {
                 times = times + 1;
                 return getLocNoRun(1, staDescId, sourceStaNo, matnr, batch, grade,moveCrnNo, locTypeDto, times,rgvNo);
             }

--
Gitblit v1.9.1