package cn.cecep.talroad.vo;

import cn.cecep.talroad.common.core.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.List;


/**
 * 废气有组织、无组织排口对象 pc_outlet
 *
 * @author szhpt
 * @date 2023-01-11*/
@ApiModel(value = "废气有组织、无组织排口")
@EqualsAndHashCode(callSuper = false)
@Data
public class PcOutletVo
{


    @ApiModelProperty(value = "主键id")
    /** 主键id*/
    private String id;

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

    @ApiModelProperty(value = "污染物类型（废气、废水）")
    /** 污染物类型（废气、废水）*/
    private String pollutantType;

    @ApiModelProperty(value = "排口分类（有组织、无组织）")
    /** 排口分类（有组织、无组织）*/
    private String pollutantOutletType;

    @ApiModelProperty(value = "排放形式")
    /** 排放形式*/
    private String emissionsForm;

    @ApiModelProperty(value = "排放口设置是否符合要求")
    /** 排放口设置是否符合要求*/
    private String whetherOutletRequirements;

    @ApiModelProperty(value = "产污环节")
    /** 产污环节*/
    private String productionProcess;

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

    @ApiModelProperty(value = "对应监测点位名称")
    /** 对应监测点位名称*/
    private String monitoringPointName;

    @ApiModelProperty(value = "对应治理设施编号")
    /** 对应治理设施编号*/
    private String manageFacilitiesCode;

    @ApiModelProperty(value = "对应治理设施名称")
    /** 对应治理设施名称*/
    private String manageFacilitiesName;

    @ApiModelProperty(value = "对应生产设施编号")
    /** 对应生产设施编号*/
    private String productionFacilitiesCode;

    @ApiModelProperty(value = "对应生产设施名称")
    /** 对应生产设施名称 */
    private String productionFacilitiesName;

    @ApiModelProperty(value = "排口经度")
    /** 排口经度*/
    private String outletLon;

    @ApiModelProperty(value = "排口纬度")
    /** 排口纬度*/
    private String outletLat;

    @ApiModelProperty(value = "排气筒高度（m）")
    /** 排气筒高度（m）*/
    private String exhaustFunnelHight;

    @ApiModelProperty(value = "排气筒出口内径（m）")
    /** 排气筒出口内径（m）*/
    private String exhaustFunnelInner;

    @ApiModelProperty(value = "排气温度")
    /** 排气温度*/
    private String exhaustGasTemperature;

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

    @ApiModelProperty(value = "排放口名称")
    /** 排放口名称*/
    private String outletName;

    @ApiModelProperty(value = "排口监测类型")
    /** 排口监测类型*/
    private String outletMonitorName;

    @ApiModelProperty(value = "治理设施工艺")
    /** 治理设施工艺*/
    private String treatmentFacilityProcess;

    @ApiModelProperty(value = "视频监控")
    /** 视频监控*/
    private String videoSurveillance;

    @ApiModelProperty(value = "许可证无组织监测点位名称")
    /** 许可证无组织监测点位名称*/
    private String stationName;

    @ApiModelProperty(value = "无组织监测点位")
    /** 无组织监测点位*/
    private String stationId;

    @ApiModelProperty(value = "主要污染防治措施")
    /** 主要污染防治措施*/
    private String pollutionPreventionMeasures;

    @ApiModelProperty(value = "废水来源")
    /** 废水来源*/
    private String sourcesWastewater;


    @ApiModelProperty(value = "其他信息")
    /** 其他信息*/
    private String moreDetails;


    @ApiModelProperty(value = "排水去向")
    /** 排水去向*/
    private String directionDrainage;
    @ApiModelProperty(value = "排放规律")
    /** 排放规律*/
    private String dischargeLaw;
    @ApiModelProperty(value = "间歇式排放时段")
    /** 间歇式排放时段*/
    private String intermittentEmissionPeriod;
    @ApiModelProperty(value = "受纳污水处理厂名称")
    /** 受纳污水处理厂名称*/
    private String treatmentPlantAcceptedName;

    @ApiModelProperty(value = "入河排污口批复文号")
    /** 入河排污口批复文号*/
    private String approvalDocument;

    @ApiModelProperty(value = "受纳自然水体信息-名称")
    /** 受纳自然水体信息-名称*/
    private String receivingWaterName;

    @ApiModelProperty(value = "受纳自然水体信息-功能目标")
    /** 受纳自然水体信息-功能目标*/
    private String receivingWaterObjective;

    @ApiModelProperty(value = "汇入受纳自然水体处地理坐标-经度")
    /** 汇入受纳自然水体处地理坐标-经度*/
    private String receivingWaterLon;

