From 8478a159d79bf9ca5da04ab18562f2d7cdddb05c Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期四, 25 九月 2025 17:06:08 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/utils/RouteUtils.java |  108 +++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 91 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/zy/asrs/utils/RouteUtils.java b/src/main/java/com/zy/asrs/utils/RouteUtils.java
index 6a11135..15101f5 100644
--- a/src/main/java/com/zy/asrs/utils/RouteUtils.java
+++ b/src/main/java/com/zy/asrs/utils/RouteUtils.java
@@ -2,8 +2,7 @@
 
 import com.zy.core.enums.RouteCollectCountType;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 import static java.util.stream.Collectors.toList;
 
@@ -14,29 +13,66 @@
 
     //闂2  鍛ㄤ繆鏉�
     public static final List<Integer> MERGE_STA_NO_One = new ArrayList<Integer>() {{
-        add(113);add(119);
+//        add(113);add(119);
     }};
 
     public static final List<Integer> MERGE_STA_NO_TWO = new ArrayList<Integer>() {{
-//        add(116);add(117);
+//        add(100);add(101);
     }};
 
     public static final List<Integer> MERGE_STA_NO_THREE = new ArrayList<Integer>() {{
-//        add(116);add(117);
+//        add(106);add(107);
     }};
 
     public static final List<Integer> MERGE_STA_NO_FOUR = new ArrayList<Integer>() {{
 //        add(116);add(117);
     }};
 
-//    姝e簭
-    public static final List<Integer> TRACK_POSITION_POSITIVE_SEQUENCE = new ArrayList<Integer>() {{
-        add(161);add(157);add(153);add(149);add(124);add(119);add(113);add(112);add(107);add(106);add(101);add(100);
-    }};
-//    鍙嶅簭
-    public static final List<Integer> TRACK_POSITION_REVERSE_SEQUENCE = new ArrayList<Integer>() {{
-        add(100);add(101);add(106);add(107);add(112);add(113);add(119);add(124);add(149);add(153);add(157);add(161);
-    }};
+    // RGV杞ㄩ亾姝e簭锛堜粠涓婂埌涓嬶級
+    public static final List<Integer> TRACK_POSITION_POSITIVE_SEQUENCE = Arrays.asList(
+        1004,
+        1007,
+        1010,
+        1014,
+        1018,
+        1021,
+        1024,
+        1028,
+        1031,
+        1035
+    );
+
+    // 鍙嶅簭锛堢洿鎺ュ弽杞敓鎴愶級
+    public static final List<Integer> TRACK_POSITION_REVERSE_SEQUENCE = new ArrayList<>(TRACK_POSITION_POSITIVE_SEQUENCE);
+    static {
+        Collections.reverse(TRACK_POSITION_REVERSE_SEQUENCE);
+    }
+    //1妤兼垬绔欑偣
+    public static final List<Integer> TRACK_POSITION_ONE = Arrays.asList(
+            1004, 1007, 1010, 1014, 1018, 1021, 1024, 1028, 1031, 1035,1042,1105,1106,1041,
+            1038,1036
+    );
+    //2妤兼垬绔欑偣
+    public static final List<Integer> TRACK_POSITION_TWO = Arrays.asList(
+            2003,2006,2009,2012,2015,2018,2021,2024,2027,2030,2037,2031
+    );
+
+    // 杞ㄩ亾鏄犲皠锛堟妸鏄犲皠绔欑偣鏇挎崲鎴愪富绔欑偣锛�
+    public static final Map<Integer, Integer> SITE_MAPPING = new HashMap<>();
+    static {
+        SITE_MAPPING.put(1042, 1004);
+        SITE_MAPPING.put(1105, 1007);
+        SITE_MAPPING.put(1106, 1010);
+        SITE_MAPPING.put(1041, 1024);
+        SITE_MAPPING.put(1038, 1028);
+        SITE_MAPPING.put(1036, 1035);
+    }
+
+    // 鑾峰彇杞ㄩ亾鍒楄〃涓疄闄呯珯鐐�
+    private static Integer mapSite(Integer site) {
+        return SITE_MAPPING.getOrDefault(site, site);
+    }
+
 
     public static String zerofill(String msg, Integer count){
         if (msg.length() == count){
@@ -51,6 +87,7 @@
             return msgBuilder.toString();
         }
     }
+
     /*
      * 鑾峰彇骞叉秹鏈�杩滅珯鐐�
      * */
@@ -73,6 +110,30 @@
             indexNo=staFall.size()-1;
         }
         return staFall.get(indexNo);
+    }
+
+    // 鑾峰彇褰撳墠灏忚溅鏈璧扮殑璺嚎闆嗗悎
+    public static List<Integer> getRouteDis(Integer groupStart, Integer groupEnd) {
+        groupStart = mapSite(groupStart);
+        groupEnd = mapSite(groupEnd);
+
+        int startIdx = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(groupStart);
+        int endIdx = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(groupEnd);
+
+        if (startIdx == -1 || endIdx == -1) return null;
+
+        boolean forward = startIdx < endIdx;
+        List<Integer> route = forward ? TRACK_POSITION_POSITIVE_SEQUENCE : TRACK_POSITION_REVERSE_SEQUENCE;
+
+        List<Integer> result = new ArrayList<>();
+        boolean addFlag = false;
+        for (Integer s : route) {
+            s = mapSite(s);
+            if (s.equals(groupStart)) addFlag = true;
+            if (addFlag) result.add(s);
+            if (s.equals(groupEnd)) break;
+        }
+        return result;
     }
 
 
@@ -104,6 +165,20 @@
             return null;
         }
         return result;
+    }
+    public static List<Integer> getRouteOne(){
+
+        List<Integer> groupRoute = new ArrayList<>();
+        groupRoute = TRACK_POSITION_ONE;
+
+        return groupRoute;
+    }
+    public static List<Integer> getRouteTwo(){
+
+        List<Integer> groupRoute = new ArrayList<>();
+        groupRoute = TRACK_POSITION_TWO;
+
+        return groupRoute;
     }
 
     /*
@@ -233,14 +308,13 @@
     }
 
     public static Short CrnStaEnd(Integer endSta,Integer souSta) {
-        if (souSta == 118){
-            return (short)119;
-        }
         switch (endSta) {
             case 100:
-                return (short)149;
             case 102:
             case 111:
+                if (souSta == 118 || souSta == 127){
+                    return (short)119;
+                }
                 return 149;
             default:
                 return endSta.shortValue();

--
Gitblit v1.9.1