package cn.cecep.talroad.vo.analysis;

import cn.cecep.talroad.common.core.annotation.Excel;
import cn.cecep.talroad.config.BigDecimalSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;

public class SRaGasFlagVo {

    @ApiModel(value = "废气在线监测标记汇总表格数据")
    @Data
    public static class Row extends BaseVo {
        @Excel(name = "开始时间", sort = 80)
        @ApiModelProperty(value = "开始时间")
        private String startTime;

        @Excel(name = "结束时间", sort = 90)
        @ApiModelProperty(value = "结束时间")
        private String endTime;

        @ApiModelProperty("监测点位id")
        private String pointId;

        @Excel(name = "时长", sort = 100, cellType = Excel.ColumnType.NUMERIC)
        @ApiModelProperty(value = "时长")
        @JsonSerialize(using = BigDecimalSerialize.class)
        private BigDecimal duration;

        @Excel(name = "平均时长", sort = 110, cellType = Excel.ColumnType.NUMERIC)
        @ApiModelProperty(value = "平均时长")
        @JsonSerialize(using = BigDecimalSerialize.class)
        private BigDecimal durationAvg;
    }

    @ApiModel(value = "废气在线监测标记明细表格数据")
    @Data
    public static class DetailRow extends BaseVo {
        @Excel(name = "监测时间", sort = 80)
        @ApiModelProperty(value = "监测时间")
        private String monitorTime;
    }

    @Data
    public static class BaseVo {
        @Excel(name = "企业名称", sort = 10)
        @ApiModelProperty(value = "企业名称")
        private String factoryName;

        @Excel(name = "行业名称", sort = 20)
        @ApiModelProperty("行业名称")
        private String industryName;

        @Excel(name = "区县名称", sort = 30)
        @ApiModelProperty("区县名称")
        private String regionName;

        @Excel(name = "监测点位名称", sort = 40)
        @ApiModelProperty("监测点位名称")
        private String pointName;

        @Excel(name = "排口编号", sort = 50)
        @ApiModelProperty(value = "排口编号")
        private String outletCode;

        @Excel(name = "排口类型(1主要排口、2一般排口)", readConverterExp = "1=主要排口,2=一般排口", sort = 60)
        @ApiModelProperty(value = "排口类型(1主要排口、2一般排口)")
        private String outletTypes;

        @Excel(name = "标记类型", sort = 70)
        @ApiModelProperty(value = "标记类型名称")
        private String dataFlagName;

        @ApiModelProperty(value = "标记类型")
        private String dataFlag;

        @Excel(name = "废气排放量（m³）", cellType = Excel.ColumnType.NUMERIC)
        @ApiModelProperty(value = "废气排放量（m³）")
        @JsonSerialize(using = BigDecimalSerialize.class)
        private BigDecimal oxygenEmission;

        @Excel(name = "烟尘折算浓度（mg/m³）", cellType = Excel.ColumnType.NUMERIC)
        @ApiModelProperty(value = "烟尘折算浓度（mg/m³）")
        @JsonSerialize(using = BigDecimalSerialize.class)
        private BigDecimal smokeDustConvert;

        @Excel(name = "烟尘排放量（kg）", cellType = Excel.ColumnType.NUMERIC)
        @ApiModelProperty(value = "烟尘排放量（kg）")
        @JsonSerialize(using = BigDecimalSerialize.class)
        private BigDecimal smokeDustEmission;

        @Excel(name = "NOx折算浓度（mg/m³）", cellType = Excel.ColumnType.NUMERIC)
        @ApiModelProperty(value = "NOx折算浓度（mg/m³）")
        @JsonSerialize(using = BigDecimalSerialize.class)
        private BigDecimal noxConvert;

        @Excel(name = "NOx排放量（kg）", cellType = Excel.ColumnType.NUMERIC)
        @ApiModelProperty(value = "NOx排放量（kg）")
        @JsonSerialize(using = BigDecimalSerialize.class)
        private BigDecimal noxEmission;

        @Excel(name = "SO₂折算浓度（mg/m³）", cellType = Excel.ColumnType.NUMERIC)
        @ApiModelProperty(value = "SO₂折算浓度（mg/m³）")
        @JsonSerialize(using = BigDecimalSerialize.class)
        private BigDecimal so2Convert;

        @Excel(name = "SO₂排放量（kg）", cellType = Excel.ColumnType.NUMERIC)
        @ApiModelProperty(value = "SO₂排放量（kg）")
        @JsonSerialize(using = BigDecimalSerialize.class)
        private BigDecimal so2Emission;

        @Excel(name = "氧含量均值（%）", cellType = Excel.ColumnType.NUMERIC)
        @ApiModelProperty(value = "氧含量均值（%）")
        @JsonSerialize(using = BigDecimalSerialize.class)
        private BigDecimal o3;

        @Excel(name = "烟气流速平均值（m/s）", cellType = Excel.ColumnType.NUMERIC)
        @ApiModelProperty(value = "烟气流速平均值（m/s）")
        @JsonSerialize(using = BigDecimalSerialize.class)
        private BigDecimal smokeDustFlowVelocity;

        @Excel(name = "烟气温度平均值（℃）", cellType = Excel.ColumnType.NUMERIC)
        @ApiModelProperty(value = "烟气温度平均值（℃）")
        @JsonSerialize(using = BigDecimalSerialize.class)
        private BigDecimal smokeDustTem;

        @Excel(name = "烟气压力平均值（千帕）", cellType = Excel.ColumnType.NUMERIC)
        @ApiModelProperty(value = "烟气压力平均值（千帕）")
        @JsonSerialize(using = BigDecimalSerialize.class)
        private BigDecimal smokeDustPressure;
    }

}
