|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //问题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>() {{ | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //    正序 | 
|---|
|  |  |  | 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(999);;add(112);add(107);add(106);add(101);add(100); | 
|---|
|  |  |  | 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(999);add(113);add(119);add(124);add(149);add(153);add(157);add(161); | 
|---|
|  |  |  | add(100);add(101);add(106);add(107);add(112);add(113);add(124);add(119);add(149);add(153);add(157);add(161); | 
|---|
|  |  |  | }}; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static String zerofill(String msg, Integer count){ | 
|---|
|  |  |  | 
|---|
|  |  |  | * 获取最远站点 | 
|---|
|  |  |  | * */ | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | 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){ | 
|---|
|  |  |  | 
|---|
|  |  |  | public static Short CrnStaEnd(Integer endSta,Integer souSta) { | 
|---|
|  |  |  | switch (endSta) { | 
|---|
|  |  |  | case 100: | 
|---|
|  |  |  | if (souSta == 118){ | 
|---|
|  |  |  | return (short)119; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return (short)149; | 
|---|
|  |  |  | case 102: | 
|---|
|  |  |  | case 111: | 
|---|
|  |  |  | if (souSta == 118 || souSta == 127){ | 
|---|
|  |  |  | return (short)119; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return 149; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | return endSta.shortValue(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static  Short SouStaEnd(Integer endSta,Integer souSta){ | 
|---|
|  |  |  | if (souSta == 159) { | 
|---|
|  |  |  | return (short)161; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return souSta.shortValue(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static void main(String[] arge){ | 
|---|
|  |  |  | List<Integer> routeCurrent = getRoute(100, 124);  //获取当前小车路径 | 
|---|
|  |  |  | List<Integer> routeOther = getRoute(149, 161);  //获取其它小车路径 | 
|---|
|  |  |  | System.out.println("当前小车路径:\t"+routeCurrent); | 
|---|
|  |  |  | System.out.println("其它小车路径:\t"+routeOther); | 
|---|
|  |  |  | //{"endRoute":999,"lockEndRoute":124,"lockStartRoute":161,"nowRoute":161,"rgvNo":3,"rgvStatus":0,"startRoute":161}   3hao | 
|---|
|  |  |  | Integer i = RouteIndexFarMas(112, 161, 124, 161); | 
|---|
|  |  |  | System.out.println(i); | 
|---|
|  |  |  | //{"endRoute":119,"lockEndRoute":112,"lockStartRoute":100,"nowRoute":112,"rgvNo":2,"rgvStatus":0,"startRoute":100} 2 | 
|---|
|  |  |  | Integer i1 = RouteIndexFarMas(112, 100, 112, 100); | 
|---|
|  |  |  | System.out.println(i1); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | boolean routeBoolean = getRouteBoolean(routeCurrent, routeOther);  //是否有交集 | 
|---|
|  |  |  | System.out.println("是否有交集:\t"+routeBoolean); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<Integer> routeIntersection = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.INTERSECTION);//交集 | 
|---|
|  |  |  | System.out.println("路径交集:\t"+routeIntersection); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<Integer> routeIntersection1 = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.DIFFERENCESET);//差集 | 
|---|
|  |  |  | System.out.println("路径差集:\t"+routeIntersection1); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<Integer> routeIntersection2 = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.UNION);//并集 | 
|---|
|  |  |  | System.out.println("路径并集:\t"+routeIntersection2); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<Integer> routeIntersection3 = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.DEDUPLICATIONUNION);//去重并集 | 
|---|
|  |  |  | System.out.println("路径去重并集:\t"+routeIntersection3); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /* | 
|---|
|  |  |  | * a  小车当前位置 | 
|---|
|  |  |  | * b  小车任务开始位置 | 
|---|
|  |  |  | * c  小车任务结束位置 | 
|---|
|  |  |  | * sign  另一个小车空闲标记 | 
|---|
|  |  |  | * */ | 
|---|
|  |  |  | System.out.println("是否有交集:\t"+RouteAutoBoolean(100,101,124,149,161,153,true));   //是否有交集  true无交集  false有交集 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /* | 
|---|
|  |  |  | * a  小车当前位置 | 
|---|
|  |  |  | * b  小车任务开始位置 | 
|---|
|  |  |  | * c  小车任务结束位置 | 
|---|
|  |  |  | * d  小车初始位置 | 
|---|
|  |  |  | * 获取最大路径差值 | 
|---|
|  |  |  | * */ | 
|---|
|  |  |  | List<Integer> routeDIFF = RouteMapCurrentFar(100,101,124,149); | 
|---|
|  |  |  | System.out.println("当前路径最大集合:\t"+ routeDIFF); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Integer routeFarOther= RouteMapOtherFarStnNo(routeDIFF,124); | 
|---|
|  |  |  | System.out.println("另一台小车最远站点:\t"+routeFarOther); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Integer[] integers = RouteIndexFarArr(100,101,124,149); | 
|---|
|  |  |  | for (Integer integer:integers){ | 
|---|
|  |  |  | System.out.println(integer); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        List<Integer> routeCurrent = getRoute(100, 124);  //获取当前小车路径 | 
|---|
|  |  |  | //        List<Integer> routeOther = getRoute(149, 161);  //获取其它小车路径 | 
|---|
|  |  |  | //        System.out.println("当前小车路径:\t"+routeCurrent); | 
|---|
|  |  |  | //        System.out.println("其它小车路径:\t"+routeOther); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        boolean routeBoolean = getRouteBoolean(routeCurrent, routeOther);  //是否有交集 | 
|---|
|  |  |  | //        System.out.println("是否有交集:\t"+routeBoolean); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        List<Integer> routeIntersection = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.INTERSECTION);//交集 | 
|---|
|  |  |  | //        System.out.println("路径交集:\t"+routeIntersection); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        List<Integer> routeIntersection1 = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.DIFFERENCESET);//差集 | 
|---|
|  |  |  | //        System.out.println("路径差集:\t"+routeIntersection1); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        List<Integer> routeIntersection2 = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.UNION);//并集 | 
|---|
|  |  |  | //        System.out.println("路径并集:\t"+routeIntersection2); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        List<Integer> routeIntersection3 = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.DEDUPLICATIONUNION);//去重并集 | 
|---|
|  |  |  | //        System.out.println("路径去重并集:\t"+routeIntersection3); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        /* | 
|---|
|  |  |  | //         * a  小车当前位置 | 
|---|
|  |  |  | //         * b  小车任务开始位置 | 
|---|
|  |  |  | //         * c  小车任务结束位置 | 
|---|
|  |  |  | //         * sign  另一个小车空闲标记 | 
|---|
|  |  |  | //         * */ | 
|---|
|  |  |  | //        System.out.println("是否有交集:\t"+RouteAutoBoolean(100,101,124,149,161,153,true));   //是否有交集  true无交集  false有交集 | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        /* | 
|---|
|  |  |  | //         * a  小车当前位置 | 
|---|
|  |  |  | //         * b  小车任务开始位置 | 
|---|
|  |  |  | //         * c  小车任务结束位置 | 
|---|
|  |  |  | //         * d  小车初始位置 | 
|---|
|  |  |  | //         * 获取最大路径差值 | 
|---|
|  |  |  | //         * */ | 
|---|
|  |  |  | //        List<Integer> routeDIFF = RouteMapCurrentFar(100,101,124,149); | 
|---|
|  |  |  | //        System.out.println("当前路径最大集合:\t"+ routeDIFF); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        Integer routeFarOther= RouteMapOtherFarStnNo(routeDIFF,124); | 
|---|
|  |  |  | //        System.out.println("另一台小车最远站点:\t"+routeFarOther); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        Integer[] integers = RouteIndexFarArr(100,101,124,149); | 
|---|
|  |  |  | //        for (Integer integer:integers){ | 
|---|
|  |  |  | //            System.out.println(integer); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|