package com.nantian.cloud.jljc.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

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

/**
 * 报表1-4进度节能量目标完成情况表
 * @since 2020-09-16
 * @author stz
 */
@Data
@TableName("t_report_rateprogress")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "报表1-4进度节能量目标完成情况表")
public class TReportRateprogress extends Model<TReportRateprogress> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id（表1-4进度节能量目标完成情况表）
     */
    @TableId(value = "id")
    @ApiModelProperty(value = "主键id（表1-4进度节能量目标完成情况表）")
    private Long id;

    /**
     *  报表信息表id
     */
    @ApiModelProperty(value = "报表信息表id")
    private Long reportId;

    /**
     * 进度节能量目标完成情况说明
     */
    @ApiModelProperty(value = "进度节能量目标完成情况说明")
    private String remarks;

    /**
     * 进度节能量目标
     */
    @ApiModelProperty(value = "进度节能量目标")
    private Double target;

    /**
     * 单位产品综合能耗实际完成进度节能量-当量值
     */
    @ApiModelProperty(value = "单位产品综合能耗实际完成进度节能量-当量值")
    private Double unitEnergyProgress;

    /**
     * 产值综合能耗实际完成进度节能量-当量值
     */
    @ApiModelProperty(value = "产值综合能耗实际完成进度节能量-当量值")
    private Double energyProgress;

    /**
     * 单位产品综合能耗进度节能量目标完成率-当量值
     */
    @ApiModelProperty(value = "单位产品综合能耗进度节能量目标完成率-当量值")
    private Double unitEnergyCompletion;

    /**
     * 产值综合能耗进度节能量目标完成率-当量值
     */
    @ApiModelProperty(value = "产值综合能耗进度节能量目标完成率-当量值")
    private Double energyCompletion;

    /**
     * 单位产品综合能耗实际完成进度节能量-等价值
     */
    @ApiModelProperty(value = "单位产品综合能耗实际完成进度节能量-等价值")
    private Double unitEnergyProgressEqual;

    /**
     * 产值综合能耗实际完成进度节能量-等价值
     */
    @ApiModelProperty(value = "产值综合能耗实际完成进度节能量-等价值")
    private Double energyProgressEqual;

    /**
     * 单位产品综合能耗进度节能量目标完成率-等价值
     */
    @ApiModelProperty(value = "单位产品综合能耗进度节能量目标完成率-等价值")
    private Double unitEnergyCompletionEqual;

    /**
     * 产值综合能耗进度节能量目标完成率-等价值
     */
    @ApiModelProperty(value = "产值综合能耗进度节能量目标完成率-等价值")
    private Double energyCompletionEqual;

    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id")
    private Integer userid;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    /**
     * 注销状态（1：未删除，4：已删除）
     */
    @ApiModelProperty(value = "注销状态（1：未删除，4：已删除）")
    private String delFlag;

    /**
     * 部门id
     */
    @ApiModelProperty(value = "部门id")
    private Integer deptId;

    /**
     * 扩展字段
     */
    @ApiModelProperty(value = "扩展字段 数字类型")
    private Double f1;

    /**
     * 扩展字段
     */
    @ApiModelProperty(value = "扩展字段 数字类型")
    private Double f2;

    /**
     * 扩展字段
     */
    @ApiModelProperty(value = "扩展字段 数字类型")
    private Double f3;

    /**
     * 扩展字段
     */
    @ApiModelProperty(value = "扩展字段 日期类型（yyyy-MM-dd）")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd", timezone = "GMT+8")
    private Date d1;

    /**
     * 扩展字段
     */
    @ApiModelProperty(value = "扩展字段 日期类型（yyyy-MM-dd）")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd", timezone = "GMT+8")
    private Date d2;

    /**
     * 扩展字段
     */
    @ApiModelProperty(value = "扩展字段 日期类型（yyyy-MM-dd）")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd", timezone = "GMT+8")
    private Date d3;

    /**
     * 扩展字段
     */
    @ApiModelProperty(value = "扩展字段 文本类型")
    private String t1;

    /**
     * 扩展字段
     */
    @ApiModelProperty(value = "扩展字段 文本类型")
    private String t2;

    /**
     * 扩展字段
     */
    @ApiModelProperty(value = "扩展字段 文本类型")
    private String t3;

    /**
     * 主键值
     */
    @Override
    protected Serializable pkVal() {
        return this.id;
    }

    @Override
    public String toString() {
        return "TReportRateprogress{" +
                "id=" + id +
                ", reportId=" + reportId +
                ", remarks='" + remarks + '\'' +
                ", target=" + big(target) +
                ", unitEnergyProgress=" + big(unitEnergyProgress) +
                ", energyProgress=" + big(energyProgress) +
                ", unitEnergyCompletion=" + big(unitEnergyCompletion) +
                ", energyCompletion=" + big(energyCompletion) +
                ", unitEnergyProgressEqual=" + big(unitEnergyProgressEqual) +
                ", energyProgressEqual=" + big(energyProgressEqual) +
                ", unitEnergyCompletionEqual=" + big(unitEnergyCompletionEqual) +
                ", energyCompletionEqual=" + big(energyCompletionEqual) +
                ", userid=" + userid +
                ", updateTime=" + updateTime +
                ", delFlag='" + delFlag + '\'' +
                ", deptId=" + deptId +
                ", f1=" + big(f1) +
                ", f2=" + big(f2) +
                ", f3=" + big(f3) +
                ", d1=" + d1 +
                ", d2=" + d2 +
                ", d3=" + d3 +
                ", t1='" + t1 + '\'' +
                ", t2='" + t2 + '\'' +
                ", t3='" + t3 + '\'' +
                '}';
    }

    private static String big(double d) {
        NumberFormat nf = NumberFormat.getInstance();
        nf.setGroupingUsed(false);
        return nf.format(d);
    }
}
