package cn.iocoder.yudao.module.hrm.service.salary;
|
|
import cn.iocoder.yudao.module.hrm.dal.dataobject.salary.HrmSocialSecurityConfigDO;
|
|
import java.math.BigDecimal;
|
import java.time.LocalDate;
|
|
/**
|
* 薪酬扣除计算 Service 接口
|
*
|
* @author 芋道源码
|
*/
|
public interface HrmDeductionService {
|
|
/**
|
* 计算社保扣除(个人部分)
|
*
|
* @param socialSecurityBase 社保基数
|
* @param effectiveDate 生效日期
|
* @return 社保扣除金额
|
*/
|
BigDecimal calculateSocialSecurityDeduction(BigDecimal socialSecurityBase, LocalDate effectiveDate);
|
|
/**
|
* 计算公积金扣除(个人部分)
|
*
|
* @param housingFundBase 公积金基数
|
* @param effectiveDate 生效日期
|
* @return 公积金扣除金额
|
*/
|
BigDecimal calculateHousingFundDeduction(BigDecimal housingFundBase, LocalDate effectiveDate);
|
|
/**
|
* 计算个税扣除
|
*
|
* @param taxableIncome 应纳税所得额(月收入 - 社保公积金 - 专项扣除 - 5000起征点)
|
* @param effectiveDate 生效日期
|
* @return 个税扣除金额
|
*/
|
BigDecimal calculateTaxDeduction(BigDecimal taxableIncome, LocalDate effectiveDate);
|
|
/**
|
* 获取最新的社保公积金配置
|
*
|
* @param effectiveDate 生效日期
|
* @return 社保公积金配置
|
*/
|
HrmSocialSecurityConfigDO getLatestSocialSecurityConfig(LocalDate effectiveDate);
|
|
}
|