package com.engine.salary.entity.datacollection.dto;

import com.cloudstore.eccom.pc.table.WeaTableType;
import com.engine.salary.annotation.Encrypt;
import com.engine.salary.annotation.SalaryTable;
import com.engine.salary.annotation.SalaryTableColumn;
import com.engine.salary.annotation.TableTitle;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 其他免税扣除记录列表
 * <p>Copyright: Copyright (c) 2022</p>
 * <p>Company: 泛微软件</p>
 *
 * @author qiantao
 * @version 1.0
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@SalaryTable(pageId = "a4f85287-e3f9-6612-adn9-7d98e54y6rj8", tableType = WeaTableType.CHECKBOX)
public class OtherDeductionRecordDTO {

    //主键id
    @SalaryTableColumn(column = "id", display = false)
    private Long id;

    //申报月份
    @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
    @SalaryTableColumn(text = "申报月份", width = "10%", column = "declareMonth", transmethod = "com.engine.salary.transmethod.TransMethod.timeToMoth")
    @TableTitle(title = "申报月份", dataIndex = "declareMonth", key = "declareMonth")
    private Date declareMonth;

    //员工id
    private Long employeeId;

    private String username;

    //个税扣缴义务人
    @SalaryTableColumn(text = "个税扣缴义务人", width = "10%", column = "taxAgentName")
    @TableTitle(title = "个税扣缴义务人", dataIndex = "taxAgentName", key = "taxAgentName")
    private String taxAgentName;
    /**
     * 个税扣缴义务人id
     */
    private Long taxAgentId;


    //部门
    @SalaryTableColumn(text = "部门", width = "10%", column = "departmentName")
    @TableTitle(title = "部门", dataIndex = "departmentName", key = "departmentName")
    private String departmentName;

    //手机号
    @SalaryTableColumn(text = "手机号", width = "10%", column = "mobile")
    @TableTitle(title = "手机号", dataIndex = "mobile", key = "mobile")
    private String mobile;

    private String idNo;

    //工号
    @SalaryTableColumn(text = "工号", width = "10%", column = "jobNum")
    @TableTitle(title = "工号", dataIndex = "jobNum", key = "jobNum")
    private String jobNum;

    //商业健康保险
    @SalaryTableColumn(text = "商业健康保险", width = "10%", column = "businessHealthyInsurance")
    @TableTitle(title = "商业健康保险", dataIndex = "businessHealthyInsurance", key = "businessHealthyInsurance")
    @Encrypt
    private String businessHealthyInsurance;

    //税延养老保险
    @SalaryTableColumn(text = "税延养老保险", width = "10%", column = "taxDelayEndowmentInsurance")
    @TableTitle(title = "税延养老保险", dataIndex = "taxDelayEndowmentInsurance", key = "taxDelayEndowmentInsurance")
    @Encrypt
    private String taxDelayEndowmentInsurance;

    //其他
    @SalaryTableColumn(text = "其他", width = "10%", column = "otherDeduction")
    @TableTitle(title = "其他", dataIndex = "otherDeduction", key = "otherDeduction")
    @Encrypt
    private String otherDeduction;

    //准予扣除的捐赠额
    @SalaryTableColumn(text = "准予扣除的捐赠额", width = "10%", column = "deductionAllowedDonation")
    @TableTitle(title = "准予扣除的捐赠额", dataIndex = "deductionAllowedDonation", key = "deductionAllowedDonation")
    @Encrypt
    private String deductionAllowedDonation;

    @SalaryTableColumn(text = "个人养老金", width = "10%", column = "privatePension")
    @TableTitle(title = "个人养老金", dataIndex = "privatePension", key = "privatePension")
    @Encrypt
    private String privatePension;
}
