package com.tofly.qualitycontrol.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tofly.qualitycontrol.dto.ZlrzClientDto;
import com.tofly.qualitycontrol.entity.Massaudit;
import com.tofly.qualitycontrol.entity.ZlrzSynergist;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * 认证工单VO
 *
 * @author B
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("认证工单VO-detail")
@Accessors(chain = true)
public class CertificationOrderVO_D extends Model<CertificationOrderVO_D> {

	private static final long serialVersionUID = 1L;
	/** 认证编号 */
	@ApiModelProperty("认证编号")
	private String certificationNumber;
	/** 客户编号 */
	@ApiModelProperty("客户编号")
	private String clientNumber;
	/** 客户姓名 */
	@ApiModelProperty("客户姓名")
	private String clientName;
	/** 客户电话 */
	@ApiModelProperty("客户电话")
	private String clientPhone;
	/** 客户地址 */
	@ApiModelProperty("客户地址")
	private String clientAddress;
	/** 水表型号（DN15、20、25、40、50、80、100、150、200等）。 */
	@ApiModelProperty("水表型号（DN15、20、25、40、50、80、100、150、200等）。")
	private String meterType;
	/** 用水类别（生活、非居、工业等） */
	@ApiModelProperty("用水类别（生活、非居、工业等）")
	private String waterCategory;
	/** 前月水量 */
	@ApiModelProperty("前月水量")
	private Long lastMonthVolume;
	/** 本月水量 */
	@ApiModelProperty("本月水量")
	private Long thisMonthVolume;
	/** 升降水量 */
	@ApiModelProperty("升降水量")
	private Long diffVolume;
	/** 水量同比 */
	@ApiModelProperty("水量同比")
	private String monthOnMonthRatio;
	/** 水量环比 */
	@ApiModelProperty("水量环比")
	private String yearOnYearRatio;
	/** 认证项目(抄表数据/其它数据等) */
	@ApiModelProperty("认证项目(抄表数据/其它数据等)")
	private String certificationProject;
	/** 检验记录人 */
	@ApiModelProperty("检验记录人")
	private String certificationPerson;
	/** 检验记录人id */
	@ApiModelProperty("检验记录人id")
	private Long certificationPersonId;
	/** 检验记录人部门 */
	@ApiModelProperty("检验记录人部门")
	private String certificationDept;
	/** 完成时限 */
	@ApiModelProperty("检验记录截止时限")
	@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;
	/** 派工人员id */
	@ApiModelProperty("上报人员id")
	private Long dispatchPersonId;
	/** 检验记录环节异常状态（取值 0 1 2 3） */
	@ApiModelProperty("检验记录环节异常状态（取值 0 1 2 3）")
	private Integer certificationExceptionStatus;
	/** 水量异常原因:（爆管（内漏）、拆迁、停业、假期、多表供水、新增、销户待办等） */
	@ApiModelProperty("水量异常原因:（爆管（内漏）、拆迁、停业、假期、多表供水、新增、销户待办等）")
	private String exceptionCause;
	/** 认证结论 */
	@ApiModelProperty("认证结论")
	private String conclusion;
	/** 是否合格（是/否） */
	@ApiModelProperty("是否合格（0 是/1 否）")
	private String isQualified;
	/** 是否整改（是/否） */
	@ApiModelProperty("是否整改（0 是/1 否) ")
	private String isRectified;
	/** 检验记录时间 */
	@ApiModelProperty("检验记录时间")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date certificationTime;
	/**
	 * 上传附件id，关联表TF_YWPN_FILE_W关键值，多个文件以英文逗号分割
	 */
	@ApiModelProperty(value = "上传附件id，关联表TF_YWPN_FILE _W关键值，多个文件以英文逗号分割")
	private String fileIds;

	/** 整改处置+整改审核时限 */
	@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;


	/** 整改下达人员id */
	@ApiModelProperty("整改下达人员id")
	private Long issuePersonId;
	/** 整改下达人员 */
	@ApiModelProperty("整改下达人员")
	private String issuePerson;

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

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

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

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

	/** 质检工单客户列表 */
	@TableField(exist = false)
	@ApiModelProperty("质检工单客户列表")
	private List<ZlrzClientDto> clients;

	private List<Massaudit> auditList;

}
