广丰卷烟厂数采质量分析系统
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package com.shlb.timescaledbutils.constant;
 
import java.util.*;
 
/**
 * 系统常量类
 */
public class AppConstants {
    private AppConstants() {
        // 防止实例化
    }
 
    /**
     * 班次 1、2、3
     * 卷接机组 101~200
     * 包装机组 201~300
     * 装封箱机组 301~400
     * 成型机组 401~500
     * 发射机组 501~600
     * 提升机 601
     * 喂丝机 603
     */
 
 
    // 所有设备编号 (不含班次前缀)
    public static final List<String> EQUIPMENT_LIST = Arrays.asList(
            // 卷接机组
            "101", "102", "103", "105", "106", "107", "108", "109", "110", "111", "113",
            // 包装机组
            "201", "202", "203", "205", "206", "207", "208", "209", "210", "211", "213",
            // 装封箱机组
            "301", "302", "303", "304", "305",
            // 成型机组
            "401", "402", "403",
            // 发射机组
            "501", "502", "503",
            // 提升机
            "601",
            // 喂丝机
            "603"
    );
 
 
    // 设备类型常量
    public static final int TYPE_ROLLING = 1;     // 卷接机组
    public static final int TYPE_PACKAGING = 2;   // 包装机组
    public static final int TYPE_SEALING = 3;     // 装封箱机组
    public static final int TYPE_FORMING = 4;     // 成型机组
    public static final int TYPE_LAUNCHING = 5;   // 发射机组
    public static final int TYPE_LIFTING = 6;     // 提升机
    public static final int TYPE_FEED = 7;        // 喂丝机
 
    // 班次常量
    public static final int SHIFT_MORNING = 1;    // 早班
    public static final int SHIFT_MIDDLE = 2;     // 中班
    public static final int SHIFT_NIGHT = 3;      // 晚班
 
    /**
     * 获取设备类型
     * @param equipmentCode 设备编号,可以是3位(如"101")或4位(如"1101")
     * @return 1-卷接机组, 2-包装机组, 3-装封箱机组, 4-成型机组, 5-发射机组, 6-提升机, 7-喂丝机, 0-无效
     */
    public static int getEquipmentType(String equipmentCode) {
        if (equipmentCode == null || equipmentCode.length() < 3) {
            return 0;
        }
 
        // 特殊设备判断:603为喂丝机(TYPE=7),601为提升机(TYPE=6)
        // 无论是 "603" 还是 "1603",endsWith 都能正确判断
        if (equipmentCode.endsWith("603")) {
            return TYPE_FEED;
        }
        if (equipmentCode.endsWith("601")) {
            return TYPE_LIFTING;
        }
 
        // 获取类型位的索引
        // 如果是4位编码(如1101),类型位在索引1
        // 如果是3位编码(如101),类型位在索引0
        int typeIndex = equipmentCode.length() == 4 ? 1 : 0;
        
        if (typeIndex >= equipmentCode.length()) {
            return 0;
        }
 
        char typeChar = equipmentCode.charAt(typeIndex);
        int type = Character.getNumericValue(typeChar);
        
        return (type >= 1 && type <= 7) ? type : 0;
    }
 
}