package com.ruoyi.info.collection.domain.excel;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.ruoyi.common.annotation.DictDropdown;
import com.ruoyi.common.annotation.Required;
import com.ruoyi.common.annotation.TextFormat;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 员工信息Excel导入导出对象
 *
 * @author ruoyi
 * @date 2026-01-28
 */
@Data
public class CcdiBaseStaffExcel implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /** 姓名 */
    @ExcelProperty(value = "姓名", index = 0)
    @ColumnWidth(16)
    @Required
    private String name;

    /** 员工ID */
    @ExcelProperty(value = "员工ID", index = 1)
    @ColumnWidth(18)
    @Required
    private Long staffId;

    /** 所属部门ID */
    @ExcelProperty(value = "所属部门ID", index = 2)
    @ColumnWidth(20)
    @Required
    private Long deptId;

    /** 身份证号 */
    @ExcelProperty(value = "身份证号", index = 3)
    @ColumnWidth(24)
    @Required
    @TextFormat
    private String idCard;

    /** 电话 */
    @ExcelProperty(value = "电话", index = 4)
    @ColumnWidth(18)
    @Required
    @TextFormat
    private String phone;

    /** 年收入 */
    @ExcelProperty(value = "年收入（元/年）", index = 5)
    @ColumnWidth(20)
    private BigDecimal annualIncome;

    /** 入职时间 */
    @ExcelProperty(value = "入职时间", index = 6)
    @ColumnWidth(18)
    private Date hireDate;

    /** 是否党员 */
    @ExcelProperty(value = "是否党员", index = 7)
    @ColumnWidth(16)
    @DictDropdown(dictType = "ccdi_yes_no_flag")
    @Required
    private Integer partyMember;

    /** 状态 */
    @ExcelProperty(value = "状态", index = 8)
    @ColumnWidth(14)
    @DictDropdown(dictType = "ccdi_employee_status")
    @Required
    private String status;
}
