package com.tofly.qualitycontrol.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
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;

@ColumnWidth(15)
@Data
@EqualsAndHashCode
public class OrderListInfoVo implements Serializable {
    private static final long serialVersionUID = 1L;
    /** 上报工单ID */
    @ApiModelProperty("上报工单ID")
    @ExcelIgnore
    private Long id;
    /** 认证编号 */
    @ApiModelProperty("认证编号")
    @ExcelProperty("工单编号")
    private String certificationNumber;
    /** 客户编号 */
    @ApiModelProperty("客户编号")
    @ExcelProperty("客户编号")
    private String clientNumber;
    /** 客户姓名 */
    @ApiModelProperty("客户姓名")
    @ExcelProperty("客户姓名")
    private String clientName;
    /** 客户电话 */
    @ApiModelProperty("客户电话")
    @ExcelProperty("客户电话")
    private String clientPhone;
    /** 客户地址 */
    @ApiModelProperty("客户地址")
    @ExcelProperty("客户地址")
    private String clientAddress;
    /** 水表型号（DN15、20、25、40、50、80、100、150、200等）。 */
    @ApiModelProperty("水表型号（DN15、20、25、40、50、80、100、150、200等）。")
    @ExcelProperty("水表口径")
    private String meterType;
    /** 用水类别（生活、非居、工业等） */
    @ApiModelProperty("用水类别（生活、非居、工业等）")
    @ExcelProperty("用水性质")
    private String waterCategory;
    /** 认证项目(抄表数据/其它数据等) */
    @ExcelIgnore
    @ApiModelProperty("认证项目(抄表数据/其它数据等 字典)")
    private String certificationProject;
    @ApiModelProperty("认证项目(抄表数据/其它数据等 字典)")
    @ExcelProperty("检查项目")
    private String certificationProjectName;
    /** 业务监控环节 */
    @ExcelIgnore
    @ApiModelProperty("业务监控环节 (0 检验记录/1 整改下达/2 整改处置/3 整改审核/4 整改验证/5 验证审核）")
    private String currentProcess;
    /** 业务监控环节 */
    @ApiModelProperty("业务监控环节 (0 检验记录/1 整改下达/2 整改处置/3 整改审核/4 整改验证/5 验证审核）")
    @ExcelProperty("工单状态")
    private String currentProcessName;
    /** 质量缺陷 */
    @ExcelIgnore
    @ApiModelProperty("质量缺陷")
    private String exceptionCause;

    /** 质量缺陷 */
    @ApiModelProperty("质量缺陷")
    @ExcelProperty("质量缺陷类型")
    private String exceptionCauseName;

    /** 检验记录截止时限 */
    @ExcelProperty("检查时限")
    @ApiModelProperty("检验记录截止时限 xxx日 23:59:59")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date completionTimeLimit;

    /** 认证内容、检查内容 */
    @ExcelProperty("检查内容")
    @ApiModelProperty("认证内容、检查内容")
    private String certificationResult;

    /** 检验记录人部门 */
    @ExcelIgnore
    @ApiModelProperty("检验记录人部门")
    private String certificationDept;
    /** 检验记录人部门 */
    @ExcelProperty("检查部门")
    @ApiModelProperty("检验记录人部门")
    private String certificationDeptName;
    /** 检验记录人 */
    @ApiModelProperty("检验记录人")
    @ExcelProperty("检查职员")
    private String certificationPerson;
    /** 检验记录人id */
    @ExcelIgnore
    @ApiModelProperty("检验记录人id")
    private Long certificationPersonId;
    /** 是否合格（是/否） */
    @ExcelProperty("检查结论")
    @ApiModelProperty("是否合格（0 是/1 否）")
    private String isQualified;
    /** 认证结论 */
    @ApiModelProperty("认证结论")
    @ExcelProperty("检查记录")
    private String conclusion;
    /** 检验记录时间 */
    @ExcelProperty("检查时间")
    @ApiModelProperty("检验记录时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date certificationTime;

    /** 当前处理部门 */
    @ExcelIgnore
    @ApiModelProperty("当前处理部门")
    private String nextDept;
    /** 当前处理部门 */
    @ExcelProperty("当前处理部门")
    @ApiModelProperty("当前处理部门")
    private String nextDeptName;
    /** 当前处理人员 */
    @ExcelProperty("当前处理人员")
    @ApiModelProperty("当前处理人员")
    private String nextPerson;

    /** 上报时间 */
    @ExcelProperty("登记时间")
    @ApiModelProperty("上报时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date dispatchTime;
    /** 上报部门 */
    @ExcelIgnore
    @ApiModelProperty("上报部门")
    private String dispatchDept;
    /** 上报部门 */
    @ExcelProperty("登记部门")
    @ApiModelProperty("上报部门")
    private String dispatchDeptName;
    /** 上报人员 */
    @ExcelProperty("登记人员")
    @ApiModelProperty("上报人员")
    private String dispatchPerson;
    /** 上报人员id */
    @ExcelIgnore
    @ApiModelProperty("上报人员id")
    private Long dispatchPersonId;

    /** 整改处置部门 */
    @ExcelIgnore
    @ApiModelProperty("整改处置部门")
    private String rectifyDept;
    /** 整改处置部门 */
    @ExcelProperty("整改部门")
    @ApiModelProperty("整改处置部门")
    private String rectifyDeptName;
    /** 整改处置人员 */
    @ExcelProperty("整改人员")
    @ApiModelProperty("整改处置人员")
    private String rectifyPerson;
    /** 整改处置人员id */
    @ExcelIgnore
    @ApiModelProperty("整改处置人员id")
    private Long rectifyPersonId;
    /** 整改时间 */
    @ApiModelProperty("整改时间")
    @ExcelProperty("整改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date rectifyTime;

    /** 整改处置+整改审核时限 */
    @ExcelProperty("整改时限")
    @ApiModelProperty("整改处置+整改审核时限")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date resultTimeLimit;

    /** 整改建议说明 */
    @ExcelProperty("整改记录")
    @ApiModelProperty("整改建议说明")
    private String rectifyDesc;


    /** 归档时间 */
    @ExcelProperty("归档时间")
    @ApiModelProperty("归档时间 ")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date gdTime;

    /** 审核时间*/
    @ExcelProperty("审核时间")
    @ApiModelProperty("审核时间 ")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date auditTime;
}
