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_RIGHT(1, "右出库"), // 右出库 OUT_LEFT(2, "左出库"), // 左出库 IN_RIGHT(3, "右入库"), // 右入库 IN_LEFT(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, true)) { case 4: return SteTaskModeType.IN_LEFT; // 左 case 5: return SteTaskModeType.IN_RIGHT; // 右 default: throw new CoolException("解析穿梭车原点定位失败"); } } public static SteTaskModeType findOutByLoc(String locNo) { switch (Utils.getGroupRow(locNo, false)) { case 4: return SteTaskModeType.OUT_LEFT; // 右 case 5: return SteTaskModeType.OUT_RIGHT; // 左 default: throw new CoolException("解析穿梭车原点定位失败"); } } // ----------------------------------------------- // 去待搬点 public static SteTaskModeType findOriginByLoc(SteProtocol steProtocol) { int row = steProtocol.getRow().intValue(); if (Utils.FIRST_GROUP_ROW_LIST.contains(row)) { return SteTaskModeType.GO_ORIGIN; } else if (Utils.SECOND_GROUP_ROW_LIST.contains(row)) { return SteTaskModeType.BACK_ORIGIN; } else { throw new CoolException("解析穿梭车原点定位失败"); } } public static SteTaskModeType findOriginByLoc(Integer row) { if (Utils.FIRST_GROUP_ROW_LIST.contains(row)) { return SteTaskModeType.GO_ORIGIN; } else if (Utils.SECOND_GROUP_ROW_LIST.contains(row)) { return SteTaskModeType.BACK_ORIGIN; } else { throw new CoolException("解析穿梭车原点定位失败"); } } public static SteTaskModeType findWaiting(Integer row) { if (Utils.FIRST_GROUP_ROW_LIST.contains(row)) { return SteTaskModeType.WAITING_RIGHT; } else if (Utils.SECOND_GROUP_ROW_LIST.contains(row)) { return SteTaskModeType.WAITING_LEFT; } else { throw new CoolException("解析穿梭车原点定位失败"); } } public static SteTaskModeType findChargeByLoc(Integer row) { if (Utils.FIRST_GROUP_ROW_LIST.contains(row)) { return SteTaskModeType.CHARGE_RIGHT; } else if (Utils.SECOND_GROUP_ROW_LIST.contains(row)) { return SteTaskModeType.CHARGE_LEFT; } else { throw new CoolException("解析穿梭车原点定位失败"); } } }