package com.tofly.pojo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
@EqualsAndHashCode
public class CertificationOrderDto implements Serializable {
    private static final long serialVersionUID = 1L;


    /** 质检工单客户列表 */
    @TableField(exist = false)
    @ApiModelProperty("质检工单客户列表")
    private List<ZlrzClientDto> clients;
    /** 认证项目(抄表数据/其它数据等) */
    @ApiModelProperty("认证项目(抄表数据/其它数据等 字典)")
    private String certificationProject;

    /** 检验记录人id */
    @ApiModelProperty("检验记录人id")
    private Long certificationPersonId;
    /** 检验记录人 */
    @ApiModelProperty("检验记录人")
    private String certificationPerson;
    /** 检验记录人部门 */
    @ApiModelProperty("检验记录人部门")
    private String certificationDept;
    /** 检验记录截止时限 */
    @ApiModelProperty("检验记录截止时限 xxx日 23:59:59")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date completionTimeLimit;

    /** 认证提示 */
    @ApiModelProperty("认证提示")
    private String certificationResult;
    /** 是否合格（是/否） */
    @ApiModelProperty("是否合格（0 是/1 否）")
    private String isQualified;
    /** 是否整改（是/否） */
    @ApiModelProperty("是否整改（0 是/1 否) ")
    private String isRectified;
    /** 检验记录状态（流程控制：0本环节/1转部门整改/3流程终止） */
    @ApiModelProperty("检验记录状态（流程控制：0 本环节/1 转部门整改/3 流程终止）")
    private String certificationStatus;
    /** 水量异常原因:（爆管（内漏）、拆迁、停业、假期、多表供水、新增、销户待办等） */
    @ApiModelProperty("水量异常原因:（爆管（内漏）、拆迁、停业、假期、多表供水、新增、销户待办等）")
    private String exceptionCause;
    /** 整改建议说明 */
    @ApiModelProperty("整改建议说明")
    private String rectifyDesc;
    /** 整改处置+整改审核时限 */
    @ApiModelProperty("整改处置+整改审核时限 xxx日 23:59:59")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date rectifyTimeLimit;
    /** 整改处置部门 */
    @ApiModelProperty("整改处置部门")
    private String rectifyDept;
    /** 整改处置人员 */
    @ApiModelProperty("整改处置人员")
    private String rectifyPerson;
    /** 整改处置人员id */
    @ApiModelProperty("整改处置人员id")
    private Long rectifyPersonId;

    /** 业务监控环节 */
    @ApiModelProperty("业务监控环节 (0 检验记录/1 整改下达/2 整改处置/3 整改审核/4 整改验证/5 验证审核）")
    private String currentProcess;
    /** 上报时间 */
    @ApiModelProperty("上报时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date dispatchTime;
    /** 上报部门 */
    @ApiModelProperty("上报部门")
    private String dispatchDept;
    /** 上报人员 */
    @ApiModelProperty("上报人员")
    private String dispatchPerson;
    /** 上报人员id */
    @ApiModelProperty("上报人员id")
    private Long dispatchPersonId;
    /** 整改下达部门 */
    @ApiModelProperty("整改下达部门")
    private String issueDept;
    /** 整改下达人员 */
    @ApiModelProperty("整改下达人员")
    private String issuePerson;
    /** 整改下达人员id */
    @ApiModelProperty("整改下达人员id")
    private Long issuePersonId;
    /** 检验记录环节异常状态（取值 0 1 2 3),0表示无超时,无驳回;1表示有超时,无驳回;2表示无超时,有驳回;3表示有超时,有驳回 */
    @ApiModelProperty("检验记录环节异常状态（取值 0 1 2 3),0表示无超时,无驳回;1表示有超时,无驳回;2表示无超时,有驳回;3表示有超时,有驳回")
    private Integer certificationExceptionStatus;
    /** 工单总异常状态（取值 0 1 2 3）,0表示无超时,无驳回;1表示有超时,无驳回;2表示无超时,有驳回;3表示有超时,有驳回 */
    @ApiModelProperty("工单总异常状态（取值 0 1 2 3),0表示无超时,无驳回;1表示有超时,无驳回;2表示无超时,有驳回;3表示有超时,有驳回")
    private Integer orderExceptionStatus;
    /** 认证结论 */
    @ApiModelProperty("认证结论")
    private String conclusion;
    /** 检验记录时间 */
    @ApiModelProperty("检验记录时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date certificationTime;

    /** 检查协同人 */
    @TableField(exist = false)
    @ApiModelProperty("检查协同人")
    private List<ZlrzSynergist> synergists;

    /** 问题级别 */
    @ApiModelProperty(value = "问题级别id")
    private Long problemLevel;

    /** 是否抄表来源的质检工单；1：是（如果是，则需要在质检完成时回调表中的TF_YWPN_READMETERHIS_W表中的字段SHBZ修改为3） */
    @ApiModelProperty(value = "是否抄表来源的质检工单；1：是（如果是，则需要在质检完成时回调表中的TF_YWPN_READMETERHIS_W表中的字段SHBZ修改为3）")
    private String isCb;
    /** 年月；如：202112 */
    @ApiModelProperty(value = "年月；如：202112")
    private String yearMonth;

}
