package com.dcsoft.system.visitor.domain;


import com.dcsoft.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

@Data
public class VisExitOutVo extends BaseEntity {

    private Long id;

    private List<Long> ids;

    /**
     * 发货人（申请人）
     */
    private Long userId;

    /**
     * 事由
     */
    private String reason;

    /**
     * 当前审核人id
     */
    private Long reviewer;

    /**
     * 申请人姓名
     */
    private String name;

    /**
     * 申请人联系方式
     */
    private String phone;

    /**
     * 出门证编号
     */
    @NotBlank(message = "出门证编号为空！")
    private String exitPermitNo;

    /**
     * 经办人
     */
    private String peopleId;

    /**
     * 申请单位
     */
    private String visitingUnit;

    /**
     * 交通工具
     */
    private String vehicle;

    /**
     * 日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date visTime;

    /**
     * 日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date visTimeStart;

    /**
     * 日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date visTimeEnd;

    /**
     * 车牌
     */
    private String carNo;

    /**
     * 一级审核人
     */
    @NotNull(message = "生产部审核人不能为空")
    private Long reviewer1;

    /**
     * 二级审核人
     */
    @NotNull(message = "设备部审核人不能为空")
    private Long reviewer2;

    /**
     * 三级审核人
     */
    @NotNull(message = "人力综合部审核人不能为空")
    private Long reviewer3;

    /**
     * 一级审核人名字
     */
    private String reviewerName1;

    /**
     * 二级审核人
     */
    private String reviewerName2;

    /**
     * 三级审核人
     */
    private String reviewerName3;

    /**
     * 审核状态 0：通过，1：驳回，2审核中，4：已取消，5：已失效
     */
    private String examineState;

    /**
     * 审核状态 0：通过，1：驳回，2审核中，4：已取消，5：已失效
     */
    private List<String> examineStateList;

    /**
     * 审核状态 0：通过，1：驳回
     */
    private String state;

    /**
     * 放行人名字
     */
    private String releaseName;

    /**
     * 申请类型 0:临时访客 1：携物出门
     */
    private String visitorType = "1";

    /**
     * 二维码信息
     */
    private String qrCode;

    /**
     * 审核链接手机号
     */
    private String telephone;

    /**
     * 当前审批节点
     */
    private Integer currentNode;

    /**
     * 是否存在返厂物资 0:否，1：是
     */
    private Integer isExistBack;

    /**
     * 物品信息列表
     */
    private List<VisStuffInfoVo> visStuffInfoList;

    private List<VisitorReviewProcessVo> reviewProcessList;

    /**
     * 小程序判断是否是保安
     */
    private String appDeptId;

    /**
     * 小程序判断是否已确认放行 0:否，1：是
     */
    private Integer isRelease = 0;

    /**
     * vis_visitor_review_process表的审核节点
     */
    private Integer approveNode;

    /**
     * 审核链接地址参数
     */
    private String approveData;
}
