package com.zcloud.primeport.dto.clientobject;

import com.alibaba.cola.dto.ClientObject;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

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


/**
 * web-client
 *
 * @Author makejava
 * @Date 2026-03-05 11:33:23
 */
@Data
public class VehicleApplyCO extends ClientObject {
    //id
    @ApiModelProperty(value = "id")
    private Long id;
    //车辆状态(1未启用,2启用)
    @ApiModelProperty(value = "车辆状态(1未启用,2启用)")
    private Integer statusFlag;
    //车牌类型数据字典
    @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;
    //车辆所属类型 1-股份员工车辆，2-股份单位车辆，3-分公司员工车辆，4-分公司单位车辆 ，5-相关方车辆， 6:临时车辆，7检查部门车辆
    @ApiModelProperty(value = "车辆所属类型 1-股份员工车辆，2-股份单位车辆，3-分公司员工车辆，4-分公司单位车辆 ，5-相关方车辆， 6:临时车辆，7检查部门车辆")
    private String vehicleBelongType;
    //授权范围港区与区域
    @ApiModelProperty(value = "授权范围港区与区域")
    private String gateLevelAuthArea;
    //审核状态(1:审核中;2审核通过; 3：审核驳回，4无需审批（检查部门车辆）)
    @ApiModelProperty(value = "审核状态(1:审核中;2审核通过; 3：审核驳回，4无需审批（检查部门车辆）)")
    private Integer auditFlag;
    //进出港权限(1:有 2：无)
    @ApiModelProperty(value = "进出港权限(1:有 2：无)")
    private Integer mkmjPermission;
    //访问起始时间
    @ApiModelProperty(value = "访问起始时间")
    private String visitStartTime;
    //访问结束时间
    @ApiModelProperty(value = "访问结束时间")
    private String visitEndTime;
    @ApiModelProperty(value = "有效期是否过期。1过期2没过期")
    private String expiredExpiration;
    //车辆所属企业ID
    @ApiModelProperty(value = "车辆所属企业ID")
    private Long vehicleCorpId;
    //车辆所属企业名称
    @ApiModelProperty(value = "车辆所属企业名称")
    private String vehicleCorpName;
    //车辆所属部门id
    @ApiModelProperty(value = "车辆所属部门id")
    private Long vehicleDepartmentId;
    //车辆所属部门名称
    @ApiModelProperty(value = "车辆所属部门名称")
    private String vehicleDepartmentName;
    //车辆所属人id(员工车辆/驾驶人id)
    @ApiModelProperty(value = "车辆所属人id(员工车辆/驾驶人id)")
    private Long employeeVehicleUserId;
    //车辆所属人姓名(员工车辆/驾驶人名称)
    @ApiModelProperty(value = "车辆所属人姓名(员工车辆/驾驶人名称)")
    private String employeeVehicleUserName;
    //车辆所属人姓名(员工车辆/驾驶人名称)
    @ApiModelProperty(value = "车辆驾驶人姓名")
    private String drivingUserName;
    //排放标准名称
    @ApiModelProperty(value = "排放标准名称")
    private String emissionStandards;
    //排放标准:
    @ApiModelProperty(value = "排放标准")
    private String emissionStandardsName;
    //行驶证照片
    @ApiModelProperty(value = "行驶证照片")
    private String drivingLicenseId;
    //车辆照片
    @ApiModelProperty(value = "车辆照片")
    private String attachmentId;
    //告知签字
    @ApiModelProperty(value = "告知签字")
    private String informSignId;
    //项目id
    @ApiModelProperty(value = "项目id")
    private Long projectId;
    //项目名称
    @ApiModelProperty(value = "项目名称")
    private String projectName;
    @ApiModelProperty(value = "名称,来访事由")
    private String remarks;
    @ApiModelProperty(value = "来访事由")
    private String reasonVisit;
    @ApiModelProperty(value = "口门id", name = "mkmjId")
    private Long mkmjId;
    @ApiModelProperty(value = "口门名称", name = "mkmjName")
    private String mkmjName;
    @ApiModelProperty(value = "临时申请驾驶人手机号", name = "lsUserPhone")
    private String lsUserPhone;
    @ApiModelProperty(value = "临时申请驾驶人身份证", name = "lsUserIdcard")
    private String lsUserIdcard;

