package com.zy.asrs.wcs.core.model.enums; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zy.asrs.framework.common.SpringUtils; import com.zy.asrs.wcs.core.entity.Loc; import com.zy.asrs.wcs.core.service.LocService; import com.zy.asrs.wcs.core.utils.Utils; public enum LiftCodeType { NONE(-1, -1, "未知", "0402001"), LIFT_2(2, 198, "2号提升机二维码", "0402001"), LIFT_1(1, 0, "1号提升机无二维码", "0800701"), ; public Integer liftNo; public Integer code; public String desc; public String standbyLocNo;//待机库位 LiftCodeType(Integer liftNo, Integer code, String desc, String standbyLocNo) { this.liftNo = liftNo; this.code = code; this.desc = desc; this.standbyLocNo = standbyLocNo; } public static LiftCodeType query(Integer code) { for (LiftCodeType value : LiftCodeType.values()) { if (value.code.equals(code)) { return value; } } return NONE; } public static String getLocNo(Integer liftNo, Integer lev, Long hostId) { LiftCodeType type = null; for (LiftCodeType value : LiftCodeType.values()) { if (value.liftNo.equals(liftNo)) { type = value; break; } } if (type == null) { return null; } LocService locService = SpringUtils.getBean(LocService.class); Loc loc = locService.getOne(new LambdaQueryWrapper() .eq(Loc::getHostId, hostId) .eq(Loc::getCode, type.code) .eq(Loc::getLev, lev)); if (loc == null) { return null; } return loc.getLocNo(); } public static String getStandbyLocNo(Integer liftNo, Integer lev) { LiftCodeType type = null; for (LiftCodeType value : LiftCodeType.values()) { if (value.liftNo.equals(liftNo)) { type = value; break; } } if (type == null) { return null; } return Utils.getLocNo(Utils.getRow(type.standbyLocNo), Utils.getBay(type.standbyLocNo), lev); } }