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