    // 当前审批人
    //审批状态(1,申请;2.更新)
    @ApiModelProperty(value = "当前审批状态(1,申请;2.更新)", name = "currentBatchState")
    private Integer currentBatchState;
    //审批人id
    @ApiModelProperty(value = "当前审批人id", name = "currentAuditUserId")
    private Long currentAuditUserId;
    //审批人姓名
    @ApiModelProperty(value = "当前审批人姓名", name = "currentAuditUserName")
    private String currentAuditUserName;
    //审批部门id
    @ApiModelProperty(value = "当前审批部门id", name = "currentAuditDeptId")
    private Long currentAuditDeptId;
    //审批部门名称
    @ApiModelProperty(value = "当前审批部门名称", name = "currentAuditDeptName")
    private String currentAuditDeptName;
    //审批人企业id
    @ApiModelProperty(value = "当前审批人企业id", name = "currentAuditCorpId")
    private Long currentAuditCorpId;
    //审批人企业名称
    @ApiModelProperty(value = "当前审批人企业名称", name = "currentAuditCorpName")
    private String currentAuditCorpName;
    //审批状态(1,未开始,2通过,3不通过)
    @ApiModelProperty(value = "当前审批状态(1,未开始,2通过,3不通过)", name = "currentAuditStatus")
    private Integer currentAuditStatus;
    @ApiModelProperty(value = "当前审批时间", name = "currentAuditTime")
    private String currentAuditTime;
    //审批意见
    @ApiModelProperty(value = "审批意见(驳回原因)", name = "remarks")
    private String currentRemarks;

    //1被拉黑2未拉黑
    @ApiModelProperty(value = "1被拉黑2未拉黑")
    private Integer blockedFlag;
    @ApiModelProperty(value = "auditUserId", name = "审核用户")
    private Long auditUserId;
    @ApiModelProperty(value = "currentUserId", name = "当前用户")
    private Long currentUserId;
    @ApiModelProperty(value = "检查部门名称", name = "checkDepartmentName")
    private String checkDepartmentName;
    @ApiModelProperty(value = "车辆申请的审批记录", name = "VehicleAuditLogList")
    private List<VehicleAuditLog> vehicleAuditLogList;

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class VehicleAuditLog {
        //id
        @ApiModelProperty(value = "id")
        private Long id;
        //车辆申请id
        @ApiModelProperty(value = "车辆申请id", name = "vehicleApplyId")
        private String vehicleApplyId;
        //审批批次(1.普通车辆.2危险化学品车辆)
        @ApiModelProperty(value = "审批批次(1.普通车辆.2危险化学品车辆)", name = "batchType")
        private Integer batchType;
        //审批状态(1,申请;2.更新)
        @ApiModelProperty(value = "审批状态(1,申请;2.更新)", name = "batchState")
        private Integer batchState;
        //审批人id
        @ApiModelProperty(value = "审批人id", name = "auditUserId")
        private Long auditUserId;
        //审批人姓名
        @ApiModelProperty(value = "审批人姓名", name = "auditUserName")
        private String auditUserName;
        //审批部门id
        @ApiModelProperty(value = "审批部门id", name = "auditDeptId")
        private Long auditDeptId;
        //审批部门名称
        @ApiModelProperty(value = "审批部门名称", name = "auditDeptName")
        private String auditDeptName;
        //审批人企业id
        @ApiModelProperty(value = "审批人企业id", name = "auditCorpId")
        private Long auditCorpId;
        //审批人企业名称
        @ApiModelProperty(value = "审批人企业名称", name = "auditCorpName")
        private String auditCorpName;
        //审批状态(1,未开始,2通过,3不通过)
        @ApiModelProperty(value = "审批状态(1,未开始,2通过,3不通过)", name = "auditStatus")
        private Integer auditStatus;
        @ApiModelProperty(value = "审批时间", name = "auditTime")
        private String auditTime;
        //审批意见
        @ApiModelProperty(value = "审批意见(驳回原因)", name = "remarks")
        private String remarks;
    }

}

