package com.zd.airbottle.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zd.common.core.annotation.Excel;
import com.zd.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

import java.util.Date;

/**
 * 资格申请对象 qp_qualification_apply
 *
 * @author zd
 * @date 2022-05-12
 */
@ApiModel("资格申请")
@Data
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
public class QpQualificationApply extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id,数据唯一标识 */
    @ApiModelProperty(value = "${comment}")
    private Long id;
    /** 实验室id */
    @Excel(name = "实验室id")
    @ApiModelProperty(value = "实验室id")
    private Long subjectId;
    /** 实验地点 */
    @Excel(name = "实验地点")
    @Length(message = "实验地点长度不能超过50")
    @ApiModelProperty(value = "实验地点")
    private String location;
    /** 申请人id */
    @Excel(name = "申请人id")
    @ApiModelProperty(value = "申请人id")
    private Long userId;
    /** 申请人 */
    @Excel(name = "申请人")
    @Length(message = "申请人长度不能超过200")
    @ApiModelProperty(value = "申请人")
    private String applyUser;
    /** 联系方式 */
    @Excel(name = "联系方式")
    @Length(message = "联系方式长度不能超过11")
    @ApiModelProperty(value = "联系方式")
    private String phone;
    /** 期限开始 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "期限开始", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "期限开始")
    private Date startTime;
    /** 期限结束 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "期限结束", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "期限结束")
    private Date endTime;
    /** 气体用途 */
    @Excel(name = "气体用途")
    @ApiModelProperty(value = "气体用途")
    private String gasUse;
    /** 申请凭证 */
    @Excel(name = "申请凭证")
    @Length(message = "申请凭证长度不能超过200")
    @ApiModelProperty(value = "申请凭证")
    private String applyCertificate;
    /** 安全措施 */
    @Excel(name = "安全措施")
    @ApiModelProperty(value = "安全措施")
    private String safetyPrecautions;
    /** 使用气体id */
    @Excel(name = "使用气体id")
    @ApiModelProperty(value = "使用气体id")
    private Long useGasId;
    /** 审核状态 0 未审核 1.审核通过 2.审核未通过 */
    @Excel(name = "审核状态 0 未审核 1.审核通过 2.审核未通过")
    @ApiModelProperty(value = "审核状态 0 未审核 1.审核通过 2.审核未通过")
    private Integer leadAuditStatus;
    /** 审核人 */
    @Excel(name = "审核人")
    @ApiModelProperty(value = "审核人")
    private Long leadAuditUserid;
    /** 审核人（实验室） */
    @Excel(name = "审核人", readConverterExp = "实=验室")
    @Length(message = "审核人长度不能超过50")
    @ApiModelProperty(value = "审核人")
    private String leadAuditUsername;
    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "审核时间")
    private Date leadAuditTime;
    /** 原因（实验室负责人） */
    @Excel(name = "原因", readConverterExp = "实=验室负责人")
    @Length(message = "原因长度不能超过200")
    @ApiModelProperty(value = "原因")
    private String leadAuditCause;
    /** 审核状态 0 未审核 1.审核通过 2.审核未通过 */
    @Excel(name = "审核状态 0 未审核 1.审核通过 2.审核未通过")
    @ApiModelProperty(value = "审核状态 0 未审核 1.审核通过 2.审核未通过")
    private Integer centerAuditStatus;
    /** 审核人 */
    @Excel(name = "审核人")
    @ApiModelProperty(value = "审核人")
    private Long centerAuditUserid;
    /** 审核人（实验中心） */
    @Excel(name = "审核人", readConverterExp = "实=验中心")
    @Length(message = "审核人长度不能超过50")
    @ApiModelProperty(value = "审核人")
    private String centerAuditUsername;
    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "审核时间")
    private Date centerAuditTime;
    /** 原因（实验中心） */
    @Excel(name = "原因", readConverterExp = "实=验中心")
    @Length(message = "原因长度不能超过200")
    @ApiModelProperty(value = "原因")
    private String centerAuditCause;

    @Override
    public Long getUserId() {
        return userId;
    }
    @Override
    public void setUserId(Long userId) {
        this.userId = userId;
    }
}
