package com.ruoyi.oa.domain.vo;

import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
import java.util.List;


/**
 * 员工模板绑定及月度发放记录视图对象 oa_employee_template_binding
 *
 * @author ruoyi
 * @date 2025-06-23
 */
@Data
@ExcelIgnoreUnannotated
public class OaEmployeeTemplateBindingVo {

    private static final long serialVersionUID = 1L;

    /**
     * 记录ID
     */
    @ExcelProperty(value = "记录ID")
    private Long bindingId;

    /**
     * 员工ID → oa_employee.employee_id
     */
    @ExcelProperty(value = "员工ID → oa_employee.employee_id")
    private Long employeeId;

//    /**
//     * 保险模板ID → oa_insurance_template.insurance_template_id
//     */
//    @ExcelProperty(value = "保险模板ID → oa_insurance_template.insurance_template_id")
//    private Long insuranceTemplateId;
    @ExcelProperty(value = "个人保险模板ID")
    private Long personalInsuranceTemplateId;
    @ExcelProperty(value = "企业保险模板ID")
    private Long companyInsuranceTemplateId;

    /**
     * 薪资模板ID → oa_salary_template.salary_template_id
     */
    @ExcelProperty(value = "薪资模板ID → oa_salary_template.salary_template_id")
    private Long salaryTemplateId;

    /**
     * 发放年度
     */
    @ExcelProperty(value = "发放年度")
    private Long payYear;

    /**
     * 发放月份
     */
    @ExcelProperty(value = "发放月份")
    private Long payMonth;

    /**
     * 实发工资
     */
    @ExcelProperty(value = "预计发放工资")
    private BigDecimal netSalary;

    /**
     * 单位总支出
     */
    @ExcelProperty(value = "单位总支出")
    private BigDecimal totalCompanyCost;

    /**
     * 状态（已发/待发）
     */
    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "已=发/待发")
    private String status;

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

    @ExcelProperty(value = "实发工资")
    private BigDecimal totalSalary;
    private BigDecimal totalPersonalInsurance;
    private BigDecimal totalCompanyInsurance;
    private String company;    // 所属公司
    private String deptName;   // 所属部门名称

}
