From 7d4d4849daf849f2676899a96ceabd8ade703a32 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期二, 15 四月 2025 14:38:01 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/utils/Utils.java |   45 ++++++++++++++++++++++++++++++++++-----------
 1 files changed, 34 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index ad1411a..816a012 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -123,9 +123,17 @@
      */
     public static String getShallowLoc(SlaveProperties slaveProperties, String deepLoc) {
         int row = getRow(deepLoc);
-        int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount());
-        int shallowRow = remainder == 1 ? (row + 1) : (row - 1);
-        return zerofill(String.valueOf(shallowRow), 2) + deepLoc.substring(2);
+        boolean deepLocLeft = isDeepLocLeft(slaveProperties, row);
+        boolean deepLocRight = isDeepLocRight(slaveProperties, row);
+        int targetRow;
+        if (deepLocLeft) {
+            targetRow = row + 1;
+        } else if (deepLocRight) {
+            targetRow = row - 1;
+        } else {
+            throw new RuntimeException(deepLoc + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖");
+        }
+        return zerofill(String.valueOf(targetRow), 2) + deepLoc.substring(2);
     }
 
     /**
@@ -141,30 +149,45 @@
      */
     public static String getDeepLoc(SlaveProperties slaveProperties, String shallowLoc) {
         int row = getRow(shallowLoc);
-        int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount());
+        boolean deepLocLeft = isDeepLocLeft(slaveProperties, row-1);
+        boolean deepLocRight = isDeepLocRight(slaveProperties, row+1);
         int targetRow;
-        if (remainder == 2) {
+        if (deepLocLeft) {
             targetRow = row - 1;
-        } else if (remainder == 3) {
+        } else if (deepLocRight) {
             targetRow = row + 1;
         } else {
             throw new RuntimeException(shallowLoc + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖");
         }
         return zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2);
     }
+//    public static String getDeepLoc(SlaveProperties slaveProperties, String shallowLoc) {
+//        int row = getRow(shallowLoc);
+//        int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount());
+//        int targetRow;
+//        if (remainder == 2) {
+//            targetRow = row - 1;
+//        } else if (remainder == 3) {
+//            targetRow = row + 1;
+//        } else {
+//            throw new RuntimeException(shallowLoc + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖");
+//        }
+//        return zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2);
+//    }
 
     /**
      * 鑾峰彇 娴呭簱浣嶆帓瀵瑰簲鐨勬繁搴撲綅鎺�
      */
     public static Integer getDeepRow(SlaveProperties slaveProperties, Integer shallowRow) {
-        int remainder = (int) Arith.remainder(shallowRow, slaveProperties.getGroupCount());
+        boolean deepLocLeft = isDeepLocLeft(slaveProperties, shallowRow-1);
+        boolean deepLocRight = isDeepLocRight(slaveProperties, shallowRow+1);
         int targetRow;
-        if (remainder == 2) {
+        if (deepLocLeft) {
             targetRow = shallowRow - 1;
-        } else if (remainder == 3) {
+        } else if (deepLocRight) {
             targetRow = shallowRow + 1;
         } else {
-            throw new RuntimeException(shallowRow + "涓嶆槸娴呭簱浣嶆帓锛岀郴缁熺箒蹇�");
+            throw new RuntimeException(shallowRow + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖");
         }
         return targetRow;
     }
@@ -476,7 +499,7 @@
             }
             if ((curRow - sRow) % 4 == 0) {
                 necessaryParameters[1] = curRow;    //curRow   鏈�娣卞簱浣嶆帓
-                necessaryParameters[2] = (curRow - sRow + 2) / 4 + sCrnNo - 1;     //crnNo     鍫嗗灈鏈哄彿
+                necessaryParameters[2] = (curRow - sRow + 2) / 4 + sCrnNo;     //crnNo     鍫嗗灈鏈哄彿
                 necessaryParameters[3] = curRow + 1;    //nearRow  鏈�娴呭簱浣嶆帓
             } else if ((curRow - sRow + 1) % 4 == 0) {
                 necessaryParameters[1] = curRow;    //curRow   鏈�娣卞簱浣嶆帓

--
Gitblit v1.9.1