From e128bbc4a9df1491257320884169ba813d461f63 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期六, 20 十二月 2025 10:33:20 +0800
Subject: [PATCH] #1

---
 src/main/java/com/zy/common/service/CommonService.java |   37 ++++++++++++++++++++++++++-----------
 1 files changed, 26 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 9136270..532025f 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -52,6 +52,8 @@
     private LocDetlService locDetlService;
     @Autowired
     private SlaveProperties slaveProperties;
+    @Autowired
+    private WaitPakinService waitPakinService;
 
     /**
      * 鐢熸垚宸ヤ綔鍙�
@@ -133,6 +135,7 @@
      */
     @Transactional
     public StartupDto getLocNoRun(Integer whsType, Integer staDescId, Integer sourceStaNo, String matnr, String batch, String grade, Integer moveCrnNo, LocTypeDto locTypeDto, int times) {
+        boolean sign999 = false;
         if (Cools.isEmpty(matnr)) {  //鐗╂枡鍙�
             matnr = "";
         }
@@ -160,7 +163,13 @@
             throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
         }
         // ===============>>>> 寮�濮嬫墽琛�
-        if (sourceStaNo == 118 || sourceStaNo == 122){
+        if (staDescId == 1){
+            WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("batch", batch));
+            if (Cools.isEmpty(waitPakin) || waitPakin.getBrandArmType$() == 999) {
+                sign999 = true;
+            }
+        }
+        if (sign999 || sourceStaNo == 118 || sourceStaNo == 122 || sourceStaNo == 1901 || sourceStaNo == 1908){
             curRow = rowLastno.getCurrentRow1();
         } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){
             curRow = rowLastno.getCurrentRow2();
@@ -178,7 +187,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 +239,7 @@
                         if (locMast2.getCrnNo()==1 || locMast2.getCrnNo()==6){
                             continue;
                         }
-                        if (sourceStaNo == 118 || sourceStaNo == 122){
+                        if (sign999 || sourceStaNo == 118 || sourceStaNo == 122 || sourceStaNo == 1901 || sourceStaNo == 1908){
                             if (locMast2.getCrnNo()>3){
                                 continue;
                             }
@@ -262,7 +271,7 @@
                         if (shallowLoc.getCrnNo()==1 || shallowLoc.getCrnNo()==6){
                             continue;
                         }
-                        if (sourceStaNo == 118 || sourceStaNo == 122){
+                        if (sign999 || sourceStaNo == 118 || sourceStaNo == 122 || sourceStaNo == 1901 || sourceStaNo == 1908){
                             if (shallowLoc.getCrnNo()>3){
                                 continue;
                             }
@@ -355,7 +364,7 @@
 
         // 鏇存柊搴撲綅鎺掑彿
         if (Utils.BooleanWhsTypeSta(whsType, staDescId) && Cools.isEmpty(locMast)) {
-            if (sourceStaNo == 118 || sourceStaNo == 122){
+            if (sign999 || sourceStaNo == 118 || sourceStaNo == 122 || sourceStaNo == 1901 || sourceStaNo == 1908){
                 rowLastno.setCurrentRow1(curRow);
             } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){
                 rowLastno.setCurrentRow2(curRow);
@@ -423,7 +432,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);
             }
@@ -473,7 +482,13 @@
         if (Cools.isEmpty(grade)) {  //澶囩敤
             grade = "";
         }
-
+        boolean sign999 = false;
+        if (staDescId == 1){
+            WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("batch", batch));
+            if (Cools.isEmpty(waitPakin) || waitPakin.getBrandArmType$() == 999) {
+                sign999 = true;
+            }
+        }
         // 鍒濆鍖栧弬鏁�
         int crnNo = 0;      //鍫嗗灈鏈哄彿
         int nearRow = 0;    //鏈�娴呭簱浣嶆帓
@@ -491,7 +506,7 @@
             throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
         }
         // ===============>>>> 寮�濮嬫墽琛�
-        if (sourceStaNo == 118 || sourceStaNo == 122){
+        if (sign999 || sourceStaNo == 118 || sourceStaNo == 122 || sourceStaNo == 1901 || sourceStaNo == 1908){
             curRow = rowLastno.getCurrentRow1();
         } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){
             curRow = rowLastno.getCurrentRow2();
@@ -509,7 +524,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];
@@ -671,7 +686,7 @@
 
         // 鏇存柊搴撲綅鎺掑彿
         if (Utils.BooleanWhsTypeSta(whsType, staDescId) && Cools.isEmpty(locMast)) {
-            if (sourceStaNo == 118 || sourceStaNo == 122){
+            if (sign999 || sourceStaNo == 118 || sourceStaNo == 122 || sourceStaNo == 1901 || sourceStaNo == 1908){
                 rowLastno.setCurrentRow1(curRow);
             } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){
                 rowLastno.setCurrentRow2(curRow);
@@ -739,7 +754,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