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