package com.sckw.fleet.model.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sckw.excel.annotation.ExcelContext;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * @author zk
 * @desc 车辆信息
 * @date 2023/7/11 0011
 */
@Data
@Accessors(chain = true)
@ExcelContext(fileName = "车辆信息", sheetName = "车辆信息")
public class KwfTruckVo implements Serializable {
    @Serial
    private static final long serialVersionUID = -7951209824419412586L;

    /**
     * 车辆信息主键id
     */
    @ExcelIgnore
    private String id;

    /**
     * 状态(0正常、1锁定)
     */
    @ExcelIgnore
    private int status;

    /**
     * 认证状态（1认证、2临时、3异常）
     */
    @ExcelIgnore
    private Integer authStatus;

    /**
     * 认证状态
     */
    @ExcelProperty(value = "状态")
    private String authStatusName;

    /**
     * 车牌号
     */
    @ExcelProperty(value = "车牌号")
    private String truckNo;

    /**
     * 车牌颜色
     */
    @ExcelIgnore
    private Integer color;

    /**
     * 车牌颜色
     */
    @ExcelProperty(value = "车牌颜色")
    private String colorName;

    /**
     * 车辆类型
     */
    @ExcelIgnore
    private Integer type;

    /**
     * 车辆类型
     */
    @ExcelProperty(value = "车辆类型")
    private String truckTypeName;

    /**
     * 能源类型
     */
    @ExcelIgnore
    private Integer energyType;

    /**
     * 能源类型
     */
    @ExcelProperty(value = "能源类型")
    private String energyTypeName;

    /**
     * 核定载质量/吨
     */
    @ExcelProperty(value = "核定载质量/吨")
    private String actualWeight;

    /**
     * 总质量/吨
     */
    @ExcelProperty(value = "总质量/吨")
    private String grossWeight;

    /**
     * 外廓尺寸
     */
    @ExcelProperty(value = "外廓尺寸")
    private String spec;

    /**
     * 使用性质
     */
    @ExcelIgnore
    private Integer useType;

    /**
     * 使用性质
     */
    @ExcelProperty(value = "使用性质")
    private String useTypeName;

    /**
     * 车辆所有人
     */
    @ExcelProperty(value = "车辆所有人")
    private String owner;

    /**
     * 车辆识别代码
     */
    @ExcelProperty(value = "车辆识别代码")
    private String vin;

    /**
     * 注册日期
     */
    @ExcelProperty(value = "注册日期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date regTime;

    /**
     * 发证日期
     */
    @ExcelProperty(value = "发证日期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date grantTime;

    /**
     * 发证机关
     */
    @ExcelProperty(value = "发证机关")
    private String grantUnit;

    /**
     * 车辆行驶证号
     */
    @ExcelProperty(value = "车辆行驶证号")
    private String drivingNo;

    /**
     * 道路运输证号
     */
    @ExcelProperty(value = "道路运输证号")
    private String roadTranNo;

    /**
     * 业户名称
     */
    @ExcelProperty(value = "业户名称")
    private String tranFirmName;

    /**
     * 道路运输经营许可证号
     */
    @ExcelProperty(value = "道路运输经营许可证号")
    private String businessLicenseNo;

    /**
     * 挂车号
     */
    @ExcelProperty(value = "挂车号")
    private String trailerNo;

    /**
     * 归档单位企业ID
     */
    @ExcelIgnore
    private String entId;

    /**
     * 归档单位
     */
    @ExcelProperty(value = "归档单位")
    private String firmName;

    /**
     * 车队班组
     */
    @ExcelProperty(value = "车队班组")
    private String fleetName;

    /**
     * 创建人
     */
    @ExcelIgnore
    private String createBy;

    /**
     * 创建人
     */
    @ExcelProperty(value = "创建人")
    private String createByName;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    private String createTime;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     * 品牌
     */
    private String brand;

    /**
     * 轴数id
     */
    private String carAxisId;

    /**
     * 轴数
     */
    private String carAxis;

    /**
     * 司机
     */
    private String driverName;


//    public String getAuthStatusName() {
//        return authStatus == 1 ? "正常" : authStatus == 2 ? "临时" : "异常";
//    }

}
