From e6b8c60deb5d86736455e65b85c888619008286f Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期二, 21 十一月 2023 14:17:46 +0800
Subject: [PATCH] #

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

diff --git a/src/main/java/com/zy/asrs/utils/RouteUtils.java b/src/main/java/com/zy/asrs/utils/RouteUtils.java
index d0514e8..9fbe2da 100644
--- a/src/main/java/com/zy/asrs/utils/RouteUtils.java
+++ b/src/main/java/com/zy/asrs/utils/RouteUtils.java
@@ -4,6 +4,7 @@
 import java.util.List;
 import static java.util.stream.Collectors.toList;
 import com.zy.core.enums.RouteCollectCountType;
+import springfox.documentation.spring.web.json.Json;
 
 /**
  * Created by Monkey D. Luffy on 2023/7/18
@@ -63,6 +64,82 @@
         return result;
     }
 
+    /*
+    * 鑾峰彇鏈�杩滅珯鐐�
+    * */
+    public static Integer RouteIndexFarMas(Integer a,Integer b,Integer c,Integer d){
+        int ia = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(a);
+        int ib = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(b);
+        int ic = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(c);
+        int id = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(d);
+        if (id==0){
+            if (ia>ib){
+                if (ia>ic){
+                    return a;
+                }else {
+                    return c;
+                }
+            }else {
+                if (ib>ic){
+                    return b;
+                }else {
+                    return c;
+                }
+            }
+        }else {
+            if (ia<ib){
+                if (ia<ic){
+                    return a;
+                }else {
+                    return c;
+                }
+            }else {
+                if (ib<ic){
+                    return b;
+                }else {
+                    return c;
+                }
+            }
+        }
+    }
+
+    public static Integer[] RouteIndexFarArr(Integer a,Integer b,Integer c,Integer d){
+        int ia = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(a);
+        int ib = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(b);
+        int ic = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(c);
+        int id = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(d);
+        return new Integer[]{ia,ib,ic,id};
+    }
+
+    /*
+     * a  灏忚溅褰撳墠浣嶇疆
+     * b  灏忚溅浠诲姟寮�濮嬩綅缃�
+     * c  灏忚溅浠诲姟缁撴潫浣嶇疆
+     * d  灏忚溅鍒濆浣嶇疆
+     * 鑾峰彇鏈�澶ц矾寰勫樊鍊�
+     * */
+    public static List<Integer>  RouteMapCurrentFar(Integer a,Integer b,Integer c,Integer d){
+        Integer farStn = RouteIndexFarMas(a, b, c, d);
+        return getRouteIntersection(TRACK_POSITION_POSITIVE_SEQUENCE,getRoute(farStn, d), RouteCollectCountType.DIFFERENCESET);
+    }
+
+    public static List<Integer>  RouteMapCurrentFar(Integer farStn,Integer d){
+        return getRouteIntersection(TRACK_POSITION_POSITIVE_SEQUENCE,getRoute(farStn, d), RouteCollectCountType.DIFFERENCESET);
+    }
+
+    /*
+    * 鍙︿竴鍙板皬杞︽渶杩滀綅缃�
+    * */
+    public static Integer RouteMapOtherFarStnNo(List<Integer> routeDIFF,Integer d){
+        int id = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(d);
+        if (id==0){
+            return routeDIFF.get(0);
+        }else {
+            int size = routeDIFF.size();
+            return routeDIFF.get(size-1);
+        }
+    }
+
     //鏄惁鏈変氦闆�
     public static boolean getRouteBoolean(List<Integer> groupCurrent,List<Integer> groupOther){
         for (Integer positionCurrent : groupCurrent){
@@ -109,6 +186,12 @@
         return !getRouteBoolean(routeCurrent, routeOther);  //鏄惁鏈変氦闆�
     }
 
+    public static List<Integer> RouteAutoBoolean(Integer a,Integer b,Integer c){
+        return getRouteIntersection(getRoute(a, c), getRoute(b, c), RouteCollectCountType.DEDUPLICATIONUNION);
+    }
+
+
+
     public static void main(String[] arge){
         List<Integer> routeCurrent = getRoute(104, 119);  //鑾峰彇褰撳墠灏忚溅璺緞
         List<Integer> routeOther = getRoute(117, 118);  //鑾峰彇鍏跺畠灏忚溅璺緞
@@ -131,6 +214,18 @@
         System.out.println("璺緞鍘婚噸骞堕泦锛歕t"+routeIntersection3);
 
         System.out.println(RouteAutoBoolean(101,104,119,114,116,120,true));
+
+        List<Integer> routeDIFF = RouteMapCurrentFar(114, 104, 119, 117);
+        System.out.println("褰撳墠璺緞鏈�澶ч泦鍚堬細\t"+ routeDIFF);
+
+        Integer routeFarOther= RouteMapOtherFarStnNo(routeDIFF,117);
+        System.out.println("鍙︿竴鍙板皬杞︽渶杩滅珯鐐癸細\t"+routeFarOther);
+
+
+        Integer[] integers = RouteIndexFarArr(114, 104, 119, 101);
+        for (Integer integer:integers){
+            System.out.println(integer);
+        }
     }
 
 }

--
Gitblit v1.9.1