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.mw.protocol.p206V202404.DataV202404; import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo; import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo; 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/7/1 15:29 * @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 String opOrderNo; /** * 开阀时电表累计电量 */ @Schema(description = "开阀时电表累计电量", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public Double opEleTotalAmount; /** * 开阀时用水户剩余水量 */ @Schema(description = "开阀时用水户剩余水量", requiredMode = Schema.RequiredMode.NOT_REQUIRED) public Double opWaterRemainUser; /** * 开阀时控制器时钟 */ @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; /** * 关阀订单号(16位数字) */ public String clOrderNo; /** * 电表累计电量 */ public Double clEleTotalAmount; /** * 用户剩余水量 */ public Double clWaterRemainUser; /** * 本次使用电量 */ public Double thisEle; 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.opOrderNo = null; //江海协议特有 this.opEleTotalAmount = null; //江海协议特有 this.opWaterRemainUser = null; //江海协议特有 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; this.clOrderNo = null;//江海协议特有 this.clEleTotalAmount = null;//江海协议特有 this.clWaterRemainUser = null;//江海协议特有 this.thisEle = null;//江海协议特有 } public void valueFrom84(DataV202404 dataV202404, DataCd84Vo cdData) throws Exception { this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataV202404.dt); this.opType = null; this.opTotalAmount = cdData.waterTotalAmount; this.opIcCardNo = cdData.icCardNo; this.opIcCardAddr = cdData.icCardAddr; this.opRemainMoney = cdData.moneyRemainUser; this.opOrderNo = cdData.orderNo; //江海协议特有 this.opEleTotalAmount = cdData.eleTotalAmount; //江海协议特有 this.opWaterRemainUser = cdData.waterRemainUser; //江海协议特有 this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.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; this.clOrderNo = null;//江海协议特有 this.clEleTotalAmount = null;//江海协议特有 this.clWaterRemainUser = null;//江海协议特有 this.thisEle = null;//江海协议特有 } public void valueFrom85(DataV202404 dataV202404, DataCd85Vo cdData) throws Exception { this.clOpenDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.startDt); this.closeDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.endDt); this.opType = cdData.opType; this.clIcCardAddr = cdData.icCardAddr; this.clIcCardNo = cdData.icCardNo; this.clTotalAmount = cdData.waterTotalAmount; this.clRemainMoney = cdData.moneyRemain; this.clThisAmount = cdData.thisWater; this.clThisMoney = cdData.thisMoney; this.clThisTime = cdData.thisDuration; this.clOrderNo = cdData.orderNo; this.clEleTotalAmount = cdData.eleTotalAmount; this.clWaterRemainUser = cdData.waterRemain; this.thisEle = cdData.thisEle; } 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; } } }