    @ApiModelProperty(value = "汇入受纳自然水体处地理坐标-纬度")
    /** 汇入受纳自然水体处地理坐标-纬度*/
    private String receivingWaterLat;

    @ApiModelProperty(value = "入河口名称")
    /** 入河口名称*/
    private String riversOutletName;

    @ApiModelProperty(value = "入河口编号")
    /** 入河口编号*/
    private String riversOutletCode;

    @ApiModelProperty(value = "标记 N正常  F停运  M维护/维修  S手工输入的设定值  D故障/断电  C校准  T超测量上限")
    /** 标记 N正常  F停运  M维护/维修  S手工输入的设定值  D故障/断电  C校准  T超测量上限*/
    private String mark;

    @Data
    public static class SimpleVo {
        @ApiModelProperty(value = "主键id")
        private String id;

        private String pollutantType;
        private String pollutantOutletType;

        @ApiModelProperty(value = "对应监测点位名称")
        private String monitoringPointName;

        @ApiModelProperty(value = "曲线图返回指定的污染物")
        private List<AmProblemFiVo.PollutantVo> pollutantVos;
    }

    @ApiModel(value = "排污许可-废气排口基本信息vo")
    @Data
    public static class PwxkGas {
        @Excel(name = "排污许可证编号", sort = 0)
        @ApiModelProperty(value = "排污许可证编码")
        private String pollDisLicenseCode;

        @Excel(name = "排污单位名称", sort = 10)
        @ApiModelProperty(value = "排污单位名称")
        private String factoryName;

        @ApiModelProperty(value = "管理类别")
        @Excel(name = "管理类别", readConverterExp = "FOCUS=重点,SIMPLIFY=简化,REGISTER=登记", sort = 20)
        private String licenseManType;

        @ApiModelProperty(value = "所在区县")
        @Excel(name = "所在区县", sort = 30)
        private String countryName;

        @ApiModelProperty(value = "所在流域")
        @Excel(name = "所在流域", sort = 31)
        private String riverBasin;

        @ApiModelProperty(value = "所属工业园区名称")
        @Excel(name = "所属工业园区名称", sort = 40)
        private String industrialParkName;

        @ApiModelProperty(value = "所属工业园区编码")
        @Excel(name = "所属工业园区编码", sort = 50)
        private String industrialParkCode;

        @ApiModelProperty(value = "行业类别")
        @Excel(name = "行业类别", sort = 60)
        private String industryPermissionName;

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

        @ApiModelProperty(value = "排放口名称")
        @Excel(name = "排放口名称", sort = 80)
        private String outletName;

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

        // TODO 污染物种类

        @ApiModelProperty(value = "排口经度")
        @Excel(name = "经度", parentName = "排放口地理坐标", sort = 90)
        private String outletLon;

        @ApiModelProperty(value = "排口纬度")
        @Excel(name = "纬度", parentName = "排放口地理坐标", sort = 100)
        private String outletLat;

        @ApiModelProperty(value = "排气筒高度（m）")
        @Excel(name = "排气筒高度（m）", sort = 110)
        private String exhaustFunnelHight;

        @ApiModelProperty(value = "排气筒出口内径（m）")
        @Excel(name = "排气筒出口内径（m）", sort = 120)
        private String exhaustFunnelInner;

        @ApiModelProperty(value = "排气温度")
        @Excel(name = "排气温度", sort = 130)
        private String exhaustGasTemperature;

        @ApiModelProperty(value = "其他信息")
        @Excel(name = "其他信息", sort = 140)
        private String moreDetails;
    }

    @ApiModel(value = "排污许可-废水直接排口基本信息vo")
    @Data
    public static class PwxkWaterDirect {
        @Excel(name = "排污许可证编号", sort = 0)
        @ApiModelProperty(value = "排污许可证编码")
        private String pollDisLicenseCode;

        @Excel(name = "排污单位名称", sort = 10)
        @ApiModelProperty(value = "排污单位名称")
        private String factoryName;

        @ApiModelProperty(value = "管理类别")
        @Excel(name = "管理类别", readConverterExp = "FOCUS=重点,SIMPLIFY=简化,REGISTER=登记", sort = 20)
        private String licenseManType;

        @ApiModelProperty(value = "所在区县")
        @Excel(name = "所在区县", sort = 30)
        private String countryName;

        @ApiModelProperty(value = "所在流域")
        @Excel(name = "所在流域", sort = 31)
        private String riverBasin;

        @ApiModelProperty(value = "所属工业园区名称")
        @Excel(name = "所属工业园区名称", sort = 40)
        private String industrialParkName;

