package com.nantian.cloud.jljc.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;
import lombok.EqualsAndHashCode;

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

/**
 * 节能监察单位产品
 * @since 2020-10-29
 */
@Data
@TableName("t_supervision_unit_energy")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "节能监察单位产品")
public class TSupervisionUnitEnergy extends Model<TSupervisionUnitEnergy> {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @ApiModelProperty(value = "id")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

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


    @ApiModelProperty(value = "多产品标识")
    private Integer productionNum;
    /**
     * 更新时间
     */
    @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 String monitorId;

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

    /**
     * 产品名称
     */
    @ApiModelProperty(value = "产品名称")
    private String productName;

    /**
     * 数量
     */
    @ApiModelProperty(value = "数量")
    private String production;

    /**
     * 产品单位
     */
    @ApiModelProperty(value = "产品单位")
    private String unit;

    /**
     * 设计产能
     */
    @ApiModelProperty(value = "设计产能")
    private Double designCapacity;
    /**
     * 设计产能
     */
    @ApiModelProperty(value = "设计产能单位")
    private String designCapacityUnit;
    /**
     * 综合能耗
     */
    @ApiModelProperty(value = "综合能耗")
    private Double comprehensiveEnergy;

    /**
     * 工序
     */
    @ApiModelProperty(value = "工序")
    private String process;

    /**
     * 单位产品综合能耗限额标准
     */
    @ApiModelProperty(value = "单位产品综合能耗限额标准")
    private String unitProductLimitStandard;

    /**
     * 单位产品综合能耗限额单位
     */
    @ApiModelProperty(value = "单位产品综合能耗限额单位")
    private String unitProductLimitUnit;

    /**
     * 单位产品综合能耗监察结果
     */
    @ApiModelProperty(value = "单位产品综合能耗监察结果")
    private String result;

    /**
     * 单位产品综合能耗
     */
    @ApiModelProperty(value = "单位产品综合能耗")
    private String unitProductEnergy;

    /**
     * 特征码
     */
    @ApiModelProperty(value = "特征码")
    private String code;

    /**
     * 单位产品综合能耗（附件）签字
     */
    @ApiModelProperty(value = "单位产品综合能耗（附件）签字")
    private String file;

    /**
     * 结果
     */
    @ApiModelProperty(value = "结果")
    private String calculationResults;

    @ApiModelProperty(value = "年度")
    private String year;
    /**
     * 种类（t_supervision_unit_energy_type表的code）
     */
    @ApiModelProperty(value = "种类（t_supervision_unit_energy_type表的code）")
    private Integer type;

    /**
     * 评定标准（1限定值，2准入值，3先进值）
     */
    @ApiModelProperty(value = "评定标准（1限定值，2准入值，3先进值）")
    private String evaluationCriteria;

    /**
     * 能耗汇总标记（0不是汇总，1综合能耗，2产量/消耗量等）
     */
    @ApiModelProperty(value = "能耗汇总标记（0不是汇总，1综合能耗，2产量/消耗量等）")
    private String tce;

    /**
     * 符号
     */
    @ApiModelProperty(value = "符号")
    private String symbol;

    /**
     * 电解槽规格型号及数量
     */
    @ApiModelProperty(value = "电解槽规格型号及数量")
    private String electrolyzerSpecifications;

    /**
     * 生产线编号
     */
    @ApiModelProperty(value = "生产线编号")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String lineNumber;

    @ApiModelProperty(value = "符号")
    private String oldCode;

    @ApiModelProperty(value = "pid（用于关联同一张单耗计算表）")
    private Integer pid;

    @ApiModelProperty(value = "pid（用于关联同一张单耗计算表）")
    private String taskName;

    @ApiModelProperty("子表 能监察单位产品集合")
    @TableField(exist = false)
    private List<TSupervisionUnitItem> unitItemList;

    @ApiModelProperty("子表 节能监察单位产品项目集合")
    @TableField(exist = false)
    private List<TSupervisionUnitEnergyComprehensive> unitEnergyComprehensiveList;

    @ApiModelProperty("子表 节能监察单位产品任务列表集合")
    @TableField(exist = false)
    private List<TSupervisionUnitEnergyTask> unitEnergyTaskList;


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