自动化立体仓库 - WCS系统
#
lsh
2024-06-25 f30358a20ae9a74ee7f6c604a8d102c1b9b24659
src/main/java/com/zy/core/enums/SteTaskModeType.java
@@ -8,23 +8,28 @@
public enum SteTaskModeType {
    INIT(0, "初始"),    // 初始
    OUT_RIGHT(1, "右出库"),    // 右出库
    OUT_LEFT(2, "左出库"),    // 左出库
    IN_RIGHT(4, "右入库"),    // 右入库
    IN_LEFT(3, "左入库"),    // 左入库
    MOVE_LEFT(5, "左移库"),    // 左移库
    MOVE_RIGHT(6, "右移库"),    // 右移库
    GO_ORIGIN(8, "去右端"),    // 回反原点
    BACK_ORIGIN(7, "去左端"),      // 回原点
    WAITING_RIGHT(10, "右待机"),        // A点
    WAITING_LEFT(9, "左待机"),       // B点
//    FIT_LEFT(11, "左搬移"),   // 左搬移
//    FIT_RIGHT(12, "右搬移"),      // 右搬移
    CHARGE_LEFT(13, "左充电"),         // 左充电
    CHARGE_RIGHT(14, "右充电"),         // 左充电
//    OUT_RIGHT(1, "右出库"),    // 右出库
//    OUT_LEFT(2, "左出库"),    // 左出库
//    IN_RIGHT(4, "右入库"),    // 右入库
//    IN_LEFT(3, "左入库"),    // 左入库
//    MOVE_LEFT(5, "左移库"),    // 左移库
//    MOVE_RIGHT(6, "右移库"),    // 右移库
//    GO_ORIGIN(8, "去右端"),    // 回反原点
//    BACK_ORIGIN(7, "去左端"),      // 回原点
//    WAITING_RIGHT(10, "右待机"),        // A点
//    WAITING_LEFT(9, "左待机"),       // B点
////    FIT_LEFT(11, "左搬移"),   // 左搬移
////    FIT_RIGHT(12, "右搬移"),      // 右搬移
//    CHARGE_LEFT(13, "左充电"),         // 左充电
//    CHARGE_RIGHT(14, "右充电"),         // 左充电
//    CHECK_LEFT(14, "左盘点"),     // 左盘点
//    CHECK_RIGHT(15, "右盘点"),    // 右盘点
    CLOSE_CHARGE(17, "断开充电"),   // 断开充电
    STE_YDQH_10(10,"原地取货"),
    STE_YDFH_11(11,"原地放货"),
    STE_WFQH_12(12,"往返取货"),
    STE_WFFH_13(13,"往返放货"),
    STE_MOVE_14(14,"移动"),
//    CLOSE_CHARGE(17, "断开充电"),   // 断开充电
    ;
    public Integer id;
@@ -56,74 +61,6 @@
            }
        }
        return null;
    }
    public static SteTaskModeType findInByLoc(String locNo, Integer crnNo) {
        switch (SteUtils.getGroupRow(locNo, true, crnNo)) {
            case 2:
                return SteTaskModeType.IN_RIGHT;   // 右
            case 12:
                return SteTaskModeType.IN_LEFT;    // 左
            default:
                throw new CoolException("解析穿梭车原点定位失败");
        }
    }
    public static SteTaskModeType findOutByLoc(String locNo, Integer crnNo) {
        switch (SteUtils.getGroupRow(locNo, false, crnNo)) {
            case 2:
                return SteTaskModeType.OUT_LEFT;   // 右
            case 12:
                return SteTaskModeType.OUT_RIGHT;    // 左
            default:
                throw new CoolException("解析穿梭车原点定位失败");
        }
    }
    public static SteTaskModeType findOutByLoc2(String locNo, Integer crnNo) {
        switch (SteUtils.getGroupRow(locNo, false, crnNo)) {
            case 2:
                return SteTaskModeType.GO_ORIGIN;   // 8
            case 12:
                return SteTaskModeType.BACK_ORIGIN;    // 7
            default:
                throw new CoolException("解析穿梭车原点定位失败");
        }
    }
    // -----------------------------------------------
    // 去待搬点
    public static SteTaskModeType findOriginByLoc(SteProtocol steProtocol, Integer crnNo) {
        int row = steProtocol.getRow().intValue();
        if (SteUtils.SHUTTLE_GROUP_ROW_LIST.contains(row)) {
            return crnNo == 1 ? SteTaskModeType.BACK_ORIGIN : SteTaskModeType.GO_ORIGIN;
        } else if (row==13 || row==1){
            return SteTaskModeType.INIT;
        } else {
            throw new CoolException("解析穿梭车原点定位失败");
        }
    }
    public static SteTaskModeType findOriginByLoc(Integer row, Integer crnNo) {
        if (SteUtils.SHUTTLE_GROUP_ROW_LIST.contains(row)) {
            return crnNo == 1 ? SteTaskModeType.BACK_ORIGIN : SteTaskModeType.GO_ORIGIN;
        } else if (row==13 || row==1){
            return SteTaskModeType.INIT;
        } else {
            throw new CoolException("解析穿梭车原点定位失败");
        }
    }
    public static SteTaskModeType findWaiting(Integer row, Integer crnNo) {
        if (SteUtils.SHUTTLE_GROUP_ROW_LIST.contains(row)) {
            return crnNo == 1 ? SteTaskModeType.WAITING_LEFT : SteTaskModeType.WAITING_RIGHT;
        } else if (row==1||row==13){
            return SteTaskModeType.INIT;
        } else {
            throw new CoolException("解析穿梭车原点定位失败");
        }
    }
}