From 585023c7abdd062c51ecf33b6b2119f3a4fbf993 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期一, 12 一月 2026 08:16:08 +0800
Subject: [PATCH] #

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

diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 0b98d6b..9d9ff0a 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -10,6 +10,7 @@
 import com.zy.asrs.service.RowLastnoService;
 import com.zy.common.CodeBuilder;
 import com.zy.common.model.LocDetlDto;
+import com.zy.common.model.LocGroupOrder;
 import com.zy.common.properties.SlaveProperties;
 import com.zy.common.service.CommonService;
 import com.zy.system.service.UserService;
@@ -287,6 +288,8 @@
                 return LocNecessaryParametersDoubleExtension5(rowLastno, curRow, crnNumber); //宸插畬鍠�
             case 6://鍥涘悜搴�(鐗涚溂杞�)eg:鍏夋嘲鍥涘悜
                 return LocNecessaryParametersDoubleExtension6(rowLastno, curRow, crnNumber); //宸插畬鍠�
+            case 7://骞冲簱  CTU搴�
+                return LocNecessaryParametersDoubleExtension7(rowLastno, curRow, crnNumber); //宸插畬鍠�
             default:
                 return LocNecessaryParametersMove(rowLastno, curRow, crnNumber);//moveCrnNo
         }
@@ -535,6 +538,26 @@
         return necessaryParameters;
     }
 
+    //骞冲簱锛堝厜娉癨CTU锛�
+    public static int[] LocNecessaryParametersDoubleExtension7(RowLastno rowLastno, Integer curRow, Integer crnNumber) {
+        int[] necessaryParameters = new int[]{0, 0, 0, 0};
+        Integer sRow = rowLastno.getsRow();//璧峰鎺掑彿
+        Integer sCrnNo = rowLastno.getsCrnNo();//璧峰鍫嗗灈鏈哄彿
+        necessaryParameters[0] = crnNumber; // 杞娆℃暟
+        //婊℃澘姝e父鍏ュ簱
+        if (curRow.equals(rowLastno.geteRow())){
+            necessaryParameters[1] = sRow;    //curRow   鏈�娣卞簱浣嶆帓
+            necessaryParameters[2] = sCrnNo;     //crnNo     鍫嗗灈鏈哄彿
+            necessaryParameters[3] = sRow;    //nearRow  鏈�娴呭簱浣嶆帓
+        } else {
+            necessaryParameters[1] = curRow + 1;    //curRow   鏈�娣卞簱浣嶆帓
+            necessaryParameters[2] = sCrnNo;     //crnNo     鍫嗗灈鏈哄彿
+            necessaryParameters[3] = curRow + 1;    //nearRow  鏈�娴呭簱浣嶆帓
+        }
+
+        return necessaryParameters;
+    }
+
 
     public static void main(String[] args) {
         List<LocMast> locS = new ArrayList<LocMast>();
@@ -609,4 +632,52 @@
         return result;
     }
 
+    public static List<Integer> getLocGroupDesc(SlaveProperties slaveProperties, String locNo) {
+        List<Integer> copy = getLocGroupAsc(slaveProperties,locNo);
+        Collections.reverse(copy);
+        return copy;
+    }
+
+    public static String getLocNo(Integer row, int bay, int lev) {
+        return zerofill(String.valueOf(row), 2) + zerofill(String.valueOf(bay), 3) + zerofill(String.valueOf(lev), 2);
+    }
+
+    public static String getLocNoToWcs(Integer row, int bay, int lev) {
+        return zerofill(String.valueOf(row), 2) + zerofill(String.valueOf(bay), 2) + zerofill(String.valueOf(lev), 2);
+    }
+
+    public static List<Integer> getLocGroupAsc(SlaveProperties slaveProperties, String locNo) {
+        LocGroupOrder checkOrder = findLocGroupOrder(slaveProperties, locNo);
+        List<Integer> rowList = checkOrder.getRowList();
+        return new ArrayList<>(rowList);
+    }
+
+    public static LocGroupOrder findLocGroupOrder(SlaveProperties slaveProperties, String locNo) {
+        int row1 = Utils.getRow(locNo);
+        int bay1 = Utils.getBay(locNo);
+        List<LocGroupOrder> locGroupAscOrder = slaveProperties.getLocGroupAscOrder();
+
+        LocGroupOrder checkOrder = null;
+        for (LocGroupOrder order : locGroupAscOrder) {
+            if (!order.getRowList().contains(row1)){
+                continue;
+            }
+
+            if (bay1 < order.getMinBay()){
+                continue;
+            }
+
+            if (bay1 > order.getMaxBay()){
+                continue;
+            }
+
+            checkOrder = order;
+        }
+
+        if (checkOrder == null){
+            throw new RuntimeException(locNo + "搴撲綅鍙�,鏈畾涔夊簱浣嶇粍瑙勫垯");
+        }
+
+        return checkOrder;
+    }
 }

--
Gitblit v1.9.1