/*
 * Author: wangjian
 * 生成entity
 */
package com.tofly.watermeter.entity;

import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;


/**
 * 抄表历史数据（有本系统自己管理的）
 *
 * @author wangjieliu
 * @date Wed Nov 10 00:00:00 CST 2021
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "TF_YWPN_READMETERHIS_W", resultMap = "readmeterhisMap")
@KeySequence("TF_YWPN_READMETERHIS_W")
@ApiModel
public class Readmeterhis extends Model<Readmeterhis> {
    private static final long serialVersionUID = 1L;

    /**
     * 用户编号
     */
    @ApiModelProperty(value = "用户编号")
    private String yhbh;
    @ApiModelProperty(value = "用户id")
    private String userId;
    /**
     * 抄表卡号
     */
    @ApiModelProperty(value = "抄表卡号")
    private String cbkh;
    /**
     * 抄表序号
     */
    @ApiModelProperty(value = "抄表序号")
    private Long cbxh;
    @ApiModelProperty(value = "子级排序字段；用于区分排序时中间批量插入的顺序")
    private Integer childSort;
    /**
     * 用户姓名
     */
    @ApiModelProperty(value = "用户姓名")
    private String yhxm;
    /**
     * 用户地址
     */
    @ApiModelProperty(value = "用户地址")
    private String yhdz;
    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话")
    private String lxdh;
    /**
     * 水表编号
     */
    @ApiModelProperty(value = "水表编号")
    private String sbbh;
    /**
     * 水表厂家
     */
    @ApiModelProperty(value = "水表厂家")
    private String sbcj;
    /**
     * 水表类型
     */
    @ApiModelProperty(value = "水表类型1:普通表2:网络表3:卡表4:远传表")
    private String sblx;
    /**
     * 水表口径
     */
    @ApiModelProperty(value = "水表口径")
    private String sbkj;

    /**
     * 用水性质
     */
    @ApiModelProperty(value = "用水性质")
    private String ysxz;
    /**
     * 性质细分
     */
    @ApiModelProperty(value = "性质细分")
    private String xzxf;
    /**
     * 抄表片区（编码)
     */
    @ApiModelProperty(value = "抄表片区（编码)")
    private String cbpq;
    /**
     * 抄表本 （编码）
     */
    @ApiModelProperty(value = "抄表本 （编码）")
    private String cbb;
    /**
     * 财务日期如：（202105）
     */
    @ApiModelProperty(value = "财务日期如：（202105）")
    private String cwrq;
    /**
     * 上次读数
     */
    @ApiModelProperty(value = "上次读数")
    private Long scds;
    /**
     * 本次读数
     */
    @ApiModelProperty(value = "本次读数")
    private Long bcds;
    /**
     * 本次加减量
     */
    @ApiModelProperty(value = "本次加减量")
    private Long bcjjl;
    /**
     * 抄表标志 0未抄表，1已抄表
     */
    @ApiModelProperty(value = "抄表标志 0未抄表，1已抄表")
    private String cbbz;
    @ApiModelProperty(hidden = true)
    @TableField(exist = false)
    private String cbbzName;
    /**
     * 计费状态 1正常计费，2停用
     */
    @ApiModelProperty(value = "计费状态 1正常计费，2停用")
    private String jfzt;
    /**
     * 抄表人员
     */
    @ApiModelProperty(value = "抄表人员")
    private Long cbry;

    private String cbryName;

    /**
     * 抄表日期
     */
    @ApiModelProperty(value = "抄表日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cbrq;

    @ApiModelProperty(value = "上传时间(天)")
    private String uploadDay;
    /**
     * 计划抄表日期
     */
    @ApiModelProperty(value = "该字段暂无用")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date jhrq;
    /**
     * 数据下载标识,1已下载 0未下载
     */
    @ApiModelProperty(value = "数据下载标识,1已下载 0未下载")
    private String xzbs;
    /**
     * 文件ID
     */
    @ApiModelProperty(value = "文件ID")
    private String fileid;
    /**
     * 抄表方式
     */
    @ApiModelProperty(value = "抄表方式")
    private Long cbfsCode;
    @ApiModelProperty(hidden = true)
    @TableField(exist = false)
    private String cbfsName;
    /**
     * 抄表数据审核标识；0：未审核；1：已审核
     */
    @ApiModelProperty(value = "抄表数据审核标识；0：未审核；1：人工审核通过；2：转质检；3：转质检完成的")
    private String shbz;
    /**
     * 审核人
     */
    @ApiModelProperty(value = "审核人")
    private Long auditUser;
    /**
     * 审核备注
     */
    @ApiModelProperty(value = "审核备注")
    private String auditCause;
    /**
     * 抄表月份
     */
    @ApiModelProperty(value = "抄表月份")
    private String cbyf;
    /**
     * 抄表水量
     */
    @ApiModelProperty(value = "抄表水量")
    private Long cbsl;
    @ApiModelProperty(value = "最初的抄表水量")
    private Long updateWater;
    @ApiModelProperty(value = "最初的上次读数")
    private Long updateBcds;
    @ApiModelProperty(value = "最初的本次读数")
    private Long updateScds;
    @ApiModelProperty(value = "是否修改过水量；1：是")
    private String isUpdatecbsl;
    @ApiModelProperty(value = "修改后的水量历史表最新ID")
    private Long isUpdateid;
    /**
     * 应收金额
     */
    @ApiModelProperty(value = "应收金额")
    private Long ysje;
    /**
     * 审核结果；0：不合格；1：合格
     */
    @ApiModelProperty(value = "，似乎没用了，用SHBZ来做的")
    private String auditResult;
    @ApiModelProperty(value = "'0','未审核','1','人工审核通过','2','转质检','3','转质检完成' " , hidden = true)
    @TableField(exist = false)
    private String auditResultName;
    /**
     * 异常原因
     */
    @ApiModelProperty(value = "异常原因")
    private String auditReason;
    /**
     * 是否同步；0：未同步、1：已同步
     */
    @ApiModelProperty(value = "是否同步；0：未同步、1：已同步")
    private String issyn;
    @ApiModelProperty(hidden = true)
    @TableField(exist = false)
    private String issynName;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String bz;
    /**
     * 流水编号
     */
    @ApiModelProperty(value = "流水编号")
    private String lsbh;
    /**
     * 森鑫炬同步接口返回的消息数据
     */
    @ApiModelProperty(value = "森鑫炬同步接口返回的消息数据")
    private String sxjmessage;
    @ApiModelProperty(value = "抄表数据上传时，森鑫炬返回系统的抄表起度")
    private Long sxjSbqd;
    /**
     * X坐标
     */
    @ApiModelProperty(value = "X坐标")
    private Double x;
    /**
     * Y坐标
     */
    @ApiModelProperty(value = "Y坐标")
    private Double y;
    /**
     * 地址说明
     */
    @ApiModelProperty(value = "地址说明")
    private String addressState;
    /**
     * 是否卡表；0：机械表；1：卡表
     */
    @ApiModelProperty(value = "是否卡表；0：机械表；1：卡表")
    private String isGeneral;
    /**
     * 前1月份水量
     */
    @ApiModelProperty(value = "前第1次水量")
    private Long month1;
    @ApiModelProperty(value = "前第1次水量的抄表时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cbrq1;

    /**
     * 前2月份水量
     */
    @ApiModelProperty(value = "前第2次水量")
    private Long month2;
    @ApiModelProperty(value = "前第2次水量的抄表时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cbrq2;

    /**
     * 前2月份水量
     */
    @ApiModelProperty(value = "前第3次水量")
    private Long month3;
    @ApiModelProperty(value = "前第3次水量的抄表时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cbrq3;

    /**
     * 单/双月/每月；0：双月；1：单月；2：每月
     */
    @ApiModelProperty(value = "单/双月/每月；0：双月；1：单月；2：每月")
    private String sinDouMonth;
    @TableField(exist = false)
    @ApiModelProperty(hidden = true)
    private String sinDouMonthName;
    /**
     * 抄表开始日
     */
    @ApiModelProperty(value = "抄表开始日")
    private Short startDay;
    /**
     * 抄表结束日
     */
    @ApiModelProperty(value = "抄表结束日")
    private Short endDay;
    /**
     * 抄表区域名称
     */
    @ApiModelProperty(value = "抄表区域名称")
    private String cbqyMc;
    /**
     * 抄表区域编码
     */
    @ApiModelProperty(value = "抄表区域编码")
    private String cbqyBm;
    /**
     * 抄表区段编码
     */
    @ApiModelProperty(value = "抄表区段编码")
    private String cbqydBm;
    @ApiModelProperty(value = "区域段名称")
    private String qydmc;

    @ApiModelProperty(value = "月计划月份")
    private String monthPlan;

    @ApiModelProperty(value = "是否离线抄表；0：APP抄表(在线)；1：离线抄表；默认：0")
    private String isOffline;

    @ApiModelProperty(value = "计划开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startRq;

    @ApiModelProperty(value = "计划结束日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endRq;

    @ApiModelProperty(value = "换表类型选择（表黑/雾等）")
    private Long hblx;

    @ApiModelProperty(value = "新表起度")
    private Long xbqd;

    @ApiModelProperty(value = "旧表止度")
    private Long jbzd;

    @ApiModelProperty(value = "换表日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date hbrq;

    @ApiModelProperty(value = "0水量次数，只要本次水量不为0则次数归零")
    private Integer zeroCount;
    @ApiModelProperty(value = "水量连续上升次数，只要本次水量不上升就归零")
    private Integer continuityUp;
    @ApiModelProperty(value = "水量连续下降次数，只要本次水量不下降就归零")
    private Integer continuityDown;
    @ApiModelProperty(value = "水量连续相同次数，只要本次水量不相同就归零")
    private Integer continuityEqual;
    @ApiModelProperty(value = "是否首次抄表，；0：否；1：是")
    private String isfirst;

    @ApiModelProperty(value = "时间间隔")
    private Integer diffTime;

    @ApiModelProperty(value = "同比1")
    private Long yearonyear1;
    @ApiModelProperty(value = "同比2")
    private Long yearonyear2;
    @ApiModelProperty(value = "同比3")
    private Long yearonyear3;
    @ApiModelProperty(value = "同比年月1")
    private String yearonmonth1;
    @ApiModelProperty(value = "同比年月2")
    private String yearonmonth2;
    @ApiModelProperty(value = "同比年月3")
    private String yearonmonth3;
    @ApiModelProperty(value = "审核时间")
    private Date auditTime;
    @ApiModelProperty(value = "异常类型ID")
    private Long auditType;
    @ApiModelProperty(value = "质检记录次数")
    private Integer qualityCount;
    @ApiModelProperty(value = "算法类型ID")
    private Long abnomalId;
    @ApiModelProperty(value = "升降量，与上一次水量只差")
    private Long sjsl;
    @ApiModelProperty(value = "是否故障抄表；1：是")
    private String isbreakRead;
    @ApiModelProperty(value = "工单ID，多个逗号隔开")
    private String orderIds;
    @ApiModelProperty(value = "前第4次抄表日期")
    private Date cbrq4;
    @ApiModelProperty(value = "是否估报；1：是")
    private String isEstimate;
    @ApiModelProperty(value = "app端本地文件保存地址")
    private String imgUrl;
    @ApiModelProperty(value = "是否欠费")
    private String sfqf;
    @ApiModelProperty(value = "欠费金额")
    private Double qfje;
    @ApiModelProperty(value = "欠费周期")
    private String qfzq;
    @ApiModelProperty(value = "客户档案信息抄表时备注")
    private String clientBz;
    @ApiModelProperty(value = "抄表数据上传时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date handlersTime;
    @ApiModelProperty(value = "抄表数据上传人员名称")
    private String handlersName;
    @ApiModelProperty(value = "抄表数据上传人员ID")
    private Long handlersId;
    @ApiModelProperty(value = "抄表的唯一标识")
    private String soleSign;
    /**
     * 客户状态(存编码)
     */
    @ApiModelProperty(value = "客户状态(存编码)；0：未启用；1：正常；2：报停；3：停水；4：锁定；5：关阀；9：销户")
    private String yhzt;
    /**
     * 关联计划表TF_YWPN_QFCBQFMX_W中的ID
     */
    @ApiModelProperty(value = "关联计划表TF_YWPN_QFCBQFMX_W中的ID，年计划ID")
    private Long planId;

    @ApiModelProperty(value = "上传到森鑫炬的具体时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date uploadTime;

    @ApiModelProperty(value = "审核通过原因")
    private String auditPassReson;

    @ApiModelProperty(value = "转工单后回调的工单ID")
    private String gdId;

    @ApiModelProperty(value = "总购量")
    private Long zgl;

    @ApiModelProperty(value = "差值，总购量与本次读数的差值")
    private Long diffValue;

    private Long updateUser;

    @TableField(exist = false)
    private String updateUserName;

    private Date updateDate;
    @ApiModelProperty(value = "森鑫炬上传文件id")
    private String images;

    /**
     * 不是数据库字段
     */
    @ApiModelProperty(value = "同比升降幅度", hidden = true)
    @TableField(exist = false)
    private Float yearRange;
    @ApiModelProperty(value = "环比升降幅度", hidden = true)
    @TableField(exist = false)
    private Float monthRange;
    @ApiModelProperty(value = "算法类型名称", hidden = true)
    @TableField(exist = false)
    private String abnomalName;
    @ApiModelProperty(value = "审核时间", hidden = true)
    @TableField(exist = false)
    private String auditTimeStr;
    @ApiModelProperty(value = "抄表时间", hidden = true)
    @TableField(exist = false)
    private String cbrqStr;
    @ApiModelProperty(value = "水表口径名称", hidden = true)
    @TableField(exist = false)
    private String sbkjName;
    @ApiModelProperty(value = "用水性质名称", hidden = true)
    @TableField(exist = false)
    private String ysxzName;
    @ApiModelProperty(value = "抄表片区名称", hidden = true)
    @TableField(exist = false)
    private String cbpqName;
    @ApiModelProperty(value = "抄表本名称", hidden = true)
    @TableField(exist = false)
    private String cbbName;
    @ApiModelProperty(value = "时间间隔中文", hidden = true)
    @TableField(exist = false)
    private String diffTimeStr;
    @ApiModelProperty(value = "水表卡号", hidden = true)
    @TableField(exist = false)
    private String sbkh;
    @ApiModelProperty(value = "审核人姓名", hidden = true)
    @TableField(exist = false)
    private String auditUserName;

    @TableField(exist = false)
    private List<String> fileUrl;

    @TableField(exist = false)
    private String sbcjName;
    @TableField(exist = false)
    private String sblxName;


}
