package com.casic.missiles.model.meter;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.enums.poi.BorderStyleEnum;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

@Data
@ColumnWidth(30)
@HeadRowHeight(15)
@ContentRowHeight(20)
@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
@ExcelIgnoreUnannotated
@TableName("meter_staff")
public class MeterStaff implements Serializable {

    private static final long serialVersionUID = 8221643116858985801L;

    @TableId("id")
    @ApiModelProperty(value = "主键id", dataType = "Long")
    private Long id;

    @TableField("name")
    @ApiModelProperty(value = "姓名", dataType = "String")
    @ExcelProperty(value = "姓名",order = 1)
    private String name;

    @TableField("minio_file_name")
    @ApiModelProperty(value = "人员照片(调用上传文件接口,返回的文件id)", dataType = "String")
    private String minioFileName;

    @TableField("id_card")
    @ApiModelProperty(value = "身份证号", dataType = "String")
    private String idCard;

    @TableField("staff_no")
    @ApiModelProperty(value = "人员编号", dataType = "String")
    @ExcelProperty(value = "人员编号",order = 0)
    private String staffNo;

    @TableField("account")
    @ApiModelProperty(value = "登录账号", dataType = "String")
    private String account;

    @TableField("sex")
    @ApiModelProperty(value = "性别", dataType = "String")
    @ExcelProperty(value = "性别",order = 3)
    private String sex;

    @TableField("birthday")
    @ApiModelProperty(value = "生日", dataType = "String")
    private String birthday;

    @TableField("education")
    @ApiModelProperty(value = "文化程度", dataType = "String")
    @ExcelProperty(value = "学历",order = 2)
    private String education;

    @TableField("technology_job")
    @ApiModelProperty(value = "技术职位", dataType = "String")
    @ExcelProperty(value = "技术职位",order = 5)
    private String technologyJob;

    @TableField("administration_job")
    @ApiModelProperty(value = "行政职务", dataType = "String")
    @ExcelProperty(value = "行政职务",order = 6)
    private String administrationJob;

    @TableField("dept_id")
    @ApiModelProperty(value = "组织部门", dataType = "String")
    private String deptId;

    @TableField(exist = false)
    @ApiModelProperty(value = "组织部门", dataType = "String")
    @ExcelProperty(value = "工作部门名称",order = 4)
    private String deptName;

    @TableField("major")
    @ApiModelProperty(value = "专业", dataType = "String")
    @ExcelProperty(value = "计量专业",order = 7)
    private String major;

    @TableField("certificate_company")
    @ApiModelProperty(value = "发证单位", dataType = "String")
    private String certificateCompany;

    @TableField("verifier_certificate_no")
    @ApiModelProperty(value = "证书号", dataType = "String")
    @ExcelProperty(value = "证书号",order = 8)
    private String verifierCertificateNo;

    @TableField("certificate_date")
    @ApiModelProperty(value = "有效日期（关联查询证书时赋值给这里的）", dataType = "String")
    @ExcelProperty(value = "证书有效日期",order = 9)
    private String certificateDate;

    @TableField("work_date")
    @ApiModelProperty(value = "从事日期", dataType = "String")
    private String workDate;

    @TableField("technology_exam")
    @ApiModelProperty(value = "技术考核", dataType = "String")
    @ExcelProperty(value = "技术考核",order = 10)
    private String technologyExam;

    @TableField(value = "main_examiner")
    @ApiModelProperty(value = "是否主考人", dataType = "String")
    private String mainExaminer;

    @TableField(value = "special_operator")
    @ApiModelProperty(value = "是否特操人", dataType = "String")
    private String specialOperator;

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

    @TableField("is_del")
    @ApiModelProperty(value = "删除标记", dataType = "Integer")
    private Integer isDel;

    @TableField("create_time")
    @ApiModelProperty(value = "创建时间", dataType = "String")
    private String createTime;

    @TableField("update_time")
    @ApiModelProperty(value = "更新时间", dataType = "String")
    private String updateTime;

    @ApiModelProperty(value = "用户id", dataType = "List")
    @TableField(exist = false)
    private String userId;

    @ApiModelProperty(value = "证书列表", dataType = "List")
    @TableField(exist = false)
    private List<MeterCertificate> certificateList;

}
