From f1f42f11fae5df52905f80b856f047e93b57f6e3 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期四, 19 六月 2025 09:26:23 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/utils/Utils.java |   67 +++++++++++++++++++++------------
 1 files changed, 42 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index dba862f..17910d6 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -87,14 +87,11 @@
      */
     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);
-        if(row==9 ||  row==15 ){
-            shallowRow = row + 1;
-        }else if(row==12 ||  row==18 ){
-            shallowRow = row - 1;
+        int shallowRow = row;
+        if (slaveProperties.getDoubleLocsLeft().contains(row)) {
+            shallowRow = (row + 1);
         }else {
-            return null;
+            shallowRow = (row - 1);
         }
         return zerofill(String.valueOf(shallowRow), 2) + deepLoc.substring(2);
     }
@@ -103,8 +100,13 @@
      * 鑾峰彇 娣卞簱浣嶆帓瀵瑰簲鐨勬祬搴撲綅鎺�
      */
     public static Integer getShallowRow(SlaveProperties slaveProperties, Integer deepRow) {
-        int remainder = (int) Arith.remainder(deepRow, slaveProperties.getGroupCount());
-        return remainder == 1 ? (deepRow + 1) : (deepRow - 1);
+        int shallowRow = deepRow;
+        if (slaveProperties.getDoubleLocsLeft().contains(deepRow)) {
+            shallowRow = (deepRow + 1);
+        }else {
+            shallowRow = (deepRow - 1);
+        }
+        return shallowRow;
     }
 
     /**
@@ -112,14 +114,11 @@
      */
     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 + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖");
+        int targetRow = row;
+        if (slaveProperties.getShallowLocsLeft().contains(row)) {
+            targetRow = (row - 1);
+        } else if (slaveProperties.getShallowLocsRight().contains(row)) {
+            targetRow = (row + 1);
         }
         return zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2);
     }
@@ -128,14 +127,11 @@
      * 鑾峰彇 娴呭簱浣嶆帓瀵瑰簲鐨勬繁搴撲綅鎺�
      */
     public static Integer getDeepRow(SlaveProperties slaveProperties, Integer shallowRow) {
-        int remainder = (int) Arith.remainder(shallowRow, slaveProperties.getGroupCount());
-        int targetRow;
-        if (remainder == 2) {
-            targetRow = shallowRow - 1;
-        } else if (remainder == 3) {
-            targetRow = shallowRow + 1;
-        } else {
-            throw new RuntimeException(shallowRow + "涓嶆槸娴呭簱浣嶆帓锛岀郴缁熺箒蹇�");
+        int targetRow = shallowRow;
+        if (slaveProperties.getShallowLocsLeft().contains(shallowRow)) {
+            targetRow = (shallowRow - 1);
+        } else if (slaveProperties.getShallowLocsRight().contains(shallowRow)) {
+            targetRow = (shallowRow + 1);
         }
         return targetRow;
     }
@@ -168,9 +164,30 @@
 
     }
 
+    /**
+     * 閫氳繃搴撲綅鍙疯幏鍙栨墍鍦ㄥ贩閬�
+     */
+    public static int getLaneByLocNo(String locNo) {
+        int row = Utils.getRow(locNo);
+        switch (row) {
+            case 1:
+            case 2:
+            case 3:
+                return 1;
+            case 4:
+            case 5:
+            case 6:
+                return 2;
+        }
+        return 0;
+    }
+
     public static void main(String[] args) {
         SlaveProperties slaveProperties = new SlaveProperties();
         slaveProperties.setDoubleDeep(true);
+
+        String aa = getDeepLoc(slaveProperties,"1604402");
+
         List<Integer> list = new ArrayList<>();
         list.add(1);list.add(4);list.add(5);list.add(8);list.add(9);list.add(12);
         slaveProperties.setDoubleLocs(list);

--
Gitblit v1.9.1