#
lsh
3 天以前 0d8fcb1505ba869290cce9099b42370e4333b708
src/main/java/com/zy/asrs/utils/RouteUtils.java
@@ -12,7 +12,7 @@
public class RouteUtils {
    public static final List<Integer> MERGE_STA_NO_One = new ArrayList<Integer>() {{
        add(116);add(117);
        add(171);add(116);add(117);
    }};
    public static final List<Integer> MERGE_STA_NO_TWO = new ArrayList<Integer>() {{
@@ -28,16 +28,58 @@
    }};
    public static final List<Integer> MERGE_STA_NO_FIVE = new ArrayList<Integer>() {{
        add(113);add(123);add(114);add(1142);
        add(104);add(122);add(105);
    }};
    public static final List<Integer> MERGE_STA_NO_SIX = new ArrayList<Integer>() {{
        add(108);add(119);add(110);add(120);
    }};
    public static final List<Integer> MERGE_STA_NO_SEVEN = new ArrayList<Integer>() {{
    }};
    public static final List<Integer> MERGE_STA_NO_EIGHT = new ArrayList<Integer>() {{
    }};
    public static final List<Integer> MERGE_STA_NO_NINE = new ArrayList<Integer>() {{
    }};
    //    正序
    public static final List<Integer> TRACK_POSITION_POSITIVE_SEQUENCE1 = new ArrayList<Integer>() {{
        add(101);add(102);add(104);add(122);add(105);add(107);add(118);add(108);
    }};
    //    反序
    public static final List<Integer> TRACK_POSITION_REVERSE_SEQUENCE2 = new ArrayList<Integer>() {{
        add(117);add(116);add(171);add(1142);add(114);add(123);add(113);add(121);add(111);add(120);add(110);
    }};
    public static Integer getEndRoute(Integer endRoute,Integer rgvNo){
        if (rgvNo == 1){
            if (TRACK_POSITION_POSITIVE_SEQUENCE1.contains(endRoute)){
                return endRoute;
            } else {
                return 108;
            }
        } else if (rgvNo == 2){
            if (TRACK_POSITION_REVERSE_SEQUENCE2.contains(endRoute)){
                return endRoute;
            } else {
                return 110;
            }
        }
        return endRoute;
    }
//    正序
    public static final List<Integer> TRACK_POSITION_POSITIVE_SEQUENCE = new ArrayList<Integer>() {{
        add(101);add(102);add(104);add(122);add(105);add(107);add(118);add(108);add(119);add(110);add(120);add(111);add(121);add(113);add(123);add(114);add(1142);add(116);add(117);
        add(101);add(102);add(104);add(122);add(105);add(107);add(118);add(108);add(119);add(110);add(120);add(111);add(121);add(113);add(123);add(114);add(1142);add(171);add(116);add(117);
    }};
//    反序
    public static final List<Integer> TRACK_POSITION_REVERSE_SEQUENCE = new ArrayList<Integer>() {{
        add(117);add(116);add(1142);add(114);add(123);add(113);add(121);add(111);add(120);add(110);add(119);add(108);add(118);add(107);add(105);add(122);add(104);add(102);add(101);
        add(117);add(116);add(171);add(1142);add(114);add(123);add(113);add(121);add(111);add(120);add(110);add(119);add(108);add(118);add(107);add(105);add(122);add(104);add(102);add(101);
    }};
    public static String zerofill(String msg, Integer count){
@@ -53,30 +95,121 @@
            return msgBuilder.toString();
        }
    }
//    /*
//     * 获取干涉最远站点
//     * */
//    public static Integer RouteIndexFarMas(int rgvNo,Integer staNo){
//        List<Integer> staFall = new ArrayList<>();
//        if (MERGE_STA_NO_SIX.contains(staNo)){
//            staFall = MERGE_STA_NO_SIX;
//        }else if (MERGE_STA_NO_One.contains(staNo)){
//            staFall = MERGE_STA_NO_One;
//        }else if (MERGE_STA_NO_TWO.contains(staNo)){
//            staFall = MERGE_STA_NO_TWO;
//        }else if (MERGE_STA_NO_THREE.contains(staNo)){
//            staFall = MERGE_STA_NO_THREE;
//        }else if (MERGE_STA_NO_FOUR.contains(staNo)){
//            staFall = MERGE_STA_NO_FOUR;
//        }else if (MERGE_STA_NO_FIVE.contains(staNo)){
//            staFall = MERGE_STA_NO_FIVE;
//        }else {
//            return staNo;
//        }
//
//        int indexNo = 0;
//        if (rgvNo==1){
//            indexNo=staFall.size()-1;
//        }
//        return staFall.get(indexNo);
//    }
    /*
     * 获取干涉最远站点
     * */
    public static Integer RouteIndexFarMas(int rgvNo,Integer staNo){
        List<Integer> staFall = new ArrayList<>();
        if (MERGE_STA_NO_One.contains(staNo)){
            staFall = MERGE_STA_NO_One;
        }else if (MERGE_STA_NO_TWO.contains(staNo)){
            staFall = MERGE_STA_NO_TWO;
        }else if (MERGE_STA_NO_THREE.contains(staNo)){
            staFall = MERGE_STA_NO_THREE;
        }else if (MERGE_STA_NO_FOUR.contains(staNo)){
            staFall = MERGE_STA_NO_FOUR;
        }else {
            return staNo;
        }
        int indexNo = 0;
        if (rgvNo==1){
            indexNo=staFall.size()-1;
            switch (staNo){
                case 101:
                case 102: return  102;
                case 104:
                case 122: return  118;
                case 105: return  119;
                case 107:
                case 118: return  108;
                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:
                case 171:
                    return  1142;
                case 1142:
                case 114: return  113;
                case 123:
                case 113: return  111;
                case 121: return  110;
                case 111: return  110;
                case 120:
                case 110: return 108;
                case 119:
                case 108: return  107;
                case 118:
                case 107: return  105;
                case 105:
                case 122:
                case 104: return  104;
                default:
                    return 102;
            }
        }
        return staFall.get(indexNo);
    }
    /*
     * 获取干涉最远站点
     * */
    public static Integer RouteIndexFarMasL(int rgvNo,Integer staNo){
        if (rgvNo==1){
            switch (staNo){
                case 101:
                case 102:
                case 104:
                case 122:
                case 105:
                case 107:
                    return 118;
                case 118:
                    return staNo;
                default:
                    return 108;
            }
        }else {
            switch (staNo){
                case 117:
                case 116:
                case 171:
                case 1142:
                case 114:
                case 123:
                case 113:
                case 121:
                    return 121;
                case 111:
                    return staNo;
                default:
                    return 110;
            }
        }
    }
    // 获取当前小车未行走的路线集合
    public static List<Integer> getRoute(Integer groupStart,Integer groupEnd){
@@ -339,8 +472,8 @@
                return 105;
            case 7:
            case 8:
                return 118;
            case 9:
                return 118;
            case 10:
            case 11:
                return 119;
@@ -379,6 +512,7 @@
        switch (posId.intValue()){
            case 1:
                return 116;
            case 28:
            case 2:
                return 1142;
            case 3:
@@ -399,8 +533,8 @@
            case 14:
                return 120;
            case 15:
                return 110;
            case 16:
                return 110;
            case 17:
            case 18:
                return 119;
@@ -416,7 +550,6 @@
            case 25:
            case 26:
            case 27:
            case 28:
                return 104;
            default:
                return 104;