From 7c077bec6a5912b39262e5aa65c1eba174e10e7a Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期五, 16 二月 2024 21:43:29 +0800
Subject: [PATCH] #

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

diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 1f40a61..2adeca1 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -218,15 +218,36 @@
 //        System.out.println(deepRow);
 //    }
 
-    public static boolean BooleanWhsTypeSta(Integer whsType) {
+    public static Integer GetWhsType(Integer sourceStaNo) {
+        switch (sourceStaNo){
+            case 104:
+            case 173:
+            case 174:
+            case 175:
+            case 130:
+            case 125:
+                return 5;
+            default:
+                return 0;
+        }
+    }
+
+    public static boolean BooleanWhsTypeStaIoType(Integer whsType) {
         if (whsType == 1) {
             return true;
         }
         return false;
     }
 
+    public static boolean BooleanWhsTypeSta(Integer whsType) {
+        if (whsType == 1 || whsType == 5) {
+            return true;
+        }
+        return false;
+    }
+
     public static boolean BooleanWhsTypeSta(Integer whsType, Integer staDescId) {
-        if (whsType == 1 && staDescId != 11 && staDescId != 111) {
+        if ((whsType == 1 || whsType == 5) && staDescId != 11 && staDescId != 111) {
             return true;
         }
         return false;
@@ -252,7 +273,15 @@
     public static int[] LocNecessaryParameters(Integer whsType, Integer curRow, Integer crnNumber) {
         switch (whsType){
             case 1://缁忓吀鍙屼几搴撲綅
-                return LocNecessaryParametersDoubleExtension(whsType, curRow, crnNumber);
+                return LocNecessaryParametersDoubleExtension(whsType, curRow, crnNumber); //宸插畬鍠�
+//            case 2://缁忓吀鍗曚几搴撲綅
+//                return LocNecessaryParametersDoubleExtension1(whsType, curRow, crnNumber); //鏈畬鍠�
+//            case 3://缁忓吀鍗曞弻浼稿簱浣�  宸﹀崟鍙冲弻
+//                return LocNecessaryParametersDoubleExtension2(whsType, curRow, crnNumber); //鏈畬鍠�
+//            case 4://缁忓吀鍗曞弻浼稿簱浣�  宸﹀弻鍙冲崟
+//                return LocNecessaryParametersDoubleExtension3(whsType, curRow, crnNumber); //鏈畬鍠�
+            case 5://鍙屽伐浣嶅崟浼稿簱浣�
+                return LocNecessaryParametersDoubleExtension5(whsType, curRow, crnNumber); //鏈畬鍠�
             default:
                 return LocNecessaryParametersMove(whsType, curRow, crnNumber);//moveCrnNo
         }
@@ -309,6 +338,41 @@
         return necessaryParameters;
     }
 
+    //鍙屽伐浣嶅崟浼稿簱浣�
+    public static int[] LocNecessaryParametersDoubleExtension5(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;
+    }
+
 
     public static void main(String[] args) {
         List<LocMast> locS = new ArrayList<LocMast>();

--
Gitblit v1.9.1