package cn.com.ty.lift.business.annualinspection.entity;

import cn.com.ty.lift.business.common.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.*;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 *     年检记录
 * </p>
 *
 * @author wcz
 * @since 2019-12-10
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class AnnualInspection extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @TableId("id")
    @Null(message = "年检ID必须为空")
    private Long id;

    /**
     * 电梯ID
     */
    @NotNull(message = "电梯不能为空")
    @Min(value = 1,message = "电梯ID有误")
    private Long liftId;

    /**
     * 公司ID
     */
    @NotNull(message = "维保公司不能为空")
    @Min(value = 1,message = "维保公司ID有误")
    private Long mtCompanyId;

    /**
     * 计划年检时间
     */
    @NotNull(message = "计划年检时间不能为空")
    @FutureOrPresent(message = "计划年检时间不得晚于当前时间")
    private LocalDate planDate;

    /**
     * 是否检查限速器（0 否；1 是；默认0）
     */
    @NotNull(message = "请设置是否检查限速器")
    @Max(value = 1,message = "检查限速器设置值有误")
    private Integer isCheckGoverner;

    /**
     * 是否荷载年检设置（0 否；1 是；默认0）
     */
    @NotNull(message = "请设置是否荷载年检设置")
    @Max(value = 1, message = "荷载年检设置值有误")
    private Integer loadInspectionSetting;

    /**
     * 完成时间
     */
    private LocalDateTime finishTime;

    /**
     * 合格证图片路径
     */
    private String certificateImgUrl;

    /**
     * 政府质检人员
     */
    private String inspector;

    /**
     * 联系电话
     */
    private String telephone;

    /**
     * 公司年检人员
     */
    private String operator;

    /**
     * 状态（0 待完成；1 已完成；2 超期）
     */
    private Integer status;

    /**
     * 下次年检日期
     */
    private LocalDate nextInspectionTime;

    /**
     * 自检报告路径
     */
    private String selfcheckReportImg;

    /**
     * 自检时间
     */
    private LocalDate selfcheckDate;

    /**
     * 检验结果图片路径
     */
    private String checkResultImg;
    /**
     * 现场检验时间
     */
    private LocalDate checkDate;
    /**
     * 年检报告图片路径
     */
    private String annualInspectionImg;

    /**
     * stepStatus  :年检阶段状态
     * 未开始0,第一阶段 1-2,第二阶段 3,第三阶段 4-7,第四阶段 8-10
     *
     1  维保工确认年检计划
     2  维保工上传自检报告,选择自检时间 或者 文员设置 是否检查限速器和荷载年检设置，
     文员也可以上传自检报告或者确认自检报告和自检时间，自检时间以最后设置的为准
     --------------------------------
     3  企业文员确认现场检验时间
     录入人员信息，政府质检，企业质检，联系电话
     --------------------------------
     4	维保工上传检验结果
     5	企业文员确认检验结果-合格
     6	企业文员确认检验结果-整改
     7	企业文员确认检验结果-不合格
     --------------------------------
     8	维保工上传年检报告和合格证
     9	企业文员确认年检报告和合格证-合格
     10	企业文员确认年检报告和合格证-不合格
     */
    private Integer stepStatus;

    /**
     * 年检阶段名称
     * 0 未开始; 1 第一阶段 1-2;2 第二阶段 3;3 第三阶段 4-7;4 第四阶段 8-10
     */
    private Integer stepName;
}
