package cn.cecep.talroad.domain;


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.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.*;

import java.math.BigDecimal;
import java.util.Date;

@ApiModel(value = "预警报警信息")
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("m_am_problem_fi")
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AmProblemFi extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键id")
    @TableId(value = "id",type = IdType.ASSIGN_UUID)
    private String id;

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

    @ApiModelProperty(value = "问题来源 1:关联分析系统, 2:分表计电系统, 3:动态管控系统")
    private String problemSources;

    @ApiModelProperty(value = "问题分类 关联pc_ra_problem_type表主键")
    private String problemType;

    @ApiModelProperty(value = "问题说明")
    private String problemDetails;

    @ApiModelProperty(value = "开始时间")
    /** 开始时间*/
    @Excel(name = "开始时间")
    private String problemStartTime;


    @ApiModelProperty(value = "截止时间")
    /** 截止时间*/
    @Excel(name = "截止时间")
    private String problemEndTime;


    @ApiModelProperty(value = "处理状态")
    /** 处理状态*/
    @Excel(name = "处理状态（1待处理 、2 已处理）")
    private String problemTreatmentState;


    @ApiModelProperty(value = "处理结果")
    /** 处理结果*/
    @Excel(name = "处理结果")
    private String problemTreatmentStructure;


    @ApiModelProperty(value = "详情")
    /** 详情*/
    @Excel(name = "详情")
    private String details;
    @ApiModelProperty(value = "监测点位名称")
    private String stationName;

    @ApiModelProperty(value = "参数名称")
    private String paramName;

    @ApiModelProperty(value = "反馈时间")
    private String feedbackDate;

    @ApiModelProperty(value = "反馈描述")
    private String feedbackDesc;

    @ApiModelProperty(value = "分析时间")
    private Date analyseTime;

    @ApiModelProperty(value = "分析时间结束")
    private Date analyseTimeEnd;

    @ApiModelProperty(value = "超标突变次数 问题分类为”浓度突变“专有字段")
    private String overSuddenCount;

    @ApiModelProperty(value = "设备名称 问题分类为”数据缺失“专有字段")
    private String deviceName;

    @ApiModelProperty(value = "视频点位名称 问题分类为”无组织排放视频“专有字段")
    private String videoPointName;

    @ApiModelProperty(value = "无组织监控点位名称 问题分类为”无组织排放视频“专有字段")
    private String monitorPointName;

    @ApiModelProperty(value = "监测点位id。可能是排口id、设备id，根据问题分类判断")
    private String stationId;

    @ApiModelProperty(value = "参数名称对应的类属性。气排口在线监测物属性见SEnvGasMonReal类，水排口在线监测属性见SEnvWaterMonReal类，工况数据监测属性见bas_param表param_code_svc字段")
    private String paramProperty;

    @ApiModelProperty(value = "类型 0-预警，1-报警")
    private Integer type;

    @ApiModelProperty(value = "模型分析结果验证-备注说明")
    private String modelValidDetails;

    @ApiModelProperty(value = "模型分析结果验证-反馈人")
    private String modelValidPerson;

    @ApiModelProperty(value = "模型分析结果验证-办理时间")
    private String modelValidTime;

    @ApiModelProperty(value = "模型分析结果验证-数据库问题真假")
    private String modelValidDb;

    @ApiModelProperty(value = "模型分析结果验证-数据库问题真假")
    private String modelValidVideo;

    @ApiModelProperty(value = "预测上限")
    private String predictUpperLimit;

    @ApiModelProperty(value = "预测下限")
    private String predictLowerLimit;

    @ApiModelProperty(value = "问题关联的额外数据 json格式，见数据库字段说明")
    private String extra;

    @ApiModelProperty(value = "问题关联的产治排数据 json格式")
    private String extraCzp;

    @ApiModelProperty(value = "污染物来源 1废气、2废水 3 视频 可为空")
    private String pollutantSourceAi;

    private String inputStartTime;
    private String inputEndTime;
    private String dataType;

    private BigDecimal meanBefore;
    private BigDecimal meanAfter;


    @ApiModelProperty(value = "问题状态:100：初始化/待签收，200：待整改，300：待审核，400：审核不通过，500：已办结/已签收")
    private String problemStatus;

    @ApiModelProperty(value = "整改期限开始时间")
    private Date rectifyLimitStartTime;

    @ApiModelProperty(value = "整改期限结束时间")
    private Date rectifyLimitEndTime;

    @ApiModelProperty(value = "整改完成时间")
    private Date rectifyTime;

    @ApiModelProperty(value = "签收完成时间")
    private Date signTime;

    @ApiModelProperty(value = "问题审核人类型：1：值守，2：执法")
    private String problemAuditType;

    @ApiModelProperty(value = "流程ID")
    private String flownodeId;

    @ApiModelProperty(value = "是否展示")
    private String isShow;

    @ApiModelProperty(value = "问题原因说明")
    private String problemCause;
    @ApiModelProperty(value = "问题原因附件")
    private String problemCauseFile;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "问题原因时间")
    private Date problemCauseTime;
    @ApiModelProperty(value = "整改期限（天）")
    private Integer rectifyLimitSum;
}

