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 com.fasterxml.jackson.annotation.JsonFormat;
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;
import java.util.Date;


/**
 * 区域证后监管问题总表对象 s_ra_area_regulatory_issues
 *
 * @author szhpt
 * @date 2023-04-11*/
@ApiModel(value = "区域证后监管问题总表")
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("s_ra_area_regulatory_issues")
public class SRaAreaRegulatoryIssues extends BaseEntity
{
    private static final long serialVersionUID = 1L;


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


    @ApiModelProperty(value = "执行报告类型;字典bus_executive_report（y 年报 s 季报 m 月报 d 日报）")
    /** 执行报告类型;字典bus_executive_report（y 年报 s 季报 m 月报 d 日报） */
    private String reportType;


    @ApiModelProperty(value = "区域名称")
    /** 区域名称 */
    @Excel(name = "所属区县")
    private String districtName;


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


    @ApiModelProperty(value = "行业类别")
    /** 行业类别 */
    private String industryCategory;

    @ApiModelProperty(value = "行业名称")
    /** 行业类别 */
    @Excel(name = "所在行业")
    @TableField(exist = false)
    private String industryCategoryName;


    @ApiModelProperty(value = "月份")
    /** 月份 */
    @Excel(name = "月份")
    private String month;


    @ApiModelProperty(value = "治理设施异常问题个数")
    /** 治理设施异常问题个数 */
    @Excel(name = "治理设施异常问题个数")
    private Long abnormalProblemsNum;


    @ApiModelProperty(value = "在线监测有效监测率")
    /** 在线监测有效监测率 */
    @Excel(name = "在线监测有效监测率")
    private BigDecimal effectiveMonitoringComplianceRate;


    @ApiModelProperty(value = "在线监测达标率")
    /** 在线监测达标率 */
    @Excel(name = "在线监测达标率")
    private BigDecimal onlineMonitoringComplianceRate;


    @ApiModelProperty(value = "手工监测频次合格率")
    /** 手工监测频次合格率 */
    @Excel(name = "手工监测频次合格率")
    private BigDecimal manualMonitoringFrequencyPassRate;


    @ApiModelProperty(value = "系统核算实际排放合格率")
    /** 系统核算实际排放合格率 */
    @Excel(name = "系统核算实际排放合格率")
    private BigDecimal sysAccActualEmissionPassRate;


    @ApiModelProperty(value = "执行报告实际排放合格率")
    /** 执行报告实际排放合格率 */
    @Excel(name = "执行报告实际排放合格率")
    private BigDecimal reportActualEmissionPassRate;


    @ApiModelProperty(value = "重污染管控执行率")
    /** 重污染管控执行率 */
    @Excel(name = "重污染管控执行率")
    private BigDecimal heavyPollutionControlExacutiveRate;


    @ApiModelProperty(value = "应提交执行报告企业数量")
    /** 应提交执行报告企业数量 */
    @Excel(name = "应提交执行报告企业数量")
    private Long totalEnterprises;


    @ApiModelProperty(value = "执行报告提交率")
    /** 执行报告提交率 */
    @Excel(name = "执行报告提交率")
    private BigDecimal submissionRate;


    @ApiModelProperty(value = "执行报告规范性存在问题企业数量")
    /** 执行报告规范性存在问题企业数量 */
    @Excel(name = "执行报告规范性存在问题企业数量")
    private Long problemsEnterprises;


    @ApiModelProperty(value = "规范性问题率")
    /** 规范性问题率 */
    @Excel(name = "规范性问题率")
    private BigDecimal normativeQuestionRate;


    @ApiModelProperty(value = "执行报告结果统计时间")
    /** 执行报告结果统计时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "执行报告结果统计时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date reportResultStatisticalTime;


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("reportType", getReportType())
            .append("districtName", getDistrictName())
            .append("districtCode", getDistrictCode())
            .append("industryCategory", getIndustryCategory())
            .append("month", getMonth())
            .append("abnormalProblemsNum", getAbnormalProblemsNum())
            .append("effectiveMonitoringComplianceRate", getEffectiveMonitoringComplianceRate())
            .append("onlineMonitoringComplianceRate", getOnlineMonitoringComplianceRate())
            .append("manualMonitoringFrequencyPassRate", getManualMonitoringFrequencyPassRate())
            .append("sysAccActualEmissionPassRate", getSysAccActualEmissionPassRate())
            .append("reportActualEmissionPassRate", getReportActualEmissionPassRate())
            .append("heavyPollutionControlExacutiveRate", getHeavyPollutionControlExacutiveRate())
            .append("totalEnterprises", getTotalEnterprises())
            .append("submissionRate", getSubmissionRate())
            .append("problemsEnterprises", getProblemsEnterprises())
            .append("normativeQuestionRate", getNormativeQuestionRate())
            .append("reportResultStatisticalTime", getReportResultStatisticalTime())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
