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
package com.dy.pipIrrGlobal.pojoRm;
 
import com.alibaba.fastjson2.annotation.JSONField;
import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dy.common.mw.protocol.p206V1.DataV1;
import com.dy.common.mw.protocol.p206V2.DataV2;
import com.dy.common.po.BaseEntity;
import com.dy.common.util.DateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
 
import java.util.Date;
 
/**
 * @Author liurunyu
 * @Date 2024/2/28 15:31
 * @LastEditTime 2024/2/28 15:31
 * @Description 控制器日漏损水量最新数据
 */
@TableName(value="rm_loss_last_history", autoResultMap = true)
@Data
@Builder
@ToString
@NoArgsConstructor
@AllArgsConstructor
@Schema(name = "控制器日漏损水量最新数据")
public class RmLossDayLast implements BaseEntity {
 
    public static final long serialVersionUID = 202402281621001L;
    /**
     * 主键
     */
    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED)
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    @TableId(type = IdType.INPUT)
    public Long id;
 
    /**
     * 由最新数据持有历史数据中的最新记录ID,以方便快速查询
     * json不序列化此属性,即不向前端页面发送及显示
     */
    @Schema(hidden=true)
    @JSONField(serialize = false)
    public Long lastHistoryId;
 
    /**
     * 控制器实体ID(外键)
     */
    @Schema(description = "控制器实体外键", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    public Long controllerId;
 
    /**
     * 取水口实体ID(外键)
     */
    @Schema(description = "取水口实体外键", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    public Long intakeId;
 
    /**
     * 控制器地址
     */
    @Schema(description = "控制器地址", requiredMode = Schema.RequiredMode.REQUIRED)
    public String rtuAddr;
 
    /**
     * 统计日,这个日期采用RTU时钟,因为有补报的问题
     */
    @Schema(description = "统计日", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @JsonFormat(pattern = "yyyy-MM-dd")
    public Date dt;
 
    /**
     * 控制器当日最后上报数据时间
     */
    @Schema(description = "控制器当日最后上报数据时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
    public Date dtLast;
 
    /**
     * 控制器当日最后上报数据中的控制器时钟
     */
    @Schema(description = "控制器时钟", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
    public Date dtRtu;
 
    /**
     * 日漏损流量
     */
    @Schema(description = "日漏损量(m3)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
    public Double lossAmount;
 
    public void valueFrom(DataV1 dV1, com.dy.common.mw.protocol.p206V1.upVos.DataCdC0Vo cdData) throws Exception{
        this.dt = DateTime.dateFrom_yyyy_MM_dd1(cdData.rtuDt);
        this.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1.dt);
        this.dtRtu = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
        this.lossAmount = cdData.lossAmount ;// 损失流量(从0时到当前的漏损累计流量,24时一个周期,0时归0)单位为m3。
    }
 
    public void valueFrom(DataV2 dV2, com.dy.common.mw.protocol.p206V2.upVos.DataCdC0Vo cdData) throws Exception{
        this.dt = DateTime.dateFrom_yyyy_MM_dd1(cdData.rtuDt);
        this.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV2.dt);
        this.dtRtu = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
        this.lossAmount = cdData.lossAmount ;// 损失流量(从0时到当前的漏损累计流量,24时一个周期,0时归0)单位为m3。
    }
 
}