yeg
6 天以前 a04222c873e5e55f48c8d33b5c0bc46fa524ac8d
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
package com.battery.business.domain;
 
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
 
/**
 * 推式来源落地表的一行(ADR-0065):厂商原始行按收到的键值原样保存在 {@code payloadJson},
 * 同时带上接收端点解析出的身份、时间、协议序号与测量列。
 *
 * <p>解释只做一遍:厂商列名到这些字段的映射在接收端点里,适配器只把落地行投影成统一观测,
 * 因此适配器里不出现任何厂商列名。{@code recordKey} 是来源行身份,重复推送由它幂等忽略。
 */
public class TDeviceIngestRecord implements Serializable
{
    /** 载荷类别:拓扑上报,声明该来源当前有哪些通道。 */
    public static final String KIND_TOPOLOGY = "TOPOLOGY";
    /** 载荷类别:逐点数据行。 */
    public static final String KIND_SAMPLE = "SAMPLE";
    /** 载荷类别:存活心跳,只刷新"取数程序还在推"这一条事实。 */
    public static final String KIND_HEARTBEAT = "HEARTBEAT";
 
    /** 落地行主键。 */
    private Long ingestId;
    /** 推送来源所属的适配器实例编码。 */
    private String adapterCode;
    /** 载荷类别:TOPOLOGY 拓扑上报、SAMPLE 逐点数据行、HEARTBEAT 存活心跳。 */
    private String payloadKind;
    /** 厂商设备类型。 */
    private Integer devtype;
    /** 厂商设备号。 */
    private Integer devid;
    /** 厂商单元号。 */
    private Integer subdevid;
    /** 厂商通道号。 */
    private Integer chlid;
    /** 来源自己的通道叫法(它软件里显示的通道号);只用于展示与登记,不参与通道身份。 */
    private Integer vendorChannelNo;
    /** 来源协议序号,工步切换点可在同一绝对秒内出现多条。 */
    private Long recordSequence;
    /** 来源行身份,重复推送由它幂等忽略。 */
    private String recordKey;
    /** 来源侧引用标识,如测试或来源记录编号,用于现场核对。 */
    private String sourceRef;
    /** 设备时间,按来源时区解释后以 UTC 保存。 */
    private Date deviceTimeUtc;
    /** 设备时间原始文本,保留厂商原值。 */
    private String deviceTimeRaw;
    /** 解释设备时间所用的时区标识。 */
    private String timezoneId;
    /** 设备实际循环号。 */
    private Integer cycleNo;
    /** 设备实际工步号。 */
    private Integer stepNo;
    /** 工步内相对时长,单位秒;由成功观测提供,不以接收时间推算。 */
    private BigDecimal relativeTimeSeconds;
    /** 电压,业务单位 V。 */
    private BigDecimal voltageV;
    /** 电流,业务单位 A。 */
    private BigDecimal currentA;
    /** 充电容量,业务单位 Ah。 */
    private BigDecimal chargeCapacityAh;
    /** 放电容量,业务单位 Ah。 */
    private BigDecimal dischargeCapacityAh;
    /** 充电能量,业务单位 Wh。 */
    private BigDecimal chargeEnergyWh;
    /** 放电能量,业务单位 Wh。 */
    private BigDecimal dischargeEnergyWh;
    /** 厂商原始行内容,按收到的键值原样保存,便于回溯来源事实。 */
    private String payloadJson;
    /** 记录内容摘要,用于重复推送的幂等与冲突判定。 */
    private byte[] contentSha256;
    /** 服务器收到该行的时间,以 UTC 保存。 */
    private Date receivedAtUtc;
 
    public Long getIngestId() { return ingestId; } public void setIngestId(Long v) { ingestId = v; }
    public String getAdapterCode() { return adapterCode; } public void setAdapterCode(String v) { adapterCode = v; }
    public String getPayloadKind() { return payloadKind; } public void setPayloadKind(String v) { payloadKind = v; }
    public Integer getDevtype() { return devtype; } public void setDevtype(Integer v) { devtype = v; }
    public Integer getDevid() { return devid; } public void setDevid(Integer v) { devid = v; }
    public Integer getSubdevid() { return subdevid; } public void setSubdevid(Integer v) { subdevid = v; }
    public Integer getChlid() { return chlid; } public void setChlid(Integer v) { chlid = v; }
    public Integer getVendorChannelNo() { return vendorChannelNo; }
    public void setVendorChannelNo(Integer v) { vendorChannelNo = v; }
    public Long getRecordSequence() { return recordSequence; } public void setRecordSequence(Long v) { recordSequence = v; }
    public String getRecordKey() { return recordKey; } public void setRecordKey(String v) { recordKey = v; }
    public String getSourceRef() { return sourceRef; } public void setSourceRef(String v) { sourceRef = v; }
    public Date getDeviceTimeUtc() { return deviceTimeUtc; } public void setDeviceTimeUtc(Date v) { deviceTimeUtc = v; }
    public String getDeviceTimeRaw() { return deviceTimeRaw; } public void setDeviceTimeRaw(String v) { deviceTimeRaw = v; }
    public String getTimezoneId() { return timezoneId; } public void setTimezoneId(String v) { timezoneId = v; }
    public Integer getCycleNo() { return cycleNo; } public void setCycleNo(Integer v) { cycleNo = v; }
    public Integer getStepNo() { return stepNo; } public void setStepNo(Integer v) { stepNo = v; }
    public BigDecimal getRelativeTimeSeconds() { return relativeTimeSeconds; }
    public void setRelativeTimeSeconds(BigDecimal v) { relativeTimeSeconds = v; }
    public BigDecimal getVoltageV() { return voltageV; } public void setVoltageV(BigDecimal v) { voltageV = v; }
    public BigDecimal getCurrentA() { return currentA; } public void setCurrentA(BigDecimal v) { currentA = v; }
    public BigDecimal getChargeCapacityAh() { return chargeCapacityAh; }
    public void setChargeCapacityAh(BigDecimal v) { chargeCapacityAh = v; }
    public BigDecimal getDischargeCapacityAh() { return dischargeCapacityAh; }
    public void setDischargeCapacityAh(BigDecimal v) { dischargeCapacityAh = v; }
    public BigDecimal getChargeEnergyWh() { return chargeEnergyWh; }
    public void setChargeEnergyWh(BigDecimal v) { chargeEnergyWh = v; }
    public BigDecimal getDischargeEnergyWh() { return dischargeEnergyWh; }
    public void setDischargeEnergyWh(BigDecimal v) { dischargeEnergyWh = v; }
    public String getPayloadJson() { return payloadJson; } public void setPayloadJson(String v) { payloadJson = v; }
    public byte[] getContentSha256() { return contentSha256; } public void setContentSha256(byte[] v) { contentSha256 = v; }
    public Date getReceivedAtUtc() { return receivedAtUtc; } public void setReceivedAtUtc(Date v) { receivedAtUtc = v; }
}