package com.yeejoin.amos.boot.module.jg.api.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import com.yeejoin.amos.boot.module.jg.api.common.BizCustomDateSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @author system_generator
 * @date 2024-03-18
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "JgVehicleInformationDto", description = "")
public class JgVehicleInformationDto extends BaseDto {

    private static final long serialVersionUID = 1L;


    @ApiModelProperty(value = "设备监管码")
    private String supervisoryCode;

    @ApiModelProperty(value = "使用单位名称")
    private String useUnitName;

    @ApiModelProperty(value = "申请编号")
    private String applyNo;

    @ApiModelProperty(value = "办理状态")
    private String auditStatus;

    @ApiModelProperty(value = "接收机构")
    private String receiveOrgName;

    @ApiModelProperty(value = "检验单位")
    private String inspectUnitName;

    @ApiModelProperty(value = "检验结果照片")
    private String inspectResultPhoto;

    @ApiModelProperty(value = "检验结果")
    private String inspectResult;

    @ApiModelProperty(value = "终审通过时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private String auditPassDate;

    @ApiModelProperty(value = "登记类别")
    private String regType;

    @ApiModelProperty(value = "注册登记日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private String regDate;

    @ApiModelProperty(value = "注册登记人员ID")
    private String regPersonId;

    @ApiModelProperty(value = "注册登记人员")
    private String regPersonName;

    @ApiModelProperty(value = "安装单位名称")
    private String installUnitName;

    @ApiModelProperty(value = "安装单位代码")
    private String installUnitCode;

    @ApiModelProperty(value = "状态")
    private String status;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "创建人ID")
    private String createUserId;

    @ApiModelProperty(value = "创建人名称")
    private String createUserName;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = BizCustomDateSerializer.class)
    private Date createDate;

    @ApiModelProperty(value = "录入单位ID")
    private String inputUnitNo;

    @ApiModelProperty(value = "使用登记编号")
    private String useRegistrationCode;

    @ApiModelProperty(value = "流程实例id")
    private String instanceId;

    @ApiModelProperty(value = "使用单位统一信用代码")
    private String useUnitCreditCode;

    @ApiModelProperty(value = "使用单位code：用作接收搜索条件")
    private String useUnitCode;

    @ApiModelProperty(value = "检验机构代码")
    private String inspectUnitCreditCode;

    @ApiModelProperty(value = "流程状态")
    private String instanceStatus;

    @ApiModelProperty(value = "接收机构代码")
    private String receiveOrgCode;

    @ApiModelProperty(value = "接收机构公司代码")
    private String receiveCompanyCode;

    @ApiModelProperty(value = "下一执行节点ids")
    private String nextExecuteIds;

    @ApiModelProperty(value = "发起人id用于撤回操作")
    private String promoter;

    @ApiModelProperty(value = "使用登记证书附件")
    private String useRegistrationCertificate;

    @ApiModelProperty(value = "工作流下一节点任务id")
    private String nextTaskId;

    @ApiModelProperty(value = "下一节点可执行人逗号分割")
    private String nextExecuteUserIds;

    @ApiModelProperty(value = "是否西咸，1是 0否")
    private String isXixian;

    @ApiModelProperty(value = "使用单位地点")
    private String useUnitAddress;

    @ApiModelProperty(value = "转办后执行人的Id逗号分割")
    private String transferToUserIds;

    @ApiModelProperty(value = "其他附件")
    private String otherAccessories;

    @ApiModelProperty(value = "安装日期")
    private Date installationData;

    @ApiModelProperty(value = "车辆属性")
    private String vehicleAttribute;

    @ApiModelProperty(value = "车辆属地")
    private String vehicleApanage;

    @ApiModelProperty(value = "气瓶数量")
    private Integer gasNum;

    @ApiModelProperty(value = "号牌号码")
    private String carNumber;

    @ApiModelProperty(value = "车架号码")
    private String identificationCode;

    @ApiModelProperty(value = "发动机号")
    private String engineNumber;

    @ApiModelProperty(value = "车辆品牌型号")
    private String carBrandModel;

    @ApiModelProperty(value = "车主姓名")
    private String ownerName;

    @ApiModelProperty(value = "联系电话")
    private String contactNumber;

    @ApiModelProperty(value = "充装介质")
    private String fillingMedium;

    @ApiModelProperty(value = "设备品种(特种气瓶)")
    private String equipmentVariety;

    @ApiModelProperty(value = "容积")
    private String volume;

    @ApiModelProperty(value = "加装方式")
    private String installationMode;

    @ApiModelProperty(value = "车辆年审日期")
    private Date vehicleReviewDate;

    @ApiModelProperty(value = "身份证正面附件")
    private String idCardFront;

    @ApiModelProperty(value = "身份证背面附件")
    private String idCardBack;

    @ApiModelProperty(value = "行驶证正面附件")
    private String driveLicenseFront;

    @ApiModelProperty(value = "行驶证背面附件")
    private String driveLicenseBack;

    @ApiModelProperty(value = "机动车登记证书附件")
    private String vehicleRegistrationCertificate;

    @ApiModelProperty(value = "监督检验证书附件")
    private String inspectionCertificate;

    @ApiModelProperty(value = "备案通知单附件")
    private String filingNotice;

    private List<String> roleIds;

    private String dataType;

    private String currentUserId;

    @ApiModelProperty(value = "属地监管部门code")
    private String orgBranchCode;

    @ApiModelProperty(value = "属地监管部门name")
    private String orgBranchName;

    @ApiModelProperty(value = "下次检验日期")
    private Date nextInspectionDate;

    @ApiModelProperty(value = "安全员ID")
    private String safetyManagerId;

    @ApiModelProperty(value = "安全员名称")
    private String safetyManagerName;

    @ApiModelProperty(value = "产权单位Code")
    private String estateUnitCreditCode;

    @ApiModelProperty(value = "产权单位名称")
    private String estateUnitName;

    @ApiModelProperty(value = "电话")
    private String phone;

    @ApiModelProperty(value = "作废日期")
    private Date cancelDate;


    @ApiModelProperty(value = "作废人员id")
    private String cancelUserId;


    @ApiModelProperty(value = "作废原因")
    private String cancelReason;

    @ApiModelProperty("使用登记表url")
    private String useRegistrationFormUrl;

    @ApiModelProperty("使用登记表附件")
    private String useRegistrationFormFile;

    @ApiModelProperty("投入使用日期")
    private String useDate;
}
