From 716cac0609252e4485115399a88dec14545f0e4f Mon Sep 17 00:00:00 2001
From: lsh <lsh123456>
Date: 星期二, 11 二月 2025 14:55:08 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/service/CommonService.java |  128 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 120 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 14ea695..d93cd0d 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -160,7 +160,13 @@
             throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
         }
         // ===============>>>> 寮�濮嬫墽琛�
-        curRow = rowLastno.getCurrentRow();
+        if (sourceStaNo == 118 || sourceStaNo == 122){
+            curRow = rowLastno.getCurrentRow1();
+        } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){
+            curRow = rowLastno.getCurrentRow2();
+        } else {
+            curRow = rowLastno.getCurrentRow();
+        }
 
         if (!Cools.isEmpty(moveCrnNo) && moveCrnNo!=0){
             crnNumber = moveCrnNo;
@@ -172,7 +178,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];
@@ -181,6 +187,7 @@
                 nearRow = locNecessaryParameters[3];
                 List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O"));
                 if (locMasts.size()<=10){
+                    nearRow = 0;
                     times++;
                     continue;
                 }
@@ -223,10 +230,20 @@
                         if (locMast2.getCrnNo()==1 || locMast2.getCrnNo()==6){
                             continue;
                         }
+                        if (sourceStaNo == 118 || sourceStaNo == 122){
+                            if (locMast2.getCrnNo()>3){
+                                continue;
+                            }
+                        } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){
+                            if (locMast2.getCrnNo()<4){
+                                continue;
+                            }
+                        }
                     }
                     LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast2.getLocNo()));
                     if (!Cools.isEmpty(locDetl) && matnr.equals(locDetl.getMatnr())) {
                         locMast = locMast1;
+                        crnNo = locMast.getCrnNo();
                         break;
                     }
                 }
@@ -244,6 +261,15 @@
                     if (sourceStaNo<200){
                         if (shallowLoc.getCrnNo()==1 || shallowLoc.getCrnNo()==6){
                             continue;
+                        }
+                        if (sourceStaNo == 118 || sourceStaNo == 122){
+                            if (shallowLoc.getCrnNo()>3){
+                                continue;
+                            }
+                        } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){
+                            if (shallowLoc.getCrnNo()<4){
+                                continue;
+                            }
                         }
                     }
                     if (VersionUtils.locMoveCheckLocTypeComplete(shallowLoc, locTypeDto)) {
@@ -329,7 +355,13 @@
 
         // 鏇存柊搴撲綅鎺掑彿
         if (Utils.BooleanWhsTypeSta(whsType, staDescId) && Cools.isEmpty(locMast)) {
-            rowLastno.setCurrentRow(curRow);
+            if (sourceStaNo == 118 || sourceStaNo == 122){
+                rowLastno.setCurrentRow1(curRow);
+            } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){
+                rowLastno.setCurrentRow2(curRow);
+            } else {
+                rowLastno.setCurrentRow(curRow);
+            }
             rowLastnoService.updateById(rowLastno);
         }
 
@@ -337,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;
@@ -347,6 +383,35 @@
                 if (!Cools.isEmpty(locMast2)) {
                     locMast = locMast2;
                     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;
+                            }
+                        }
+                    }
                 }
             }
         }
@@ -426,7 +491,13 @@
             throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
         }
         // ===============>>>> 寮�濮嬫墽琛�
-        curRow = rowLastno.getCurrentRow();
+        if (sourceStaNo == 118 || sourceStaNo == 122){
+            curRow = rowLastno.getCurrentRow1();
+        } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){
+            curRow = rowLastno.getCurrentRow2();
+        } else {
+            curRow = rowLastno.getCurrentRow();
+        }
 
         if (!Cools.isEmpty(moveCrnNo) && moveCrnNo!=0){
             crnNumber = moveCrnNo;
@@ -438,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];
@@ -448,6 +519,7 @@
                     nearRow = locNecessaryParameters[3];
                     List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O"));
                     if (locMasts.size()<=10){
+                        nearRow = 0;
                         times++;
                         continue;
                     }
@@ -461,6 +533,7 @@
                     nearRow = locNecessaryParameters[3];
                     List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O"));
                     if (locMasts.size()<=10){
+                        nearRow = 0;
                         times++;
                         continue;
                     }
@@ -598,7 +671,13 @@
 
         // 鏇存柊搴撲綅鎺掑彿
         if (Utils.BooleanWhsTypeSta(whsType, staDescId) && Cools.isEmpty(locMast)) {
-            rowLastno.setCurrentRow(curRow);
+            if (sourceStaNo == 118 || sourceStaNo == 122){
+                rowLastno.setCurrentRow1(curRow);
+            } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){
+                rowLastno.setCurrentRow2(curRow);
+            } else {
+                rowLastno.setCurrentRow(curRow);
+            }
             rowLastnoService.updateById(rowLastno);
         }
 
@@ -606,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;
@@ -618,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)) {

--
Gitblit v1.9.1