package com.ruoyi.doubledefense.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.GnhzBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * 隐患信息对象 tb_danger
 *
 * @author ruoyi
 * @date 2023-08-03
 */
@ApiModel("隐患信息入参实体")
@Data
public class DangerDTO extends GnhzBaseEntity
{
    private static final long serialVersionUID = 1L;

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

    /** 隐患编号(后台自动生成) */
    @ApiModelProperty("隐患编号(后台自动生成)")
    @Excel(name = "隐患编号")
    private String dangerNo;
    /** 设备UUID */
    @ApiModelProperty("设备UUID")
    @Excel(name = "设备UUID")
    private String deviceId;

    /** 排查记录ID */
    @ApiModelProperty("排查记录ID")
    @Excel(name = "排查记录ID")
    private String checkRecordId;

    /** 隐患名称 */
    @ApiModelProperty("隐患名称")
    @Excel(name = "隐患名称")
    private String dangerName;

    /** 隐患描述 */
    @ApiModelProperty("隐患描述")
    @Excel(name = "隐患描述")
    private String dangerDesc;

    /** 隐患等级：0一般隐患，1重大隐患 */
    @ApiModelProperty("隐患等级：0一般隐患，1重大隐患")
    @Excel(name = "隐患等级：0一般隐患，1重大隐患")
    private Long dangerLevel;

    /** 登记时间 */
    @ApiModelProperty("登记时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "登记时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date registTime;

    /** 所属区域ID */
    @ApiModelProperty("所属区域ID")
    @Excel(name = "所属区域ID")
    private Long areaId;

    /** 隐患图片，多张以逗号分割 */
    @ApiModelProperty("隐患图片，多张以逗号分割")
    @Excel(name = "隐患图片，多张以逗号分割")
    private String dangerImage;

    /** 隐患来源：1日常排查，2综合排查，3专业性排查，4季节性排查，5重点时段及节假日前排查，6事故类比排查，7复产复工前排查，8外聘专家诊断式排查，9管控措施失效，10其它 */
    @ApiModelProperty("隐患来源：1日常排查，2综合排查，3专业性排查，4季节性排查，5重点时段及节假日前排查，6事故类比排查，7复产复工前排查，8外聘专家诊断式排查，9管控措施失效，10其它")
    @Excel(name = "隐患来源：1日常排查，2综合排查，3专业性排查，4季节性排查，5重点时段及节假日前排查，6事故类比排查，7复产复工前排查，8外聘专家诊断式排查，9管控措施失效，10其它")
    private String dangerSrc;

    /** 隐患类型：1安全，2工艺，3电气，4仪表，5消防，6总图，7设备，8其它 */
    @ApiModelProperty("隐患类型：1安全，2工艺，3电气，4仪表，5消防，6总图，7设备，8其它")
    @Excel(name = "隐患类型：1安全，2工艺，3电气，4仪表，5消防，6总图，7设备，8其它")
    private String hazardDangerType;

    /** 治理类型：0即查即改，1限期整改 */
    @ApiModelProperty("治理类型：0即查即改，1限期整改")
    @Excel(name = "治理类型：0即查即改，1限期整改")
    private Long dangerManageType;

    /** 隐患状态：10待审核，20认领中，30整改中，40待验收，50已验收，60取消（原备份：1认领中，2整改中，3待验收，4已验收，5取消） */
    @ApiModelProperty("隐患状态：10待审核，20认领中，30整改中，40待验收，50已验收，60取消")
    @Excel(name = "隐患状态：10待审核，20认领中，30整改中，40待验收，50已验收，60取消")
    private Integer dangerStatus;

//    @ApiModelProperty("验收拒绝原因")
//    private String rejectReason;

//    @ApiModelProperty("验收驳回人Id")
//    private Long rejectUserId;

    /**
     * 1、APP隐患：待审核驳回、待验收驳回
     */
    @ApiModelProperty("驳回人用户名")
    private String rejectUserName;

    /** 备注 */
    @ApiModelProperty("备注")
    @Excel(name = "备注")
    private String remarkInfo;
    /*************************************整改信息**************************************/

    /** 整改部门ID */
    @Excel(name = "整改部门ID")
    @ApiModelProperty("整改部门ID")
    private Long deptId;

    /** 整改负责人ID */
    @Excel(name = "整改负责人ID")
    @ApiModelProperty("整改负责人ID")
    private Long manageUserId;

    /**
     * 整改治理期限
     * 注意：当整改期限有值时，PC首页查询逾期数量列表
     */
    @ApiModelProperty("整改治理期限")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")//PC首页列表回显时需要时分秒
    @Excel(name = "整改治理期限", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date dangerManageDeaddline;


    /** 控制措施 */
    @ApiModelProperty("添加整改时间（APP提交整改措施时提交）")
    @Excel(name = "添加整改时间")
    private Date rectificationTime;

    /** 控制措施 */
    @ApiModelProperty("控制措施（APP任务名称）")
    @Excel(name = "控制措施（APP任务名称）")
    private String controlMeasures;

    /** 整改建议 */
    @ApiModelProperty("整改建议")
    @Excel(name = "整改建议")
    private String suggest;

    /** 整改资金 */
    @ApiModelProperty("整改资金")
    @Excel(name = "整改资金")
    private String cost;

    /** 整改后图片地址（多个以逗号分割） */
    @ApiModelProperty(value = "整改后图片地址",hidden = true)
    @Excel(name = "整改后图片地址", readConverterExp = "多=个以逗号分割")
    private String rectifyImage;

    /** 验收人ID */
    @ApiModelProperty(value = "验收人ID",hidden = true)
    @Excel(name = "验收人ID")
    private Long checkUserId;

    /** 验收人签字图片 */
    @ApiModelProperty(value = "验收人签字图片",hidden = true)
    @Excel(name = "验收人签字图片")
    private String checkSignature;

    /** 验收时间 */
    @ApiModelProperty(value = "验收时间",hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "验收时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date checkAcceptTime;

    /** 验收情况描述 */
    @ApiModelProperty(value = "验收情况描述",hidden = true)
    @Excel(name = "验收情况描述")
    private String checkAcceptComment;

    @ApiModelProperty("筛选发现时间-开始时间")
    private Date registStartTime;

    @ApiModelProperty("筛选发现时间-结束时间")
    private Date registEndTime;

}
