package com.hotwj.platform.reportStatistics.domain.vo;

import cn.idev.excel.annotation.ExcelIgnore;
import cn.idev.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;

import java.util.Date;

/**
 * 驾驶员台账VO类
 *
 * @author shihongwei
 * @date 2026-01-06
 */
@Data
public class DriverInfoLedgerVo {

    @ExcelIgnore
    private String companyName;

    @ExcelProperty("驾驶员姓名")
    private String driverName;

    @ExcelProperty({"驾驶证", "驾驶证号"})
    private String driverLicenseNo;

    @ExcelProperty({"驾驶证", "准驾车型"})
    private String driverLicenseVehicleType;

    @ExcelProperty({"驾驶证", "初次领证日期"})
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date driverLicenseFirstIssueDate;

    @ExcelProperty({"驾驶证", "有效期"})
    private String driverLicenseExpireDate;

    @ExcelProperty({"从业资格证", "资格证号"})
    private String qualificationNo;

    @ExcelDictFormat(dictType = "hot_category_qualification_certificate")
    @ExcelProperty(value = {"从业资格证", "从业类别"}, converter = ExcelDictConvert.class)
    private String qualificationType;

    @ExcelProperty({"从业资格证", "初次领证日期"})
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date qualificationFirstIssueDate;

    @ExcelProperty({"从业资格证", "有效期"})
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date qualificationValidEndDate;

    @ExcelProperty("驾驶车辆车牌号")
    private String plateNumber;

    @ExcelProperty({"入职培训", "培训时间"})
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date entryTrainingDate;

    @ExcelProperty({"入职培训", "考核结果(分数)"})
    private String entryTrainingScore;

    @ExcelProperty({"入职培训", "入职体检时间"})
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date entryPhysicalExamDate;

    @ExcelProperty({"进出企业时间", "进入"})
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date entryDate;

    @ExcelProperty({"进出企业时间", "退出"})
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date leaveDate;

    @ExcelProperty("有无发生人员伤亡事故")
    private String hasAccident;

    @ExcelProperty("有无毒驾酒驾记录")
    private String hasDrugOrDrinkDrive;

    @ExcelProperty("是否在职")
    private String isEmployed;
}
