package com.zy.asrs.utils; import com.zy.asrs.entity.LocMast; /** * 库位别名规则:不改变原始 loc_no,只按库区和重排排号生成展示别名。 */ public final class LocAliasUtils { private LocAliasUtils() { } public static Integer areaIdByCrnNo(Integer crnNo) { if (crnNo == null) { return null; } if (crnNo >= 1 && crnNo <= 6) { return 1; } if (crnNo >= 7 && crnNo <= 18) { return 2; } if (crnNo >= 19 && crnNo <= 28) { return 3; } return null; } public static String areaCode(Integer areaId) { if (areaId == null) { return null; } switch (areaId) { case 1: return "A"; case 2: return "B"; case 3: return "C"; default: return null; } } public static String areaName(Integer areaId) { String areaCode = areaCode(areaId); if (areaCode == null) { return areaId == null ? "" : String.valueOf(areaId); } return areaCode + "区"; } public static String buildAlias(Integer areaId, Integer row, Integer bay, Integer lev, Integer minAreaRow) { String areaCode = areaCode(areaId); if (areaCode == null || row == null || bay == null || lev == null || minAreaRow == null) { return null; } int aliasRow = row - minAreaRow + 1; if (aliasRow <= 0) { return null; } return areaCode + "-" + String.format("%02d%03d%02d", aliasRow, bay, lev); } public static String displayLocNo(LocMast locMast) { if (locMast == null) { return null; } if (locMast.getLocAlias() != null && locMast.getLocAlias().trim().length() > 0) { return locMast.getLocAlias(); } return locMast.getLocNo(); } }