#
lsh
2024-04-03 b3a1f01b15b2cc6969091a4972204593147119e4
src/main/java/com/zy/asrs/utils/RouteUtils.java
@@ -3,6 +3,8 @@
import java.util.ArrayList;
import java.util.List;
import static java.util.stream.Collectors.toList;
import com.zy.asrs.entity.WrkMastSta;
import com.zy.core.enums.RouteCollectCountType;
import springfox.documentation.spring.web.json.Json;
@@ -103,47 +105,180 @@
    public static Integer RouteIndexFarMas(int rgvNo,Integer staNo){
        if (rgvNo==1){
            switch (staNo){
                case 101:
                case 102: return  102;
                case 101:   return  102;
                case 102:   return  122;
                case 104:
                case 122: return  118;
                case 105: return  119;
                case 122:
                case 105:   return  105;
                case 107:
                case 118: return  120;
                case 118:   return  119;
                case 108:
                case 119: return  111;
                case 119:   return  120;
                case 110:
                case 120: return  113;
                case 111:
                case 121: return  113;
                case 113: return  114;
                case 120:
                case 111:   return  121;
                case 121:   return  113;
                case 113:   return  1142;
                case 123:
                case 114: return  1142;
                case 114:   return  116;
                default:
                    return 116;
            }
        }else {
            switch (staNo){
                case 117:
                case 116: return  123;
                case 116:   return  1142;
                case 1142:
                case 114: return  113;
                case 123:
                case 113: return  111;
                case 114:
                case 123:   return  113;
                case 113:   return  121;
                case 121:
                case 111: return  108;
                case 111:   return  110;
                case 120:
                case 110: return 107;
                case 110:   return 108;
                case 119:
                case 108: return  107;
                case 108:
                case 118:
                case 107: return  105;
                case 105:
                case 107:   return  107;
                case 105:   return  104;
                case 122:
                case 104: return  104;
                case 104:   return  102;
                default:
                    return 102;
            }
        }
//        if (rgvNo==1){
//            switch (staNo){
//                case 101:
//                case 102: return  102;
//                case 104:
//                case 122: return  118;
//                case 105: return  119;
//                case 107:
//                case 118: return  120;
//                case 108:
//                case 119: return  111;
//                case 110:
//                case 120: return  113;
//                case 111:
//                case 121: return  113;
//                case 113: return  114;
//                case 123:
//                case 114: return  1142;
//                default:
//                    return 116;
//            }
//        }else {
//            switch (staNo){
//                case 117:
//                case 116: return  123;
//                case 1142:
//                case 114: return  113;
//                case 123:
//                case 113: return  111;
//                case 121:
//                case 111: return  108;
//                case 120:
//                case 110: return 107;
//                case 119:
//                case 108: return  107;
//                case 118:
//                case 107: return  105;
//                case 105:
//                case 122:
//                case 104: return  104;
//                default:
//                    return 102;
//            }
//        }
    }
    /*
     * 获取干涉最远站点
     * */
    public static Integer RouteIndexFarMasReverse(int rgvNo,Integer staNo){
        if (rgvNo==1) {
            switch (staNo) {
                case 101:
                case 102:   return 0;
                case 104:
                case 122:
                case 105:   return 102;
                case 107:
                case 118:
                case 108:
                case 119:   return 105;
                case 110:
                case 120:
                    return 107;
                case 111:
                case 121:
                    return 108;
                case 113:
                    return 111;
                case 123:
                case 114:
                    return 121;
                case 1142:
                case 116:
                case 117:
                    return 0;
                default:
                    return 101;
            }
        }else{
            switch (staNo) {
                case 117:
                case 116:
                case 1142:
                    return 0;
                case 114:
                case 123:
                case 113:
                    return 117;
                case 121:return 123;
                case 111:
                case 120:
                case 110:
                    return 113;
                case 119:
                case 108:
                    return 111;
                case 118:
                case 107:
                    return 110;
                case 105:
                case 122:
                case 104:
                    return 107;
                case 102:
                case 101:
                    return 0;
                default:
                    return 117;
            }
            /*
            * switch (staNo){
                case 117:
                case 116:   return  1142;
                case 1142:
                case 114:
                case 123:   return  113;
                case 113:   return  121;
                case 121:
                case 111:   return  110;
                case 120:
                case 110:   return 108;
                case 119:
                case 108:
                case 118:
                case 107:   return  107;
                case 105:   return  104;
                case 122:
                case 104:   return  102;
                default:
                    return 102;
            }*/
        }
    }
@@ -347,6 +482,47 @@
        return getRouteIntersection(getRoute(a, c), getRoute(b, c), RouteCollectCountType.DEDUPLICATIONUNION);
    }
    public static Integer[] RgvRunSta(Integer runStaStart,Integer runStaEnd){
        int ia = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(runStaStart);
        int ib = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(runStaEnd);
        if (ia<=ib){
            return new Integer[]{RouteIndexFarMasReverse(1,runStaStart),RouteIndexFarMasReverse(2,runStaEnd)};
        }else {
            return new Integer[]{RouteIndexFarMasReverse(1,runStaEnd),RouteIndexFarMasReverse(2,runStaStart)};
        }
//        if (ia<=ib){
//            return new Integer[]{TRACK_POSITION_POSITIVE_SEQUENCE.get(ia),TRACK_POSITION_POSITIVE_SEQUENCE.get(ib)};
//        }else {
//            return new Integer[]{TRACK_POSITION_POSITIVE_SEQUENCE.get(ib),TRACK_POSITION_POSITIVE_SEQUENCE.get(ia)};
//        }
//        if (ia<=ib){
//            return new Integer[]{TRACK_POSITION_POSITIVE_SEQUENCE.get(ia-1),TRACK_POSITION_POSITIVE_SEQUENCE.get(ib+1)};
//        }else {
//            return new Integer[]{TRACK_POSITION_POSITIVE_SEQUENCE.get(ib+1),TRACK_POSITION_POSITIVE_SEQUENCE.get(ia-1)};
//        }
    }
    public static boolean RgvRunStaSign(Integer staBow,Integer runStaEnd,Integer rgvNo){
        int ia =  TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(staBow);
        int ib = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(runStaEnd);
        if (rgvNo==1){
            if (ia>ib){
                return true;//需要避让
            }else {
                return false;//不需要避让
            }
        }else {
            if (ia<ib){
                return true;//需要避让
            }else {
                return false;//不需要避让
            }
        }
    }
    public static void main(String[] arge){