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 lombok.Data;

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

/**
 * 员工调动记录Excel导入导出对象
 *
 * @author ruoyi
 * @date 2026-02-10
 */
@Data
public class CcdiStaffTransferExcel implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

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

    /** 调动类型 */
    @ExcelProperty(value = "调动类型*", index = 1)
    @ColumnWidth(15)
    @DictDropdown(dictType = "ccdi_transfer_type")
    @Required
    private String transferType;

    /** 调动子类型 */
    @ExcelProperty(value = "调动子类型", index = 2)
    @ColumnWidth(15)
    private String transferSubType;

    /** 调动前部门ID */
    @ExcelProperty(value = "调动前部门ID*", index = 3)
    @ColumnWidth(15)
    @Required
    private Long deptIdBefore;

    /** 调动前职级 */
    @ExcelProperty(value = "调动前职级", index = 4)
    @ColumnWidth(15)
    private String gradeBefore;

    /** 调动前岗位 */
    @ExcelProperty(value = "调动前岗位", index = 5)
    @ColumnWidth(15)
    private String positionBefore;

    /** 调动前薪酬等级 */
    @ExcelProperty(value = "调动前薪酬等级", index = 6)
    @ColumnWidth(15)
    private String salaryLevelBefore;

    /** 调动后部门ID */
    @ExcelProperty(value = "调动后部门ID*", index = 7)
    @ColumnWidth(15)
    @Required
    private Long deptIdAfter;

    /** 调动后职级 */
    @ExcelProperty(value = "调动后职级", index = 8)
    @ColumnWidth(15)
    private String gradeAfter;

    /** 调动后岗位 */
    @ExcelProperty(value = "调动后岗位", index = 9)
    @ColumnWidth(15)
    private String positionAfter;

    /** 调动后薪酬等级 */
    @ExcelProperty(value = "调动后薪酬等级", index = 10)
    @ColumnWidth(15)
    private String salaryLevelAfter;

    /** 调动日期 */
    @ExcelProperty(value = "调动日期*", index = 11)
    @ColumnWidth(15)
    @Required
    private Date transferDate;
}
