yeg
2026-09-29 b78295e8da96c3e5e76befeef9582ce5273dbb74
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package com.battery.business.domain;
 
import java.time.Instant;
import jakarta.validation.constraints.AssertTrue;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import com.ruoyi.common.core.domain.BaseEntity;
 
/** 设备适配器实例对象 t_device_adapter;实例按「机器 + 上位机版本」划分,不能按厂商划分。 */
public class TDeviceAdapter extends BaseEntity
{
    private static final long serialVersionUID = 1L;
 
    /** 适配器实例主键。 */
    private Long adapterId;
 
    /** 适配器实例编码,与厂商通道字段共同构成通道身份。 */
    @NotBlank(message = "适配器编码不能为空")
    @Size(max = 64, message = "适配器编码长度不能超过64个字符")
    private String adapterCode;
 
    /** 适配器实例名称,用于区分不同机器上的同名设备,仅供展示。 */
    @NotBlank(message = "适配器名称不能为空")
    @Size(max = 100, message = "适配器名称长度不能超过100个字符")
    private String adapterName;
 
    /** 适配器类型,决定使用哪一套来源实现:BTS 协议客户端、NEWARE_MYSQL 新威读库、PUSH_INGEST 读落地表。 */
    @NotBlank(message = "适配器类型不能为空")
    private String adapterType;
 
    /** 来源主机地址。 */
    @NotBlank(message = "主机不能为空")
    @Size(max = 255, message = "主机长度不能超过255个字符")
    private String host;
 
    /** 来源端口。 */
    @NotNull(message = "端口不能为空")
    @Min(value = 1, message = "端口必须在1到65535之间")
    @Max(value = 65535, message = "端口必须在1到65535之间")
    private Integer port;
 
    /** 轮询周期(毫秒);设备来源约 60 秒才产生一行数据,取数不必更快。 */
    @NotNull(message = "轮询周期不能为空")
    @Min(value = 1000, message = "轮询周期不能小于1000毫秒")
    private Integer pollIntervalMs;
 
    /** 适配器时区标识,用于把设备时间解释为 UTC。 */
    @NotBlank(message = "时区不能为空")
    @Size(max = 64, message = "时区长度不能超过64个字符")
    private String timezoneId;
 
    /** 只读能力标记,只允许为真:第一版只观测设备,不下发控制命令。 */
    @NotNull(message = "只读能力不能为空")
    @AssertTrue(message = "当前里程碑只允许只读设备适配器")
    private Boolean readOnly;
 
    /** 适配器声明的能力标记,运行时控制能力默认为不支持。 */
    private String capabilities;
 
    /** 来源形态配置(JSON),承载各存储形态互不相交的非敏感字段;连接口令不入库。 */
    private String sourceConfig;
 
    /** 启用状态:0启用,1停用。 */
    private String status;
    /** 适配器连接状态,仅允许 ONLINE/OFFLINE。 */
    private String connectionStatus;
    /** 最近一次连接失败的错误码,供现场排查使用。 */
    private String lastErrorCode;
    /** 最近一次连接失败的错误说明,供现场排查使用。 */
    private String lastErrorMessage;
    /** 最近一次尝试连接的时间,以 UTC 保存。 */
    private Instant lastAttemptAtUtc;
    /** 最近一次成功观测到设备事实的时间,以 UTC 保存。 */
    private Instant lastObservedAtUtc;
    /** 逻辑删除标识:0存在,其他值表示已删除。 */
    private String delFlag;
 
    public Long getAdapterId() { return adapterId; }
    public void setAdapterId(Long adapterId) { this.adapterId = adapterId; }
    public String getAdapterCode() { return adapterCode; }
    public void setAdapterCode(String adapterCode) { this.adapterCode = adapterCode; }
    public String getAdapterName() { return adapterName; }
    public void setAdapterName(String adapterName) { this.adapterName = adapterName; }
    public String getAdapterType() { return adapterType; }
    public void setAdapterType(String adapterType) { this.adapterType = adapterType; }
    public String getHost() { return host; }
    public void setHost(String host) { this.host = host; }
    public Integer getPort() { return port; }
    public void setPort(Integer port) { this.port = port; }
    public Integer getPollIntervalMs() { return pollIntervalMs; }
    public void setPollIntervalMs(Integer pollIntervalMs) { this.pollIntervalMs = pollIntervalMs; }
    public String getTimezoneId() { return timezoneId; }
    public void setTimezoneId(String timezoneId) { this.timezoneId = timezoneId; }
    public Boolean getReadOnly() { return readOnly; }
    public void setReadOnly(Boolean readOnly) { this.readOnly = readOnly; }
    public String getCapabilities() { return capabilities; }
    public void setCapabilities(String capabilities) { this.capabilities = capabilities; }
    public String getSourceConfig() { return sourceConfig; }
    public void setSourceConfig(String sourceConfig) { this.sourceConfig = sourceConfig; }
    public String getStatus() { return status; }
    public void setStatus(String status) { this.status = status; }
    public String getConnectionStatus() { return connectionStatus; }
    public void setConnectionStatus(String connectionStatus) { this.connectionStatus = connectionStatus; }
    public String getLastErrorCode() { return lastErrorCode; }
    public void setLastErrorCode(String lastErrorCode) { this.lastErrorCode = lastErrorCode; }
    public String getLastErrorMessage() { return lastErrorMessage; }
    public void setLastErrorMessage(String lastErrorMessage) { this.lastErrorMessage = lastErrorMessage; }
    public Instant getLastAttemptAtUtc() { return lastAttemptAtUtc; }
    public void setLastAttemptAtUtc(Instant value) { this.lastAttemptAtUtc = value; }
    public Instant getLastObservedAtUtc() { return lastObservedAtUtc; }
    public void setLastObservedAtUtc(Instant value) { this.lastObservedAtUtc = value; }
    public String getDelFlag() { return delFlag; }
    public void setDelFlag(String delFlag) { this.delFlag = delFlag; }
}