自动化立体仓库 - WMS系统
zwl
2 天以前 fb57e7836338304b16c09fec4fb5c68fb688c39e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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();
    }
}