From 378c4ef0d9013c4a2dcb22beca22e32535e280f0 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期一, 23 十月 2023 10:25:10 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/utils/Utils.java |  108 +++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 94 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index ef6014f..6aff3ca 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -2,6 +2,7 @@
 
 import com.core.common.Arith;
 import com.core.common.Cools;
+import com.core.exception.CoolException;
 import com.zy.common.properties.SlaveProperties;
 
 import java.text.DecimalFormat;
@@ -60,6 +61,29 @@
     }
 
     /**
+     * 鍒ゆ柇鏄惁涓哄乏娣卞簱浣�
+     */
+    public static boolean isDeepLocLeft(SlaveProperties slaveProperties, Integer row){
+        if (slaveProperties.isDoubleDeep()) {
+            return slaveProperties.getDoubleLocsLeft().contains(row);
+        } else {
+            return false;
+        }
+    }
+
+
+    /**
+     * 鍒ゆ柇鏄惁涓哄彸娣卞簱浣�
+     */
+    public static boolean isDeepLocRight(SlaveProperties slaveProperties, Integer row){
+        if (slaveProperties.isDoubleDeep()) {
+            return slaveProperties.getDoubleLocsRight().contains(row);
+        } else {
+            return false;
+        }
+    }
+
+    /**
      * 鍒ゆ柇鏄惁涓烘祬搴撲綅
      */
     public static boolean isShallowLoc(SlaveProperties slaveProperties, String locNo){
@@ -88,14 +112,7 @@
     public static String getShallowLoc(SlaveProperties slaveProperties, String deepLoc) {
         int row = getRow(deepLoc);
         int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount());
-        int shallowRow;
-        if (row==9 || row==15){
-            shallowRow=row+1;
-        }else if (row==12 || row==18){
-            shallowRow=row-1;
-        }else {
-            throw new RuntimeException(row + "涓嶆槸娣卞簱浣嶏紝绯荤粺绻佸繖");
-        }
+        int shallowRow = remainder == 1 ? (row + 1) : (row - 1);
         return zerofill(String.valueOf(shallowRow), 2) + deepLoc.substring(2);
     }
 
@@ -114,9 +131,9 @@
         int row = getRow(shallowLoc);
         int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount());
         int targetRow;
-        if (row == 10 || row == 16) {
+        if (remainder == 2) {
             targetRow = row - 1;
-        } else if (row == 11 || row == 17) {
+        } else if (remainder == 3) {
             targetRow = row + 1;
         } else {
             throw new RuntimeException(shallowLoc + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖");
@@ -133,10 +150,6 @@
         if (remainder == 2) {
             targetRow = shallowRow - 1;
         } else if (remainder == 3) {
-            targetRow = shallowRow + 1;
-        } else if (shallowRow == 10 || shallowRow == 16) {
-            targetRow = shallowRow - 1;
-        } else if (shallowRow == 11 || shallowRow == 17) {
             targetRow = shallowRow + 1;
         } else {
             throw new RuntimeException(shallowRow + "涓嶆槸娴呭簱浣嶆帓锛岀郴缁熺箒蹇�");
@@ -183,4 +196,71 @@
         System.out.println(deepRow);
 
     }
+
+    public static boolean BooleanWhsTypeSta(Integer whsType){
+        if (whsType==1){
+            return true;
+        }
+        return false;
+    }
+
+    public static boolean BooleanWhsTypeSta(Integer whsType, Integer staDescId){
+        if (whsType==1 && staDescId!=11 && staDescId!=111){
+            return true;
+        }
+        return false;
+    }
+
+    public static int RowCount(Integer whsType,Integer curRow,Integer crnNumber){
+        return LocNecessaryParameters(whsType, curRow,crnNumber)[0];
+    }
+    public static int getCurRow(Integer whsType,Integer curRow,Integer crnNumber){
+        return LocNecessaryParameters(whsType, curRow,crnNumber)[1];
+    }
+    public static int getCrnNo(Integer whsType,Integer curRow,Integer crnNumber){
+        return LocNecessaryParameters(whsType, curRow,crnNumber)[2];
+    }
+    public static int getNearRow(Integer whsType,Integer curRow,Integer crnNumber){
+        return LocNecessaryParameters(whsType, curRow,crnNumber)[3];
+    }
+
+    //搴撲綅鎺掑彿鍒嗛厤
+    public static int[] LocNecessaryParameters(Integer whsType,Integer curRow,Integer crnNumber){
+        return LocNecessaryParametersDoubleExtension(whsType, curRow,crnNumber);
+    }
+
+    //缁忓吀鍙屼几搴撲綅
+    public static int[] LocNecessaryParametersDoubleExtension(Integer whsType,Integer curRow,Integer crnNumber){
+        int[] necessaryParameters=new int[]{0,0,0,0};
+        if (BooleanWhsTypeSta(whsType)){
+            necessaryParameters[0] = crnNumber;
+            //婊℃澘姝e父鍏ュ簱
+            if (curRow.equals(crnNumber*4)){
+                necessaryParameters[1] = 1;    //curRow   鏈�娣卞簱浣嶆帓
+                necessaryParameters[2] = 1;     //crnNo     鍫嗗灈鏈哄彿
+                necessaryParameters[3] = 2;    //nearRow  鏈�娴呭簱浣嶆帓
+            }else if (curRow.equals(crnNumber*4-3)){
+                necessaryParameters[1] = 4;    //curRow   鏈�娣卞簱浣嶆帓
+                necessaryParameters[2] = 1;     //crnNo     鍫嗗灈鏈哄彿
+                necessaryParameters[3] = 3;    //nearRow  鏈�娴呭簱浣嶆帓
+            }else {
+                curRow=curRow+4;
+                if (curRow<1 || curRow > (crnNumber*4)){
+                    throw new CoolException("搴撲綅鎺掑彿寮傚父锛氭帓鍙凤細"+curRow);
+                }
+                if ((curRow-1)%4==0){
+                    necessaryParameters[1] = curRow;    //curRow   鏈�娣卞簱浣嶆帓
+                    necessaryParameters[2] = (curRow+3)/4;     //crnNo     鍫嗗灈鏈哄彿
+                    necessaryParameters[3] = curRow+1;    //nearRow  鏈�娴呭簱浣嶆帓
+                }else if (curRow%4==0){
+                    necessaryParameters[1] = curRow;    //curRow   鏈�娣卞簱浣嶆帓
+                    necessaryParameters[2] = curRow/4;     //crnNo     鍫嗗灈鏈哄彿
+                    necessaryParameters[3] = curRow-1;    //nearRow  鏈�娴呭簱浣嶆帓
+                }else {
+                    throw new CoolException("搴撲綅鎺掑彿寮傚父锛氭帓鍙凤細"+curRow);
+                }
+            }
+        }
+        return necessaryParameters;
+    }
 }

--
Gitblit v1.9.1