package com.engine.salary.entity.siaccount.po;

import com.cloudstore.eccom.pc.table.WeaTableType;
import com.engine.salary.annotation.Encrypt;
import com.engine.salary.annotation.SalaryTable;
import com.engine.hrmelog.annotation.ElogTransform;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;


/**
 * @Author weaver_cl
 * @Description: 核算明细表 hrsa_bill_detail
 * @Date 2022/4/11
 * @Version V1.0
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@SalaryTable(pageId = "2394fba1-1381-428a-8532-4e1e6b86626e", tableType = WeaTableType.CHECKBOX)
//hrsa_bill_detail
@ElogTransform(name = "福利台账明细表")
public class InsuranceAccountDetailPO {

    /**
     * 主键id
     */
    @ElogTransform(name = "主键id")
    private Long id;

    /**
     * 员工id
     */
    @ElogTransform(name = "员工id")
    private Long employeeId;

    /**
     * 账单月份
     */
    @ElogTransform(name = "账单月份")
    private String billMonth;

    /**
     * 账单状态 0-未归档 1-已归档
     */
    @ElogTransform(name = "账单状态")
    private Integer billStatus;

    /**
     * 缴纳状态
     */
    @ElogTransform(name = "缴纳状态")
    private Integer paymentStatus;

    /**
     * 补缴月份/退差月份
     */
    @ElogTransform(name = "补缴月份/退差月份")
    private String supplementaryMonth;

    /**
     * 补缴项目
     */
    @ElogTransform(name = "补缴项目")
    private String supplementaryProjects;

    /**
     * 数据来源 0-系统核算 1-临时数据
     */
    @ElogTransform(name = "数据来源")
    private Integer resourceFrom;

    /**
     * 社保缴纳组织
     */
    @ElogTransform(name = "社保缴纳组织")
    private Long socialPayOrg;

    /**
     * 社保账号
     */
    @ElogTransform(name = "社保账号")
    private String socialAccount;

    /**
     * 公积金缴纳组织
     */
    @ElogTransform(name = "公积金缴纳组织")
    private Long fundPayOrg;

    /**
     * 公积金账号
     */
    @ElogTransform(name = "公积金账号")
    private String fundAccount;

    /**
     * 补充公积金账号
     */
    @ElogTransform(name = "补充公积金账号")
    private String supplementFundAccount;

    /**
     * 其他福利缴纳组织
     */
    @ElogTransform(name = "其他福利缴纳组织")
    private Long otherPayOrg;

    /**
     * 社保方案ID
     */
    @ElogTransform(name = "社保方案ID")
    private Long socialSchemeId;

    /**
     * 社保缴纳基数
     */
    @Encrypt
    @ElogTransform(name = "社保缴纳基数")
    private String socialPaymentBaseString;

    /**
     * 社保缴纳基数——单位
     */
    @Encrypt
    @ElogTransform(name = "社保缴纳基数——单位")
    private String socialPaymentComBaseString;

    /**
     * 公积金方案ID
     */
    @ElogTransform(name = "公积金方案ID")
    private Long fundSchemeId;

    /**
     * 公积金缴纳基数
     */
    @Encrypt
    @ElogTransform(name = "公积金缴纳基数")
    private String fundPaymentBaseString;

    /**
     * 公积金缴纳基数——单位
     */
    @Encrypt
    @ElogTransform(name = "公积金缴纳基数——单位")
    private String fundPaymentComBaseString;

    /**
     * 其他福利方案id
     */
    @ElogTransform(name = "其他福利方案id")
    private Long otherSchemeId;

    /**
     * 其他福利缴纳基数
     */
    @Encrypt
    @ElogTransform(name = "其他福利缴纳基数")
    private String otherPaymentBaseString;

    /**
     * 其他福利缴纳基数——单位
     */
    @Encrypt
    @ElogTransform(name = "其他福利缴纳基数——单位")
    private String otherPaymentComBaseString;

    /**
     * 社保个人缴费明细
     */
    @Encrypt
    @ElogTransform(name = "社保个人缴费明细")
    private String socialPerJson;

    /**
     * 社保个人合计
     */
    @Encrypt
    @ElogTransform(name = "社保个人合计")
    private String socialPerSum;

    /**
     * 公积金个人缴费明细
     */
    @Encrypt
    @ElogTransform(name = "公积金个人缴费明细")
    private String fundPerJson;

    /**
     * 公积金个人合计
     */
    @Encrypt
    @ElogTransform(name = "公积金个人合计")
    private String fundPerSum;

    /**
     * 其他福利个人缴费明细
     */
    @Encrypt
    @ElogTransform(name = "其他福利个人缴费明细")
    private String otherPerJson;

    /**
     * 其他福利个人合计
     */
    @Encrypt
    @ElogTransform(name = "其他福利个人合计")
    private String otherPerSum;

    /**
     * 个人合计
     */
    @Encrypt
    @ElogTransform(name = "个人合计")
    private String perSum;

    /**
     * 社保单位缴费明细
     */
    @Encrypt
    @ElogTransform(name = "社保单位缴费明细")
    private String socialComJson;

    /**
     * 社保单位合计
     */
    @Encrypt
    @ElogTransform(name = "社保单位合计")
    private String socialComSum;

    /**
     * 公积金单位缴费明细
     */
    @ElogTransform(name = "公积金单位缴费明细")
    private String fundComJson;

    /**
     * 公积金单位合计
     */
    @ElogTransform(name = "公积金单位合计")
    private String fundComSum;

    /**
     * 其他福利单位缴费明细
     */
    @ElogTransform(name = "其他福利单位缴费明细")
    private String otherComJson;

    /**
     * 其他福利单位合计
     */
    @ElogTransform(name = "其他福利单位合计")
    private String otherComSum;

    /**
     * 单位合计
     */
    @Encrypt
    @ElogTransform(name = "单位合计")
    private String comSum;

    /**
     * 社保合计
     */
    @Encrypt
    @ElogTransform(name = "社保合计")
    private String socialSum;

    /**
     * 公积金合计
     */
    @Encrypt
    @ElogTransform(name = "公积金合计")
    private String fundSum;

    /**
     * 其他福利合计
     */
    @Encrypt
    @ElogTransform(name = "其他福利合计")
    private String otherSum;

    /**
     * 合计
     */
    @Encrypt
    @ElogTransform(name = "合计")
    private String total;

    /**
     * 创建人id
     */
    @ElogTransform(name = "创建人id")
    private Long creator;

    /**
     * 是否删除
     */
    @ElogTransform(name = "是否删除")
    private Integer deleteType;

    /**
     * 创建时间
     */
    @ElogTransform(name = "创建时间")
    private Date createTime;

    /**
     * 更新时间
     */
    @ElogTransform(name = "更新时间")
    private Date updateTime;

    /**
     * 租户key
     */
    @ElogTransform(name = "租户key")
    private String tenantKey;

    /**
     * 个税扣缴义务人
     */
    @ElogTransform(name = "个税扣缴义务人")
    private Long paymentOrganization;
}
