package com.zy.core.enums; import com.core.exception.CoolException; import com.zy.asrs.utils.Utils; import com.zy.core.model.protocol.SteProtocol; public enum SteTaskModeType { INIT(0, "初始"), // 初始 OUT_LEFT(1, "左出库"), // 左出库 OUT_RIGHT(2, "右出库"), // 右出库 IN_LEFT(3, "左入库"), // 左入库 IN_RIGHT(4, "右入库"), // 右入库 MOVE_LEFT(5, "左移库"), // 左移库 MOVE_RIGHT(6, "右移库"), // 右移库 GO_ORIGIN(7, "去右端"), // 回原点 BACK_ORIGIN(8, "去左端"), // 回反原点 WAITING_RIGHT(9, "右待机"), // A点 WAITING_LEFT(10, "左待机"), // B点 // FIT_LEFT(11, "左搬移"), // 左搬移 // FIT_RIGHT(12, "右搬移"), // 右搬移 CHARGE_LEFT(13, "左充电"), // 左充电 CHARGE_RIGHT(14, "右充电"), // 左充电 // CHECK_LEFT(14, "左盘点"), // 左盘点 // CHECK_RIGHT(15, "右盘点"), // 右盘点 CLOSE_CHARGE(17, "断开充电"), // 断开充电 ; public Integer id; public String desc; SteTaskModeType(Integer id, String desc) { this.id = id; this.desc = desc; } public static SteTaskModeType get(Short id) { if (null == id) { return null; } for (SteTaskModeType type : SteTaskModeType.values()) { if (type.id.equals(id.intValue())) { return type; } } return null; } public static SteTaskModeType get(SteTaskModeType type) { if (null == type) { return null; } for (SteTaskModeType crnTaskModeType : SteTaskModeType.values()) { if (crnTaskModeType == type) { return crnTaskModeType; } } return null; } public static SteTaskModeType findInByLoc(String locNo) { switch (Utils.getGroupRow(locNo)) { case 3: case 11: case 18: return SteTaskModeType.IN_RIGHT; // 右 case 4: case 12: case 19: return SteTaskModeType.IN_LEFT; // 左 default: throw new CoolException("解析穿梭车原点定位失败"); } } public static SteTaskModeType findOutByLoc(String locNo) { switch (Utils.getGroupRow(locNo)) { case 3: case 11: case 18: return SteTaskModeType.OUT_RIGHT; // 右 case 4: case 12: case 19: return SteTaskModeType.OUT_LEFT; // 左 default: throw new CoolException("解析穿梭车原点定位失败"); } } // ----------------------------------------------- public static SteTaskModeType findOriginByLoc(SteProtocol steProtocol) { switch (steProtocol.getRow()) { case 1: case 2: case 3: case 8: case 9: case 10: case 11: case 15: case 16: case 17: case 18: return SteTaskModeType.GO_ORIGIN; case 4: case 5: case 6: case 7: case 12: case 13: case 14: case 19: case 20: case 21: return SteTaskModeType.BACK_ORIGIN; default: throw new CoolException("解析穿梭车原点定位失败"); } } public static SteTaskModeType findOriginByLoc(Short row) { switch (row) { case 1: case 2: case 3: case 8: case 9: case 10: case 11: case 15: case 16: case 17: case 18: return SteTaskModeType.GO_ORIGIN; case 4: case 5: case 6: case 7: case 12: case 13: case 14: case 19: case 20: case 21: return SteTaskModeType.BACK_ORIGIN; default: throw new CoolException("解析穿梭车原点定位失败"); } } public static SteTaskModeType findInByLoc(SteProtocol steProtocol) { switch (steProtocol.getRow()) { case 1: case 2: case 3: case 8: case 9: case 10: case 11: case 15: case 16: case 17: case 18: return SteTaskModeType.IN_LEFT; case 4: case 5: case 6: case 7: case 12: case 13: case 14: case 19: case 20: case 21: return SteTaskModeType.IN_RIGHT; default: throw new CoolException("解析穿梭车原点定位失败"); } } public static SteTaskModeType findOutByLoc(SteProtocol steProtocol) { switch (steProtocol.getRow()) { case 1: case 2: case 3: case 8: case 9: case 10: case 11: case 15: case 16: case 17: case 18: return SteTaskModeType.OUT_LEFT; case 4: case 5: case 6: case 7: case 12: case 13: case 14: case 19: case 20: case 21: return SteTaskModeType.OUT_RIGHT; default: throw new CoolException("解析穿梭车原点定位失败"); } } public static SteTaskModeType findWaiting(Integer row) { switch (row) { case 1: case 2: case 3: case 8: case 9: case 10: case 11: case 15: case 16: case 17: case 18: return SteTaskModeType.WAITING_RIGHT; case 4: case 5: case 6: case 7: case 12: case 13: case 14: case 19: case 20: case 21: return SteTaskModeType.WAITING_LEFT; default: throw new CoolException("解析穿梭车原点定位失败"); } } public static SteTaskModeType findChargeByLoc(Integer row) { switch (row) { case 1: case 2: case 3: case 8: case 9: case 10: case 11: case 15: case 16: case 17: case 18: return SteTaskModeType.CHARGE_LEFT; case 4: case 5: case 6: case 7: case 12: case 13: case 14: case 19: case 20: case 21: return SteTaskModeType.CHARGE_RIGHT; default: throw new CoolException("解析穿梭车原点定位失败"); } } public static SteTaskModeType findChargeByLocForCharge(Integer row) { switch (row) { case 1: case 2: case 3: case 8: case 9: case 10: case 11: case 15: case 16: case 17: case 18: return SteTaskModeType.GO_ORIGIN; case 4: case 5: case 6: case 7: case 12: case 13: case 14: case 19: case 20: case 21: return SteTaskModeType.BACK_ORIGIN; default: throw new CoolException("解析穿梭车原点定位失败"); } } }