package com.nantian.cloud.jljc.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
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 com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

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

/**
 * 能源信息
 * @author stz
 * @since 2020-08-05
 */
@Data
@TableName("energy_info")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "能源信息")
public class EnergyInfo extends Model<EnergyInfo> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id")
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "主键")
    private Long id;

    /**
     * 能源名称
     */
    @ApiModelProperty(value = "能源名称")
    private String energyName;

    /**
     * 能源编码
     */
    @ApiModelProperty(value = "能源编码")
    private String code;

    /**
     * 能源计量单位
     */
    @ApiModelProperty(value = "能源计量单位")
    private String unit;

    /**
     * 参考当量折标系数
     */
    @ApiModelProperty(value = "参考当量折标系数")
    private String refModulus;

    /**
     * 参考等价折标系数
     */
    @ApiModelProperty(value = "参考等价折标系数")
    private String equalModulus;

    @TableField(exist = false)
    @ApiModelProperty(value = "当量折标系数（企业端，报表设置时使用）")
    private String nowrefModulus;

    @TableField(exist = false)
    @ApiModelProperty(value = "等价折标系数（企业端，报表设置时使用）")
    private String equivalentMarks;

    @TableField(exist = false)
    @ApiModelProperty(value = "企业购入能源（企业端，报表设置时使用）")
    private String compBuyEnergy;

    @TableField(exist = false)
    @ApiModelProperty(value = "加工转换产出能源（企业端，报表设置时使用）")
    private String processEnergy;

    @TableField(exist = false)
    @ApiModelProperty(value = "工艺产出能源（企业端，报表设置时使用）")
    private String craftEnergy;

    /**
     * 折标系数计量单位
     */
    @ApiModelProperty(value = "折标系数计量单位")
    private String unitModulus;

    /**
     * CO2排放系数
     */
    @ApiModelProperty(value = "CO2排放系数")
    private String co2;

    /**
     * CH4排放系数
     */
    @ApiModelProperty(value = "CH4排放系数")
    private String ch4;

    /**
     * NO2排放系数
     */
    @ApiModelProperty(value = "NO2排放系数")
    private String no2;

    /**
     * 上级能源
     */
    @ApiModelProperty(value = "上级能源")
    private Long pid;

    /**
     * 下级能源集
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "下级能源集")
    private String childs;

    /**
     * 用户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;

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

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

    /**
     * 期初库存量
     */
    @ApiModelProperty(value = "期初库存量")
    private String startInventory;

    /**
     * 购进量-实物量
     */
    @ApiModelProperty(value = "购进量-实物量")
    private String object;

    /**
     * 购进量-金额（千元）
     */
    @ApiModelProperty(value = "购进量-金额（千元）")
    private String money;

    /**
     * 消费量-工业生产消费
     */
    @ApiModelProperty(value = "消费量-工业生产消费")
    private String consumeIndustry;

    /**
     * 消费量-用于原料材料
     */
    @ApiModelProperty(value = "消费量-用于原料材料")
    private String consumeMaterial;

    /**
     * 消费量-非工业生产消费
     */
    @ApiModelProperty(value = "消费量-非工业生产消费")
    private String consumeNoindustry;

    /**
     * 消费量-合计中运输工具消费
     */
    @ApiModelProperty(value = "消费量-合计中运输工具消费")
    private String consumeTransport;

    /**
     * 期末库存量
     */
    @ApiModelProperty(value = "期末库存量")
    private String endInventory;

    /**
     * 消费量-合计
     */
    @ApiModelProperty(value = "消费量-合计")
    private String consumeSum;


    /**
     * 工业生产消费量
     */
    @ApiModelProperty(value = "工业生产消费量")
    private String productionConsumption;

    /**
     * 加工转换投入合计
     */
    @ApiModelProperty(value = "加工转换投入合计")
    private String proConTotal;

    /**
     * 加工转换投入火力发电
     */
    @ApiModelProperty(value = "加工转换投入火力发电")
    private String thermalPower;

    /**
     * 加工转换投入供热
     */
    @ApiModelProperty(value = "加工转换投入供热")
    private String heating;

    /**
     * 加工转换投入原煤入洗
     */
    @ApiModelProperty(value = "加工转换投入原煤入洗")
    private String coalWashing;

    /**
     * 加工转换投入炼焦
     */
    @ApiModelProperty(value = "加工转换投入炼焦")
    private String coking;

    /**
     * 加工转换投入炼油及煤制油
     */
    @ApiModelProperty(value = "加工转换投入炼油及煤制油")
    private String oil;

    /**
     * 加工转换投入制气
     */
    @ApiModelProperty(value = "加工转换投入制气")
    private String gasification;

    /**
     * 加工转换投天然气液化
     */
    @ApiModelProperty(value = "加工转换投天然气液化")
    private String gasLiquefaction;

    /**
     * 加工转换投加工煤制品
     */
    @ApiModelProperty(value = "加工转换投加工煤制品")
    private String coalProducts;

    /**
     * 能源加工转换产出
     */
    @ApiModelProperty(value = "能源加工转换产出")
    private String conversionOutput;

    /**
     * 能源加工转换产出折标量（吨标准煤）
     */
    @ApiModelProperty(value = "能源加工转换产出折标量（吨标准煤）")
    private String conversionOutputRef;

    /**
     * 回收利用
     */
    @ApiModelProperty(value = "回收利用")
    private String recycling;

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