package com.ruoyi.common.tax; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.spring.SpringUtils; import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.Collection; import java.util.List; /** * 劳务报酬个税计算规则 (可能不答公共用法,用前先看看是否适合) * * @author ls */ public class TaxtUtils { /** * 分隔符 */ public static final String SEPARATOR = ","; /** * 获取税金 * * @param money 报酬 (税前) */ public static String getTaxation(BigDecimal money) { //当X<=800时,个税T=0 BigDecimal taxMoney = new BigDecimal(0.0); //当800 800 && money.doubleValue() <= 4000) { BigDecimal subtract = money.subtract(new BigDecimal(800)); taxMoney = subtract.multiply(new BigDecimal(0.2)); } BigDecimal multiply = money.multiply(new BigDecimal(0.8)); // 当X>4000时 //(1)当X*(1-20%)<=20000时,个税T=X*(1-20%)*20% if (money.doubleValue() > 4000 && multiply.doubleValue() <= 20000) { taxMoney = multiply.multiply(new BigDecimal(0.8)); } //(2)当20000 20000 && multiply.doubleValue() <= 50000) { taxMoney = multiply.multiply(new BigDecimal(0.3)).subtract(new BigDecimal(2000)); } //X*(1-20%)>50000时,个税T=X*(1-20%)*40%-7000 if (multiply.doubleValue() > 50000) { taxMoney = multiply.multiply(new BigDecimal(0.4)).subtract(new BigDecimal(7000)); } DecimalFormat decimalFormat = new DecimalFormat("#.00"); String format = decimalFormat.format(taxMoney); return format; } public static void main(String[] args) { String taxation = getTaxation(new BigDecimal(70000)); System.out.println(taxation); } }