package com.zcloud.primeport.dto.clientobject;

import com.alibaba.cola.dto.ClientObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.sql.Date;
import java.util.HashMap;
import java.util.List;


/**
 * web-client
 *
 * @Author dearLin
 * @Date 2026-03-20 10:07:13
 */
@Data
public class ClosedAreaCarApplyCO extends ClientObject {
    //主键
    @ApiModelProperty(value = "主键")
    private Long id;
    //申请归属1股份2分公司3相关方4临时人员
    @ApiModelProperty(value = "申请归属1股份2分公司3相关方4临时人员5分公司内部车辆")
    private Integer carBelongType;
    //车牌类型数据字典
    @ApiModelProperty(value = "车牌类型数据字典")
    private String licenceType;
    //车牌类型名称0-白牌  1- 蓝牌   2-黄牌  3-绿牌   4-黑牌
    @ApiModelProperty(value = "车牌类型名称0-白牌  1- 蓝牌   2-黄牌  3-绿牌   4-黑牌")
    private String licenceTypeName;
    //车牌号
    @ApiModelProperty(value = "车牌号")
    private String licenceNo;
    //车辆类型
    @ApiModelProperty(value = "车辆类型")
    private String vehicleType;
    //车辆类型-名字
    @ApiModelProperty(value = "车辆类型-名字")
    private String vehicleTypeName;
    //一级口门id
    @ApiModelProperty(value = "一级口门id")
    private Long levelOneMkmjId;
    //审核状态(1:审核中;2审核通过; 3：审核驳回)
    @ApiModelProperty(value = "审核状态(1:审核中;2审核通过; 3：审核驳回)")
    private Integer auditFlag;
    //二级口门id(封闭区域口门)
    @ApiModelProperty(value = "二级口门id(封闭区域口门)")
    private Long levelTwoMkmjId;
    //封闭区域id
    @ApiModelProperty(value = "封闭区域id")
    private Long closedAreaId;
    //封闭区域名称
    @ApiModelProperty(value = "封闭区域名称")
    private String closedAreaName;
    //访问起始时间
    @ApiModelProperty(value = "访问起始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private String visitStartTime;
    //访问结束时间
    @ApiModelProperty(value = "访问结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private String visitEndTime;
    //区域管辖单位名id
    @ApiModelProperty(value = "区域管辖单位名id")
    private Long jurisdictionalCorpId;
    //区域管辖单位名称
    @ApiModelProperty(value = "区域管辖单位名称")
    private String jurisdictionalCorpName;
    //项目id
    @ApiModelProperty(value = "项目id")
    private Long projectId;
    //项目名称
    @ApiModelProperty(value = "项目名称")
    private String projectName;
    //申请人员所属企业ID
    @ApiModelProperty(value = "申请人员所属企业ID")
    private Long applyPersonCorpId;
    //申请人员所属企业名称
    @ApiModelProperty(value = "申请人员所属企业名称")
    private String applyPersonCorpName;
    //待审批人员所属部门id
    @ApiModelProperty(value = "待审批人员所属部门id")
    private Long applyPersonDepartmentId;
    //申请人员部门名称
    @ApiModelProperty(value = "申请人员部门名称")
    private String applyPersonDepartmentName;
    //申请人员id
    @ApiModelProperty(value = "申请人员id")
    private Long applyPersonUserId;
    //申请人员姓名
    @ApiModelProperty(value = "申请人员姓名")
    private String applyPersonUserName;
    private String applyUserName;
    //申请理由
    @ApiModelProperty(value = "申请理由")
    private String applyReason;
    //申请人头像
    @ApiModelProperty(value = "申请人头像")
    private String userFaceUrl;
    //申请人手机号
    @ApiModelProperty(value = "申请人手机号")
    private String userPhone;
    //申请人身份证号码
    @ApiModelProperty(value = "申请人身份证号码")
    private String userCard;
    //随行人员
    @ApiModelProperty(value = "随行人员")
    private String entourage;
    //告知签字
    @ApiModelProperty(value = "告知签字")
    private String informSignId;
    //行驶证照片
    @ApiModelProperty(value = "行驶证照片")
    private String drivingLicenseId;
    //车辆照片
    @ApiModelProperty(value = "车辆照片")
    private String attachmentId;
    //审批人员所属企业ID
    @ApiModelProperty(value = "审批人员所属企业ID")
    private Long auditPersonCorpId;
    //审批人员所属企业名称
    @ApiModelProperty(value = "审批人员所属企业名称")
    private String auditPersonCorpName;
    //审批人员所属部门id
    @ApiModelProperty(value = "审批人员所属部门id")
    private Long auditPersonDepartmentId;
    //审批人员部门名称
    @ApiModelProperty(value = "审批人员部门名称")
    private String auditPersonDepartmentName;
    //审批人员id
    @ApiModelProperty(value = "审批人员id")
    private Long auditPersonUserId;
    //审批人员姓名
    @ApiModelProperty(value = "审批人员姓名")
    private String auditPersonUserName;
    //审批时间
    @ApiModelProperty(value = "审批时间")
    private String auditTime;
    //驳回原因
    @ApiModelProperty(value = "驳回原因")
    private String refusalReason;

    @ApiModelProperty(value = "当前用户是否能审核。1，能审核2不能审核", name = "currentUserCanAudit")
    private Integer currentUserCanAudit;

    @ApiModelProperty(value = "人员进出记录", name = "personInOutRecord")
    private List<HashMap> personInOutRecord;
    private String levelOneMkmjName;
    private String levelTwoMkmjName;
}

