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.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@EqualsAndHashCode
public class ReportOrderInfoVo implements Serializable {

    private static final long serialVersionUID = 1L;
    /** 认证工单主键ID */
    @ApiModelProperty(value = "认证工单主键ID")
    private Long id;

    /** 认证编号 */
    @ApiModelProperty("认证编号")
    private String certificationNumber;
//    /** 质检工单客户列表 */
//    @ApiModelProperty("质检工单客户列表")
//    private List<ZlrzClientDto> clients;

    /**
     * 客户编号
     */
    @ApiModelProperty(value = "客户编号")
    private String clientNumber;
    /**
     * 客户姓名
     */
    @ApiModelProperty(value = "客户姓名")
    private String clientName;
    /**
     * 客户地址
     */
    @ApiModelProperty(value = "客户地址")
    private String clientAddress;
    /**
     * 水表型号（DN15、20、25、40、50、80、100、150、200等)
     */
    @ApiModelProperty(value = "水表型号（DN15、20、25、40、50、80、100、150、200等)")
    private String meterType;
    /**
     * 用水类别（生活、非居、工业等）
     */
    @ApiModelProperty(value = "用水类别（生活、非居、工业等）")
    private String waterCategory;
    /**
     * 前月水量
     */
    @ApiModelProperty(value = "前月水量")
    private BigDecimal lastMonthVolume;
    /**
     * 本月水量
     */
    @ApiModelProperty(value = "本月水量")
    private BigDecimal thisMonthVolume;
    /**
     * 升降水量
     */
    @ApiModelProperty(value = "升降水量")
    private String diffVolume;
    /**
     * 水量同比
     */
    @ApiModelProperty(value = "水量同比")
    private String monthOnMonthRatio;
    /**
     * 水量环比
     */
    @ApiModelProperty(value = "水量环比")
    private String yearOnYearRatio;
    /**
     * 客户电话
     */
    @ApiModelProperty(value = "客户电话")
    private String clientPhone;
    /**
     * 实际电话
     */
    @ApiModelProperty(value = "实际电话")
    private String actualPhone;
    /**
     * 表号
     */
    @ApiModelProperty(value = "表号")
    private String tableNo;







    /** 认证项目ID(抄表数据/其它数据等) */
    @ApiModelProperty("认证项目ID(抄表数据/其它数据等 字典)")
    private String certificationProject;
    /** 认证项目名称(抄表数据/其它数据等) */
	@TableField(exist = false)
    @ApiModelProperty("认证项目名称(抄表数据/其它数据等 字典)")
    private String certificationProjectName;
    /** 检验记录人id */
    @ApiModelProperty("检验记录人id")
    private Long certificationPersonId;
    /** 检验记录人 */
    @ApiModelProperty("检验记录人")
    private String certificationPerson;
    /** 检验记录人部门 */
    @ApiModelProperty("检验记录人部门")
    private String certificationDept;
    @ApiModelProperty("检验记录人部门名称")
    private String certificationDeptName;
    /** 检验记录截止时限 */
    @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;
    /** 质量缺陷类型名称:（爆管（内漏）、拆迁、停业、假期、多表供水、新增、销户待办等） */
    @TableField(exist = false)
	@ApiModelProperty("质量缺陷类型名称:（爆管（内漏）、拆迁、停业、假期、多表供水、新增、销户待办等）")
    private String exceptionCauseName;
    /** 整改建议说明 */
    @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 rectifyDeptName;
    /** 整改处置人员 */
    @ApiModelProperty("整改处置人员")
    private String rectifyPerson;
    /** 整改处置人员id */
    @ApiModelProperty("整改处置人员id")
    private Long rectifyPersonId;
    /**
     * 上传附件id，关联表TF_YWPN_FILE_W关键值，多个文件以英文逗号分割
     */
    @ApiModelProperty(value = "上传附件id，关联表TF_YWPN_FILE _W关键值，多个文件以英文逗号分割")
    private String fileIds;
    /** 业务监控环节 */
    @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 dispatchDeptName;
    /** 上报人员 */
    @ApiModelProperty("上报人员")
    private String dispatchPerson;
    /** 上报人员id */
    @ApiModelProperty("上报人员id")
    private Long dispatchPersonId;
    /** 整改下达部门 */
    @ApiModelProperty("整改下达部门")
    private String issueDept;
    /** 整改下达部门 */
    @ApiModelProperty("整改下达部门")
    private String issueDeptName;
    /** 整改下达人员 */
    @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;

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

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

    /** 问题级别名称 */
	@TableField(exist = false)
    @ApiModelProperty(value = "问题级别名称")
    private String problemLevelName;

    /** 父级主工单ID */
    @ApiModelProperty(value = "父级主工单ID")
    private Long parentId;

    /** 整改信息 */
    @ApiModelProperty(value = "整改信息")
    private RectifyOrderInfoVo rectifyOrderInfoVo;

    /** 质量缺陷类型IDS */
    @ApiModelProperty(value = "质量缺陷类型IDS")
    private String exceptionTypeIds;

    /** 驳回列表 */
    @ApiModelProperty(value = "驳回列表")
    private List<RejectedRecordVO> bhs;
    /** 是否抄表来源的质检工单；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;
}
