package com.ruoyi.oa.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 员工工资对象 cmc_wage
 * 
 * @author cmc
 * @date 2024-09-19
 */
public class CmcWage extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 工资id */
    private Integer wageId;

    /** 用户序号 */
    @Excel(name = "用户序号")
    private Long userId;

    /** 姓名 */
    @Excel(name = "姓名")
    private String nickName;

    /** 姓名 */
    @Excel(name = "部门")
    private String deptName;
    private String deptId;
    private SysDept dept;

    /** 基础工资 */
    @Excel(name = "基础工资")
    private BigDecimal baseSalary;

    /** 工龄工资 */
    @Excel(name = "工龄工资")
    private BigDecimal yearSalary;

    /** 岗位工资 */
    @Excel(name = "岗位工资")
    private BigDecimal postSalary;

    /** 绩效工资 */
    @Excel(name = "绩效工资")
    private BigDecimal performanceSalary;

    /** 注册测绘师（岩土工程师）补贴 */
    @Excel(name = "注册测绘师（岩土工程师/安全工程师）补贴")
    private BigDecimal certificatesSubsidy;

    /** 过节补贴 */
    @Excel(name = "过节补贴")
    private BigDecimal festivalSubsidy;

    /** 稳岗补贴 */
    @Excel(name = "稳岗补贴")
    private BigDecimal postStableSubsidy;

    /** 高温补贴 */
    @Excel(name = "高温补贴")
    private BigDecimal highTemperatureSubsidy;

    /** 考勤扣款 */
    @Excel(name = "考勤扣款")
    private BigDecimal attendanceDeduct;

    /** 应发小计 */
    @Excel(name = "应发小计")
    private BigDecimal payableWage;

    /** 公积金 */
    @Excel(name = "公积金单位部分")
    private BigDecimal houseFund;

    /** 养老保险 */
    @Excel(name = "养老保险")
    private BigDecimal endowmentInsurance;

    /** 失业保险 */
    @Excel(name = "失业保险")
    private BigDecimal unemploymentInsurance;

    /** 医疗保险 */
    @Excel(name = "医疗保险")
    private BigDecimal medicalInsurance;

    /** 水韵物管费 */
    @Excel(name = "水韵物管费")
    private BigDecimal propertyFee;

    /** 扣款小计 */
    @Excel(name = "扣款小计")
    private BigDecimal deductTotal;

    /** 社保单位部分 */
    @Excel(name = "社保单位部分")
    private BigDecimal socialSecurityUnit;

    /** 个税 */
    @Excel(name = "个税")
    private BigDecimal individualIncomeTax;

    /** 实发工资 */
    @Excel(name = "实发工资")
    private BigDecimal paidWage;

    /** 发放日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发放日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payDay;

    /** 发放月份 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发放月份", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payMonth;

    /** 绩效审批id */
    private String performanceId;

    private SysUser user;

    public void setWageId(Integer wageId) 
    {
        this.wageId = wageId;
    }

    public Integer getWageId() 
    {
        return wageId;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setBaseSalary(BigDecimal baseSalary) 
    {
        this.baseSalary = baseSalary;
    }

    public BigDecimal getBaseSalary() 
    {
        return baseSalary;
    }
    public void setYearSalary(BigDecimal yearSalary) 
    {
        this.yearSalary = yearSalary;
    }

    public BigDecimal getYearSalary() 
    {
        return yearSalary;
    }
    public void setPostSalary(BigDecimal postSalary) 
    {
        this.postSalary = postSalary;
    }

    public BigDecimal getPostSalary() 
    {
        return postSalary;
    }
    public void setPerformanceSalary(BigDecimal performanceSalary) 
    {
        this.performanceSalary = performanceSalary;
    }

    public BigDecimal getPerformanceSalary() 
    {
        return performanceSalary;
    }
    public void setCertificatesSubsidy(BigDecimal certificatesSubsidy) 
    {
        this.certificatesSubsidy = certificatesSubsidy;
    }

    public BigDecimal getCertificatesSubsidy() 
    {
        return certificatesSubsidy;
    }
    public void setFestivalSubsidy(BigDecimal festivalSubsidy) 
    {
        this.festivalSubsidy = festivalSubsidy;
    }

    public BigDecimal getFestivalSubsidy() 
    {
        return festivalSubsidy;
    }
    public void setPostStableSubsidy(BigDecimal postStableSubsidy) 
    {
        this.postStableSubsidy = postStableSubsidy;
    }

    public BigDecimal getPostStableSubsidy() 
    {
        return postStableSubsidy;
    }
    public void setHighTemperatureSubsidy(BigDecimal highTemperatureSubsidy) 
    {
        this.highTemperatureSubsidy = highTemperatureSubsidy;
    }

    public BigDecimal getHighTemperatureSubsidy() 
    {
        return highTemperatureSubsidy;
    }
    public void setAttendanceDeduct(BigDecimal attendanceDeduct) 
    {
        this.attendanceDeduct = attendanceDeduct;
    }

    public BigDecimal getAttendanceDeduct() 
    {
        return attendanceDeduct;
    }
    public void setPayableWage(BigDecimal payableWage) 
    {
        this.payableWage = payableWage;
    }

    public BigDecimal getPayableWage() 
    {
        return payableWage;
    }
    public void setHouseFund(BigDecimal houseFund) 
    {
        this.houseFund = houseFund;
    }

    public BigDecimal getHouseFund() 
    {
        return houseFund;
    }
    public void setEndowmentInsurance(BigDecimal endowmentInsurance) 
    {
        this.endowmentInsurance = endowmentInsurance;
    }

    public BigDecimal getEndowmentInsurance() 
    {
        return endowmentInsurance;
    }
    public void setUnemploymentInsurance(BigDecimal unemploymentInsurance) 
    {
        this.unemploymentInsurance = unemploymentInsurance;
    }

    public BigDecimal getUnemploymentInsurance() 
    {
        return unemploymentInsurance;
    }
    public void setMedicalInsurance(BigDecimal medicalInsurance) 
    {
        this.medicalInsurance = medicalInsurance;
    }

    public BigDecimal getMedicalInsurance() 
    {
        return medicalInsurance;
    }
    public void setPropertyFee(BigDecimal propertyFee) 
    {
        this.propertyFee = propertyFee;
    }

    public BigDecimal getPropertyFee() 
    {
        return propertyFee;
    }
    public void setDeductTotal(BigDecimal deductTotal) 
    {
        this.deductTotal = deductTotal;
    }

    public BigDecimal getDeductTotal() 
    {
        return deductTotal;
    }
    public void setSocialSecurityUnit(BigDecimal socialSecurityUnit) 
    {
        this.socialSecurityUnit = socialSecurityUnit;
    }

    public BigDecimal getSocialSecurityUnit() 
    {
        return socialSecurityUnit;
    }
    public void setIndividualIncomeTax(BigDecimal individualIncomeTax) 
    {
        this.individualIncomeTax = individualIncomeTax;
    }

    public BigDecimal getIndividualIncomeTax() 
    {
        return individualIncomeTax;
    }
    public void setPaidWage(BigDecimal paidWage) 
    {
        this.paidWage = paidWage;
    }

    public BigDecimal getPaidWage() 
    {
        return paidWage;
    }
    public void setPayDay(Date payDay) 
    {
        this.payDay = payDay;
    }

    public Date getPayDay() 
    {
        return payDay;
    }
    public void setPayMonth(Date payMonth) 
    {
        this.payMonth = payMonth;
    }

    public Date getPayMonth() 
    {
        return payMonth;
    }
    public void setPerformanceId(String performanceId)
    {
        this.performanceId = performanceId;
    }

    public String getPerformanceId()
    {
        return performanceId;
    }
    public void setUser(SysUser user)
    {
        this.user = user;
        this.nickName = user == null ? "" : user.getNickName();
    }

    public SysUser getUser()
    {
        return user;
    }
    public void setDeptId(String deptId)
    {
        this.deptId = deptId;
    }

    public String getDeptId()
    {
        return deptId;
    }
    public void setDept(SysDept dept)
    {
        this.dept = dept;
        this.deptName = dept == null ? "" : dept.getDeptName();
    }

    public SysDept getDept()
    {
        return dept;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("wageId", getWageId())
            .append("userId", getUserId())
            .append("baseSalary", getBaseSalary())
            .append("yearSalary", getYearSalary())
            .append("postSalary", getPostSalary())
            .append("performanceSalary", getPerformanceSalary())
            .append("certificatesSubsidy", getCertificatesSubsidy())
            .append("festivalSubsidy", getFestivalSubsidy())
            .append("postStableSubsidy", getPostStableSubsidy())
            .append("highTemperatureSubsidy", getHighTemperatureSubsidy())
            .append("attendanceDeduct", getAttendanceDeduct())
            .append("payableWage", getPayableWage())
            .append("houseFund", getHouseFund())
            .append("endowmentInsurance", getEndowmentInsurance())
            .append("unemploymentInsurance", getUnemploymentInsurance())
            .append("medicalInsurance", getMedicalInsurance())
            .append("propertyFee", getPropertyFee())
            .append("deductTotal", getDeductTotal())
            .append("socialSecurityUnit", getSocialSecurityUnit())
            .append("individualIncomeTax", getIndividualIncomeTax())
            .append("paidWage", getPaidWage())
            .append("payDay", getPayDay())
            .append("payMonth", getPayMonth())
            .append("performanceId", getPerformanceId())
            .toString();
    }
}
