|  |  | 
 |  |  |  | 
 |  |  | import com.zy.core.enums.RouteCollectCountType; | 
 |  |  |  | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.List; | 
 |  |  | import java.util.*; | 
 |  |  |  | 
 |  |  | import static java.util.stream.Collectors.toList; | 
 |  |  |  | 
 |  |  | 
 |  |  | //        add(116);add(117); | 
 |  |  |     }}; | 
 |  |  |  | 
 |  |  | //    正序 | 
 |  |  |     public static final List<Integer> TRACK_POSITION_POSITIVE_SEQUENCE = new ArrayList<Integer>() {{ | 
 |  |  |         add(161);add(157);add(153);add(149);add(119);add(124);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(124);add(119);add(149);add(153);add(157);add(161); | 
 |  |  |     }}; | 
 |  |  |     // RGV轨道正序(从上到下) | 
 |  |  |     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,1108,1109 | 
 |  |  |     ); | 
 |  |  |     //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){ | 
 |  |  | 
 |  |  |             return msgBuilder.toString(); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /* | 
 |  |  |      * 获取干涉最远站点 | 
 |  |  |      * */ | 
 |  |  | 
 |  |  |             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; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | 
 |  |  |             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; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /* | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static  Short SouStaEnd(Integer endSta,Integer souSta){ | 
 |  |  |        if (souSta == 159) { | 
 |  |  |            return (short)161; | 
 |  |  |        if (souSta == 1103) { | 
 |  |  |            return (short)1105; | 
 |  |  |        } | 
 |  |  |        if(souSta == 1047){ | 
 |  |  |            return (short)1042; | 
 |  |  |        } | 
 |  |  |        return souSta.shortValue(); | 
 |  |  |     } |