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 |  144 +++++++++++-------------------------------------
 1 files changed, 33 insertions(+), 111 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index b62242a..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,14 +229,16 @@
                 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);
-            curRow = locNecessaryParameters[1];
             crnNo = locNecessaryParameters[2];
+            log.info("\ncrnNo:\n{}",crnNo);
             if (basCrnpService.checkSiteError(crnNo, true)) {
-                rowCount = locNecessaryParameters[0];
                 nearRow = locNecessaryParameters[3];
                 List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                         .eq("row1", nearRow)
@@ -244,8 +246,13 @@
                         .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){
+
+                    }
                     log.error(crnNo + "鍙峰爢鍨涙満娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times);
                     nearRow = 0;
                     times++;
@@ -253,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++;
             }
         }
@@ -260,116 +281,12 @@
             throw new CoolException("鏃犲彲鐢ㄥ爢鍨涙満");
         }
 
-        boolean signRule1 = false;
-        boolean signRule2 = false;
-
-
-        if (Utils.BooleanWhsTypeStaIoType(rowLastno)) {
-            // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂� //鍒嗙鐗�
-            if (!Cools.isEmpty(findLocNoAttributeVo.getMatnr()) && staDescId == 1) {
-                signRule1 = true;
-            }
-            // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂� //浜掗�氱増
-            if (!Cools.isEmpty(findLocNoAttributeVo.getMatnr()) && staDescId == 1) {
-                signRule2 = true;
-            }
-
-            if (!Cools.isEmpty(findLocNoAttributeVo.getMatnr()) && (staDescId == 11 || staDescId == 111)) {
-                signRule1 = true;
-            }
-        }
-
-        if (signRule1) {
-            if (nearRow != curRow) {
-                List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
-                        .eq("row1", nearRow)
-                        .eq("frozen", 0).eq("deleted", 0)
-                        .eq("loc_sts", "O")
-                        .eq("whs_type", rowLastnoType.getType().longValue()));
-                for (LocMast locMast1 : locMasts) {
-                    //鑾峰彇宸烽亾
-//                    List<String> groupOutsideLocCrn = Utils.getGroupOutLocCrn(curRow,nearRow,locMast1.getLocNo(), curRow>nearRow);
-//                    LocMast locMastGro = locMastService.selectById(wrkMast.getLocNo());
-                    //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娴呴潪绌哄簱浣�
-                    LocMast locMastF = locMastService.selectLocByLocStsPakInF(curRow, nearRow, locMast1, rowLastnoType.getType().longValue());
-                    if (!Cools.isEmpty(locMastF) && locMastF.getLocSts().equals("F")) {
-                        LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMastF.getLocNo()));
-                        if (!Cools.isEmpty(locDetl) && findLocNoAttributeVo.beSimilar(locDetl)) {
-                            //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娣辩┖搴撲綅
-                            locMast = locMastService.selectLocByLocStsPakInO(curRow, nearRow, locMast1, rowLastnoType.getType().longValue());
-                            break;
-                        }
-                    }
-                }
-            }
-        } else if (signRule2) {
-            List<String> locNos = locDetlService.getSameDetlToday(findLocNoAttributeVo.getMatnr(), sRow, eRow);
-            for (String locNo : locNos) {
-                if (Utils.isShallowLoc(slaveProperties, locNo)) {
-                    continue;
-                }
-                String shallowLocNo = Utils.getShallowLoc(slaveProperties, locNo);
-                // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
-                LocMast shallowLoc = locMastService.selectById(shallowLocNo);
-                if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
-                    if (VersionUtils.locMoveCheckLocTypeComplete(shallowLoc, locTypeDto)) {
-                        if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
-                            locMast = shallowLoc;
-                            crnNo = locMast.getCrnNo();
-                            break;
-                        }
-                    }
-                }
-            }
-        }
-
-//        // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭  //鍒嗙鐗�
-//        if (staDescId == 10 && Utils.BooleanWhsTypeStaIoType(whsType)) {
-//            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O"));
-//            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));
-//                if (!Cools.isEmpty(locMast2) && locMast2.getLocSts().equals("D")){
-//                    locMast = locMast1;
-//                    break;
-//                }
-//            }
-//        }
-
-        // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 //浜掗�氱増
-        if (staDescId == 10 && Utils.BooleanWhsTypeStaIoType(rowLastno)) {
-            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
-                    .eq("loc_sts", "D").eq("frozen", 0).eq("deleted", 0)
-                    .ge("row1", sRow).le("row1", eRow).eq("whs_type", rowLastnoType.getType().longValue()));
-            if (!locMasts.isEmpty()) {
-                for (LocMast loc : locMasts) {
-                    if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) {
-                        continue;
-                    }
-                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
-                    // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
-                    LocMast shallowLoc = locMastService.selectById(shallowLocNo);
-                    if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
-                        if (VersionUtils.locMoveCheckLocTypeComplete(shallowLoc, locTypeDto)) {
-                            if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
-                                locMast = shallowLoc;
-                                crnNo = locMast.getCrnNo();
-                                break;
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
         Wrapper<StaDesc> wrapper = null;
         StaDesc staDesc = null;
         BasDevp staNo = null;
 
         if (Utils.BooleanWhsTypeSta(rowLastno, staDescId)) {
+            int selectedCrnNo=crnNo;
             // 鑾峰彇鐩爣绔�
             wrapper = new EntityWrapper<StaDesc>()
                     .eq("type_no", staDescId)
@@ -391,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