package com.tofly.feesapi.cbgl.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.tofly.feesapi.common.constant.CbbzEnum;
import com.tofly.feesapi.common.constant.JsbzEnum;
import com.tofly.feesapi.common.constant.ShbzEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.List;
import java.util.stream.Collectors;


/**
 * 抄表计划_抄表录入
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "YY_CBLR_LS", resultMap = "yyCblrLsMap")
@KeySequence("YY_CBLR_LS")
@ApiModel
public class YyCblrLs extends Model<YyCblrLs> {
    private static final long serialVersionUID = 1L;

    /**
     * 审核人员姓名
     */
    @ApiModelProperty(value = "审核人员姓名")
    private String shryxm;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 用户编号
     */
    @ApiModelProperty(value = "用户编号")
    private String yhbh;
    /**
     * 抄表卡号
     */
    @ApiModelProperty(value = "抄表卡号")
    private String cbkh;
    /**
     * 抄表卡ID：yh_cbkxx.cbkid=YY_CBLR_LS.cbkid
     */
    @ApiModelProperty(value = "抄表卡ID：yh_cbkxx.cbkid=YY_CBLR_LS.cbkid")
    private String cbkid;
    /**
     * 所属公司
     */
    @ApiModelProperty(value = "所属公司")
    private String ssgs;
    /**
     * 所属抄表片区
     */
    @ApiModelProperty(value = "所属抄表片区")
    private String sscbpq;
    /**
     * 所属抄表本
     */
    @ApiModelProperty(value = "所属抄表本")
    private String sscbb;
    /**
     * 财务日期
     */
    @ApiModelProperty(value = "财务日期")
    private String cwrq;
    /**
     * 上次读数
     */
    @ApiModelProperty(value = "上次读数")
    private BigDecimal scds;
    /**
     * 本次读数
     */
    @ApiModelProperty(value = "本次读数")
    private BigDecimal bcds;
    /**
     * 本次加减量
     */
    @ApiModelProperty(value = "本次加减量")
    private BigDecimal jjl;
    /**
     * 抄表人员编码
     */
    @ApiModelProperty(value = "抄表人员编码")
    private String cbrybm;
    /**
     * 抄表人员姓名
     */
    @ApiModelProperty(value = "抄表人员姓名")
    private String cbryxm;
    /**
     * 抄表日期
     */
    @ApiModelProperty(value = "抄表日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime cbrq;
    /**
     * 录入人员编码
     */
    @ApiModelProperty(value = "录入人员编码")
    private String lrrybm;
    /**
     * 录入人员姓名
     */
    @ApiModelProperty(value = "录入人员姓名")
    private String lrryxm;
    /**
     * 录入日期
     */
    @ApiModelProperty(value = "录入日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lrrq;
    /**
     * 照片地址链接
     */
    @ApiModelProperty(value = "照片地址链接")
    private String photo;
    /**
     * 抄表标志：0未抄表，1已抄表
     */
    @ApiModelProperty(value = "抄表标志：0未抄表，1已抄表")
    private CbbzEnum cbbz;
    /**
     * 审核标志（0：未审核；1：审核通过；2：审核不通过）
     */
    @ApiModelProperty(value = "审核标志（0：未审核；1：审核通过；2：审核不通过）")
    private ShbzEnum shbz;
    /**
     * 计算标志：0未算费，1已算费
     */
    @ApiModelProperty(value = "计算标志：0未算费，1已算费")
    private JsbzEnum jsbz;
    /**
     * 抄表次数
     */
    @ApiModelProperty(value = "抄表次数")
    private BigDecimal cbcs;
    /**
     * 抄表序号
     */
    @ApiModelProperty(value = "抄表序号")
    private BigDecimal cbxh;
    /**
     * 抄表备注,存储抄表描述内容
     */
    @ApiModelProperty(value = "抄表备注,存储抄表描述内容")
    private String bz;
    /**
     * 抄表类型:BM_CBLX
     */
    @ApiModelProperty(value = "抄表类型:BM_CBLX")
    private String cblx;
    /**
     * 抄表方式:bm_cbfs
     */
    @ApiModelProperty(value = "抄表方式:bm_cbfs")
    private String cbfs;
    /**
     * 计费状态（1正常，2停用）
     */
    @ApiModelProperty(value = "计费状态（1正常，2停用）")
    private String jfzt;
    /**
     * 水量
     */
    @ApiModelProperty(value = "水量")
    private BigDecimal sl;
    /**
     * 旧表止读
     */
    @ApiModelProperty(value = "旧表止读")
    private BigDecimal jbzd;
    /**
     * 新表起度
     */
    @ApiModelProperty(value = "新表起度")
    private BigDecimal xbqd;
    /**
     * 旧表编号
     */
    @ApiModelProperty(value = "旧表编号")
    private String jbbh;
    /**
     * 抄表数据来源（0手工抄表，1抄表机抄表，2移动APP抄表，3远传抄表，4批量导入抄表，5换表抄）
     */
    @ApiModelProperty(value = "抄表数据来源（0手工抄表，1抄表机抄表，2移动APP抄表，3远传抄表，4批量导入抄表，5换表抄）")
    private String cbly;
    /**
     * $column.comments
     */
    @ApiModelProperty(value = "$column.comments")
    private String x;
    /**
     * $column.comments
     */
    @ApiModelProperty(value = "$column.comments")
    private String y;
    /**
     * 审核人员
     */
    @ApiModelProperty(value = "审核人员")
    private String shry;
    /**
     * 审核时间
     */
    @ApiModelProperty(value = "审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date shsj;
    /**
     * 审核说明
     */
    @ApiModelProperty(value = "审核说明")
    private String shsm;
    /**
     * 所属城镇
     */
    @ApiModelProperty(value = "所属城镇")
    private String ssregion;

    /**
     * nb表最新读数
     */
    @ApiModelProperty(value = "nb表最新读数")
    private BigDecimal nbzxds = BigDecimal.ZERO;
    /**
     * nb表最新抄表日期
     */
    @ApiModelProperty(value = "nb表最新抄表日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date nbzxcbrq;

    @ApiModelProperty("计算水量")
    private BigDecimal jssl;

    @ApiModelProperty("水表状态")
    private String sbzt;

    @ApiModelProperty(value = "区域负责人编码")
    private String qyfzrbm;

    @ApiModelProperty(value = "区域负责人姓名")
    private String qyfzrxm;

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