From 0467c8f9c2f3604ddd6e7e3a0372ce0fbaa46dff Mon Sep 17 00:00:00 2001
From: Administrator <1051256694@qq.com>
Date: 星期六, 14 三月 2026 13:58:32 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/service/CommonService.java |   34 ++++++++++++++++++++++++++++++----
 1 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 845ecd9..3131f1a 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -216,7 +216,7 @@
         int sRow = rowLastno.getsRow();
         int eRow = rowLastno.geteRow();
         int crnNumber = rowLastno.getCrnQty();
-
+       int sCrnNo= rowLastno.getsCrnNo()!=null?rowLastno.getsCrnNo():1;
 
         // ===============>>>> 寮�濮嬫墽琛�
         curRow = rowLastno.getCurrentRow();
@@ -229,11 +229,15 @@
                 curRow = moveCrnNo * 4 - 2;
             }
         }
-
+        log.info("\ncurRow:\n{}",curRow);
         //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿
         for (int i = times; i < crnNumber * 2; i++) {
+        log.info("\ni:\n{}",i);
+        log.info("\ntimes:\n{}",times);
+        log.info("\ncrnNumber:\n{}",crnNumber);
             int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber);
             crnNo = locNecessaryParameters[2];
+            log.info("\ncrnNo:\n{}",crnNo);
             if (basCrnpService.checkSiteError(crnNo, true)) {
                 nearRow = locNecessaryParameters[3];
                 List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
@@ -242,7 +246,9 @@
                         .eq("frozen", 0)
                         .eq("deleted", 0)
                         .eq("whs_type", rowLastnoType.getType().longValue()));
-                int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).le("io_type", 100));
+//                log.info("\nlocMasts:\n{}",locMasts);
+                int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>()
+                        .eq("crn_no", crnNo).le("io_type", 100));
                 if (locMasts.size() - crnCountO <= 2) {
                     if(curRow+2==7){
 
@@ -254,6 +260,20 @@
                 }
                 break;
             } else {
+//                curRow = crnNo +2;// crnNo=3  curRow=5
+//                if (curRow == 9||curRow==10) {
+//                    curRow = 1;
+//                }
+
+                int nextCrnNo=crnNo + 1;//涓嬩竴涓爢鍨涙満鍙�
+                if(nextCrnNo> sCrnNo+crnNumber-1){//涓嬩竴鍙板ぇ浜�
+                    nextCrnNo=sCrnNo;
+                }
+                if(nextCrnNo==sCrnNo){
+                    curRow=0;
+                }else {
+                    curRow = sRow + (nextCrnNo - sCrnNo) * 4;
+                }
                 times++;
             }
         }
@@ -266,6 +286,7 @@
         BasDevp staNo = null;
 
         if (Utils.BooleanWhsTypeSta(rowLastno, staDescId)) {
+            int selectedCrnNo=crnNo;
             // 鑾峰彇鐩爣绔�
             wrapper = new EntityWrapper<StaDesc>()
                     .eq("type_no", staDescId)
@@ -287,7 +308,12 @@
             }
             // 鏇存柊搴撲綅鎺掑彿
             if (Cools.isEmpty(locMast)) {
-                rowLastno.setCurrentRow(curRow);
+                int crnNoForRotation=crnNo!=0?crnNo:selectedCrnNo;
+                int nextCrnNoAfterSuccess=(crnNoForRotation>=sCrnNo+crnNumber-1?sCrnNo:crnNoForRotation+1);
+                int curRowToSave = (nextCrnNoAfterSuccess==sCrnNo)?0:sRow+(nextCrnNoAfterSuccess-sCrnNo)*4;
+
+                rowLastno.setCurrentRow(curRowToSave);
+                log.info("\ncurRowToSave:\n{}",curRowToSave);
                 rowLastnoService.updateById(rowLastno);
             }
         }

--
Gitblit v1.9.1