package cn.cecep.talroad.domain.analysis;


import cn.cecep.talroad.common.core.annotation.Excel;
import cn.cecep.talroad.common.core.web.domain.BaseEntity;
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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;

/**
 * 许可在线排放量废水明细对象 s_ra_water_permitted_online
 *
 * @author szhpt
 * @date 2023-06-02*/
@ApiModel(value = "许可在线排放量废水明细")
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("s_ra_water_permitted_online")
public class SRaSourcePermittedOnline extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "数据主键")
    /** 数据主键 */
    @TableId(value = "data_id",type = IdType.AUTO)
    private String dataId;

    @ApiModelProperty(value = "企业主键")
    /** 企业主键 */
    private String factoryId;

    @ApiModelProperty(value = "企业名称")
    /** 企业名称 */
    @Excel(name = "企业名称",sort = 1)
    private String factoryName;

    @ApiModelProperty(value = "行业类别名称(多个使用'、'拼接)")
    /** 行业类别名称(多个使用'、'拼接) */
    @Excel(name = "行业名称",sort = 2)
    private String industryCategoryName;

    @ApiModelProperty(value = "行业类别编码(多个使用'、'拼接)")
    /** 行业类别编码(多个使用'、'拼接) */
    private String industryCategoryCode;

    @ApiModelProperty(value = "所在区县名称")
    /** 所在区县名称 */
    @Excel(name = "区县名称",sort = 3)
    private String districtName;

    @ApiModelProperty(value = "监测点名称")
    /** 监测点名称 */
    private String moitorName;

    @ApiModelProperty(value = "排口编号")
    /** 排口编号 */
    private String outletCode;

    @ApiModelProperty(value = "排口类型(1主要排口、2一般排口)")
    /** 排口类型(1主要排口、2一般排口) */
    private String outletType;

    @ApiModelProperty(value = "监测类型(1自动监测、2手工检测)")
    /** 监测类型(1自动监测、2手工检测) */
    private String monitorType;

    @ApiModelProperty(value = "cod在线排放量（kg）")
    /** cod在线排放量（kg） */
    @Excel(name = "COD在线排放量(kg)",sort = 4,cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal cod;

    @ApiModelProperty(value = "氨氮在线排放量（kg）")
    /** 氨氮在线排放量（kg） */
    @Excel(name = "氨氮在线排放量(kg)", sort = 5,cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal ammonia;
    @ApiModelProperty(value = "总磷在线排放量（kg）")
    /** 总磷在线排放量（kg） */
    @Excel(name = "总磷在线排放量(kg)", sort = 6,cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal phosphorus;

    @ApiModelProperty(value = "总氮在线排放量（kg）")
    /** 总氮在线排放量（kg） */
    @Excel(name = "总氮在线排放量(kg)", sort = 7,cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal nitrogen;

    @ApiModelProperty(value = "cod许可在线排放量（kg）")
    @Excel(name = "COD许可排放量(kg)", sort = 8,cellType = Excel.ColumnType.NUMERIC)
    /** cod许可在线排放量（kg） */
    private BigDecimal codAmendments;

    @ApiModelProperty(value = "氨氮许可在线排放量（kg）")
    @Excel(name = "氨氮许可排放量(kg)", sort = 9,cellType = Excel.ColumnType.NUMERIC)
    /** 氨氮许可在线排放量（kg） */
    private BigDecimal ammoniaAmendments;

    @ApiModelProperty(value = "总磷许可在线排放量（kg）")
    @Excel(name = "总磷许可排放量(kg)", sort = 10,cellType = Excel.ColumnType.NUMERIC)
    /** 总磷许可在线排放量（kg） */
    private BigDecimal phosphorusAmendments;
    @ApiModelProperty(value = "总氮许可在线排放量（kg）")
    @Excel(name = "总氮许可排放量(kg)", sort = 11,cellType = Excel.ColumnType.NUMERIC)
    /** 总氮许可在线排放量（kg） */
    private BigDecimal nitrogenAmendments;

    @ApiModelProperty(value = "NOx在线排放量（kg）")
    /** NOx在线排放量（kg） */
    @Excel(name = "NOx在线排放量(kg)",sort = 12,cellType = Excel.ColumnType.NUMERIC)
    @TableField(exist = false)
    private BigDecimal nox;

    @ApiModelProperty(value = "SO2在线排放量（kg）")
    /** SO2在线排放量（kg） */
    @Excel(name = "SO2在线排放量(kg)", sort = 13,cellType = Excel.ColumnType.NUMERIC)
    @TableField(exist = false)
    private BigDecimal so2;

    @ApiModelProperty(value = "颗粒物在线排放量（kg）")
    /** 颗粒物在线排放量（kg） */
    @Excel(name = "颗粒物在线排放量(kg)",sort = 14,cellType = Excel.ColumnType.NUMERIC)
    @TableField(exist = false)
    private BigDecimal pm;

    @ApiModelProperty(value = "vocs在线排放量（kg）")
    /** vocs在线排放量（kg） */
    @Excel(name = "VOCs在线排放量(kg)", sort = 15,cellType = Excel.ColumnType.NUMERIC)
    @TableField(exist = false)
    private BigDecimal vocs;

    @ApiModelProperty(value = "NOx许可在线排放量（kg）")
    @Excel(name = "NOx许可排放量(kg)", sort = 16,cellType = Excel.ColumnType.NUMERIC)
    @TableField(exist = false)
    /** NOx许可在线排放量（kg） */
    private BigDecimal noxAmendments;

    @ApiModelProperty(value = "so2许可在线排放量（kg）")
    @Excel(name = "SO2许可排放量(kg)", sort = 17,cellType = Excel.ColumnType.NUMERIC)
    /** so2许可在线排放量（kg） */
    @TableField(exist = false)
    private BigDecimal so2Amendments;

    @ApiModelProperty(value = "颗粒物许可在线排放量（kg）")
    @Excel(name = "颗粒物许可排放量(kg)", sort = 18,cellType = Excel.ColumnType.NUMERIC)
    /** 颗粒物许可在线排放量（kg） */
    @TableField(exist = false)
    private BigDecimal pmAmendments;

    @ApiModelProperty(value = "vocs许可在线排放量（kg）")
    @Excel(name = "VOCs许可排放量(kg)", sort = 19,cellType = Excel.ColumnType.NUMERIC)
    /** vocs许可在线排放量（kg） */
    @TableField(exist = false)
    private BigDecimal vocsAmendments;

    @ApiModelProperty(value = "所在区县编码")
    /** 所在区县编码 */
    private String districtCode;

    @ApiModelProperty(value = "监测时间")
    /** 监测时间 */
    private String monitorTime;

    @ApiModelProperty(value = "数据标记启炉，停炉，焖炉，生产设施故障，停运，国发非正常工况标记,无效数据是否用许可在线排放量计算")
    /** 数据标记启炉，停炉，焖炉，生产设施故障，停运，国发非正常工况标记,无效数据是否用许可在线排放量计算 */
    private String dataFlag;

    @ApiModelProperty(value = "纳入在线排放量计算启炉，停炉，焖炉，生产设施故障，停运，国发非正常工况标记,无效数据是否用许可在线排放量计算")
    /** 纳入在线排放量计算启炉，停炉，焖炉，生产设施故障，停运，国发非正常工况标记,无效数据是否用许可在线排放量计算 */
    private String includedEmissions;

    @TableField(exist = false)
    private String monitorId;

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("dataId", getDataId())
            .append("factoryId", getFactoryId())
            .append("factoryName", getFactoryName())
            .append("industryCategoryName", getIndustryCategoryName())
            .append("industryCategoryCode", getIndustryCategoryCode())
            .append("districtName", getDistrictName())
            .append("districtCode", getDistrictCode())
            .append("outletType", getOutletType())
            .append("moitorName", getMoitorName())
            .append("monitorType", getMonitorType())
            .append("monitorTime", getMonitorTime())
            .append("outletCode", getOutletCode())
            .append("cod", getCod())
            .append("codAmendments", getCodAmendments())
            .append("nitrogen", getNitrogen())
            .append("nitrogenAmendments", getNitrogenAmendments())
            .append("ammonia", getAmmonia())
            .append("ammoniaAmendments", getAmmoniaAmendments())
            .append("phosphorus", getPhosphorus())
            .append("phosphorusAmendments", getPhosphorusAmendments())
            .append("dataFlag", getDataFlag())
            .append("createTime", getCreateTime())
            .append("includedEmissions", getIncludedEmissions())
            .toString();
    }
}
