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_0_0.DataV1_0_1; import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83OpenVo; 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/23 16:00 * @LastEditTime 2024/2/23 16:00 * @Description */ @TableName(value="rm_open_close_valve_last", autoResultMap = true) @Data @Builder @ToString @NoArgsConstructor @AllArgsConstructor @Schema(name = "控制器开关阀上报最新数据") public class RmOpenCloseValveLast implements BaseEntity { public static final long serialVersionUID = 202402231602001L; /** * 主键 */ @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; /** * 开阀数据接收日期时间 */ @Schema(description = "开阀数据接收日期时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public Date opDt; /** * 开阀类型 */ @Schema(description = "开阀类型", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public Byte opType; /** * 开阀时累计流量 */ @Schema(description = "开阀时累计流量", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public Double opTotalAmount; /** * 开阀IC卡编号 */ @Schema(description = "开阀IC卡编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public String opIcCardNo; /** * 开阀ic卡地址 */ @Schema(description = "开阀ic卡地址", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public String opIcCardAddr; /** * 开阀时剩余金额 */ @Schema(description = "开阀时剩余金额", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public Double opRemainMoney; /** * 开阀时控制器时钟 */ @Schema(description = "开阀时控制器时钟", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public Date openDt; /** * 关阀数据接收日期时间 */ @Schema(description = "关阀数据接收日期时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public Date clDt; /** * 关阀类型 */ @Schema(description = "关阀类型", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public Byte clType; /** * 关阀时累计流量 */ @Schema(description = "关阀时累计流量", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public Double clTotalAmount; /** * 关阀时IC卡编号 */ @Schema(description = "关阀时IC卡编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public String clIcCardNo; /** * 关阀时IC卡地址 */ @Schema(description = "关阀时IC卡地址", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public String clIcCardAddr; /** * 关阀时剩余金额 */ @Schema(description = "关阀时剩余金额", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public Double clRemainMoney; /** * 关阀报中本次用水量 */ @Schema(description = "关阀时本次用水量", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public Double clThisAmount; /** * 关阀报中本次消费金额 */ @Schema(description = "关阀时本次消费金额", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public Double clThisMoney; /** * 关阀报中本次用水时长(分钟) */ @Schema(description = "关阀时本次用水时长(分钟)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public Integer clThisTime; /** * 关阀报中的开阀时控制器时钟 */ @Schema(description = "关阀报中的开阀时控制器时钟", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public Date clOpenDt; /** * 关阀时控制器时钟 */ @Schema(description = "关阀时控制器时钟", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public Date closeDt; public void valueFrom(DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo)throws Exception { this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt) ; this.opType = dataCd83OpenVo.type ; this.opTotalAmount = dataCd83OpenVo.totalAmount ; this.opIcCardNo = dataCd83OpenVo.icCardNo ; this.opIcCardAddr = dataCd83OpenVo.icCardAddr ; this.opRemainMoney = dataCd83OpenVo.remainMoney ; this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt) ; this.clDt = null ; this.clType = null ; this.clTotalAmount = null ; this.clIcCardNo = null ; this.clIcCardAddr = null ; this.clRemainMoney = null ; this.clThisAmount = null ; this.clThisMoney = null ; this.clThisTime = null ; this.clOpenDt = null ; this.closeDt = null ; } public void updateFrom(DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, boolean clearCloseValve) throws Exception { this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt); this.opType = dataCd83OpenVo.type ; this.opTotalAmount = dataCd83OpenVo.totalAmount ; this.opIcCardNo = dataCd83OpenVo.icCardNo ; this.opIcCardAddr = dataCd83OpenVo.icCardAddr ; this.opRemainMoney = dataCd83OpenVo.remainMoney ; this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt) ; if(clearCloseValve) { this.clDt = null; this.clType = null; this.clTotalAmount = null; this.clIcCardNo = null; this.clIcCardAddr = null; this.clRemainMoney = null; this.clThisAmount = null; this.clThisMoney = null; this.clThisTime = null; this.clOpenDt = null; this.closeDt = null; } } }