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();
|
}
|
}
|