        @ApiModelProperty(value = "所属工业园区编码")
        @Excel(name = "所属工业园区编码", sort = 50)
        private String industrialParkCode;

        @ApiModelProperty(value = "行业类别")
        @Excel(name = "行业类别", sort = 60)
        private String industryPermissionName;

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

        @ApiModelProperty(value = "排放口名称")
        @Excel(name = "排放口名称", sort = 80)
        private String outletName;

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

        @ApiModelProperty(value = "排口经度")
        @Excel(name = "经度", parentName = "排放口地理位置", sort = 100)
        private BigDecimal outletLon;

        @ApiModelProperty(value = "排口纬度")
        @Excel(name = "纬度", parentName = "排放口地理位置", sort = 110)
        private BigDecimal outletLat;

        @ApiModelProperty(value = "排水去向")
        @Excel(name = "排水去向", sort = 120)
        private String directionDrainage;

        @ApiModelProperty(value = "排放规律")
        @Excel(name = "排放规律", sort = 130)
        private String dischargeLaw;

        @ApiModelProperty(value = "间歇式排放时段")
        @Excel(name = "间歇式排放时段", sort = 140)
        private String intermittentEmissionPeriod;

        @ApiModelProperty(value = "受纳自然水体信息-名称")
        @Excel(name = "名称", parentName = "受纳自然水体信息", sort = 150)
        private String receivingWaterName;

        @ApiModelProperty(value = "受纳自然水体信息-功能目标")
        @Excel(name = "功能目标", parentName = "受纳自然水体信息", sort = 160)
        private String receivingWaterObjective;

        @ApiModelProperty(value = "汇入受纳自然水体处地理坐标-经度")
        @Excel(name = "经度", parentName = "汇入受纳自然水体处地理坐标", sort = 170)
        private String receivingWaterLon;

        @ApiModelProperty(value = "汇入受纳自然水体处地理坐标-纬度")
        @Excel(name = "纬度", parentName = "汇入受纳自然水体处地理坐标", sort = 180)
        private String receivingWaterLat;

        @ApiModelProperty(value = "其他信息")
        @Excel(name = "其他信息", sort = 190)
        private String moreDetails;
    }

    @ApiModel(value = "排污许可-废水间接排口基本信息vo")
    @Data
    public static class PwxkWaterIndirect {
        @Excel(name = "排污许可证编号", sort = 0)
        @ApiModelProperty(value = "排污许可证编码")
        private String pollDisLicenseCode;

        @Excel(name = "排污单位名称", sort = 10)
        @ApiModelProperty(value = "排污单位名称")
        private String factoryName;

        @ApiModelProperty(value = "管理类别")
        @Excel(name = "管理类别", readConverterExp = "FOCUS=重点,SIMPLIFY=简化,REGISTER=登记", sort = 20)
        private String licenseManType;

        @ApiModelProperty(value = "所在区县")
        @Excel(name = "所在区县", sort = 30)
        private String countryName;

        @ApiModelProperty(value = "所在流域")
        @Excel(name = "所在流域", sort = 31)
        private String riverBasin;

        @ApiModelProperty(value = "所属工业园区名称")
        @Excel(name = "所属工业园区名称", sort = 40)
        private String industrialParkName;

        @ApiModelProperty(value = "所属工业园区编码")
        @Excel(name = "所属工业园区编码", sort = 50)
        private String industrialParkCode;

        @ApiModelProperty(value = "行业类别")
        @Excel(name = "行业类别", sort = 60)
        private String industryPermissionName;

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

        @ApiModelProperty(value = "排放口名称")
        @Excel(name = "排放口名称", sort = 80)
        private String outletName;

        @ApiModelProperty(value = "排口经度")
        @Excel(name = "经度", parentName = "排放口地理坐标", sort = 100)
        private BigDecimal outletLon;

        @ApiModelProperty(value = "排口纬度")
        @Excel(name = "纬度", parentName = "排放口地理坐标", sort = 110)
        private BigDecimal outletLat;

        @ApiModelProperty(value = "排水去向")
        @Excel(name = "排水去向", sort = 120)
        private String directionDrainage;

        @ApiModelProperty(value = "排放规律")
        @Excel(name = "排放规律", sort = 130)
        private String dischargeLaw;

        @ApiModelProperty(value = "间歇式排放时段")
        @Excel(name = "间歇式排放时段", sort = 140)
        private String intermittentEmissionPeriod;

        @ApiModelProperty(value = "受纳污水处理厂名称")
        @Excel(name = "受纳污水处理厂名称", sort = 150)
        private String treatmentPlantAcceptedName;
    }

}
