package com.zcxk.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zcxk.common.converter.Double3Serializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 月度营收表(sms_month_revenue)实体类
 *
 * @author yjy
 * @since 2021-2-23
 */
@Data
@ApiModel(value = "月度营收表")
public class MonthRevenueEntity implements Serializable {
    private static final long serialVersionUID = 460807634914426955L;

    @ApiModelProperty(value = "主键")
    private Integer id;

    @ApiModelProperty(value = "租户标识")
    private String tenantId;

    @ApiModelProperty(value = "所属公司")
    private Integer companyOrgId;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    @ApiModelProperty(value = "采集时间")
    private Date collectDate;

    @ApiModelProperty(value = "总户数")
    private Integer userMeterCount;

    @ApiModelProperty(value = "新增用户数")
    private Integer userMeterAddCount;

    @ApiModelProperty(value = "抄表数")
    private Integer meterReadingCount;

    @ApiModelProperty(value = "抄表总水量")
    @JsonSerialize(using = Double3Serializer.class)
    private Double meterReadingUsage;

    @ApiModelProperty(value = "计费总水量")
    @JsonSerialize(using = Double3Serializer.class)
    private Double chargingUsage;

    @ApiModelProperty(value = "抄表完成率")
    private Double meterReadingFinishedRate;

    @ApiModelProperty(value = "抄表到户率")
    private Double meterReadingArrivalRate;

    @ApiModelProperty(value = "抄表错误率")
    private Double meterReadingErrorRate;

    @ApiModelProperty(value = "应收总金额")
    @JsonSerialize(using = Double3Serializer.class)
    private Double receivableTotalAmount;

    @ApiModelProperty(value = "实收总金额")
    @JsonSerialize(using = Double3Serializer.class)
    private Double receivedTotalAmount;

    @ApiModelProperty(value = "开票总金额")
    @JsonSerialize(using = Double3Serializer.class)
    private Double invoicedTotalAmount;

    @ApiModelProperty(value = "欠费总金额")
    @JsonSerialize(using = Double3Serializer.class)
    private Double arrearsTotalAmount;

    @ApiModelProperty(value = "普通客户应收金额")
    @JsonSerialize(using = Double3Serializer.class)
    private Double generalUserUsage;

    @ApiModelProperty(value = "大客户应收金额")
    @JsonSerialize(using = Double3Serializer.class)
    private Double bigUserUsage;

    @ApiModelProperty(value = "普通客户实收金额")
    @JsonSerialize(using = Double3Serializer.class)
    private Double generalUserUsageReceived;

    @ApiModelProperty(value = "大客户实收金额")
    @JsonSerialize(using = Double3Serializer.class)
    private Double bigUserUsageReceived;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "创建人")
    private String createBy;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    @ApiModelProperty(value = "创建时间")
    private Date dateCreate;

    @ApiModelProperty(value = "更新人")
    private String updateBy;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    @ApiModelProperty(value = "更新时间")
    private Date dateUpdate;
}