diff --git a/evo-admin/src/main/java/com/evo/finance/processor/impl/LWTaxCalculationProcessor.java b/evo-admin/src/main/java/com/evo/finance/processor/impl/LWTaxCalculationProcessor.java index c3f90d9..ef26055 100644 --- a/evo-admin/src/main/java/com/evo/finance/processor/impl/LWTaxCalculationProcessor.java +++ b/evo-admin/src/main/java/com/evo/finance/processor/impl/LWTaxCalculationProcessor.java @@ -45,77 +45,19 @@ public class LWTaxCalculationProcessor implements CalculationProcessor { rzSalaryDetail.setTaxRate(new BigDecimal("0.20")); // 速算扣除数(速算扣除数跟税率同步) rzSalaryDetail.setSlowDownTheDeduction(DataUtils.DEFAULT_VALUE); -// rzSalaryDetail.setKjAmount(rzSalaryDetail.getSalaryBeforeTax().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP)); - } else if (rzSalaryDetail.getTaxableIncome().doubleValue() > 20000L && rzSalaryDetail.getTaxableIncome().doubleValue() <= 50000l) { // 此阶税率为百分之3,速减数为0 rzSalaryDetail.setTaxRate(new BigDecimal("0.3")); // 速算扣除数(速算扣除数跟税率同步) rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("2000")); -// rzSalaryDetail.setKjAmount(rzSalaryDetail.getSalaryBeforeTax().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP)); } else if (rzSalaryDetail.getTaxableIncome().doubleValue() > 50000l) { // 此阶税率为百分之3,速减数为0 rzSalaryDetail.setTaxRate(new BigDecimal("0.40")); // 速算扣除数(速算扣除数跟税率同步) rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("7000")); -// rzSalaryDetail.setKjAmount(rzSalaryDetail.getSalaryBeforeTax().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP)); } - - - // 判断应纳税所得额额度(额度不一样税率不一样) -// if (rzSalaryDetail.getSalaryBeforeTax().doubleValue() <= 800) { -// // 此阶税率为百分之3,速减数为0 -// rzSalaryDetail.setTaxRate(DataUtils.DEFAULT_VALUE); -// // 速算扣除数(速算扣除数跟税率同步) -// rzSalaryDetail.setSlowDownTheDeduction(DataUtils.DEFAULT_VALUE); -//// rzSalaryDetail.setKjAmount(new BigDecimal("800")); -// } else if (rzSalaryDetail.getSalaryBeforeTax().doubleValue() > 800l && rzSalaryDetail.getSalaryBeforeTax().doubleValue() <= 4000L) { -// // 此阶税率为百分之3,速减数为0 -// rzSalaryDetail.setTaxRate(new BigDecimal("0.20")); -// // 速算扣除数(速算扣除数跟税率同步) -// rzSalaryDetail.setSlowDownTheDeduction(DataUtils.DEFAULT_VALUE); -//// rzSalaryDetail.setKjAmount(new BigDecimal("800")); -//// rzSalaryDetail.setKjAmount(rzSalaryDetail.getSalaryBeforeTax().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP)); -// -// } else if (rzSalaryDetail.getSalaryBeforeTax().doubleValue() > 4000l && rzSalaryDetail.getSalaryBeforeTax().doubleValue() <= 20000L) { -// // 此阶税率为百分之3,速减数为0 -// rzSalaryDetail.setTaxRate(new BigDecimal("0.20")); -// // 速算扣除数(速算扣除数跟税率同步) -// rzSalaryDetail.setSlowDownTheDeduction(DataUtils.DEFAULT_VALUE); -//// rzSalaryDetail.setKjAmount(rzSalaryDetail.getSalaryBeforeTax().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP)); -// -// } else if (rzSalaryDetail.getSalaryBeforeTax().doubleValue() > 20000L && rzSalaryDetail.getSalaryBeforeTax().doubleValue() <= 50000l) { -// // 此阶税率为百分之3,速减数为0 -// rzSalaryDetail.setTaxRate(new BigDecimal("0.3")); -// // 速算扣除数(速算扣除数跟税率同步) -// rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("2000")); -//// rzSalaryDetail.setKjAmount(rzSalaryDetail.getSalaryBeforeTax().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP)); -// } else if (rzSalaryDetail.getSalaryBeforeTax().doubleValue() > 50000l) { -// // 此阶税率为百分之3,速减数为0 -// rzSalaryDetail.setTaxRate(new BigDecimal("0.40")); -// // 速算扣除数(速算扣除数跟税率同步) -// rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("7000")); -//// rzSalaryDetail.setKjAmount(rzSalaryDetail.getSalaryBeforeTax().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP)); -// } - - - // 判断税前工资是否大于5000,如果小于,则不在计算个税 -// if (rzSalaryDetail.getTaxableIncome().doubleValue() > 800.00){ -// // 本月应缴税额(本月应纳税所得额*税率-速减数-本年累计已预缴个税) -// rzSalaryDetail.setTaxPayable(rzSalaryDetail.getTaxableIncome().multiply(rzSalaryDetail.getTaxRate()).setScale(2, BigDecimal.ROUND_HALF_UP).subtract(rzSalaryDetail.getSlowDownTheDeduction()).subtract(detail.getAggregatePersonalIncomeTax())); -// if (rzSalaryDetail.getTaxPayable().doubleValue() <= 0) { -// rzSalaryDetail.setTaxPayable(new BigDecimal("0.00")); -// } -//// rzSalaryDetail.setTaxableIncome(rzSalaryDetail.getTotalWages().subtract(rzSalaryDetail.getKjAmount())); -// -// } else { -// // 应纳税所得额 -// rzSalaryDetail.setTaxableIncome(DataUtils.DEFAULT_VALUE); -// rzSalaryDetail.setTaxPayable(DataUtils.DEFAULT_VALUE); -// } - - rzSalaryDetail.setTaxPayable(rzSalaryDetail.getTaxableIncome().multiply(rzSalaryDetail.getTaxRate()).setScale(2, BigDecimal.ROUND_HALF_UP).subtract(rzSalaryDetail.getSlowDownTheDeduction()).subtract(detail.getAggregatePersonalIncomeTax())); - if (rzSalaryDetail.getTaxPayable().doubleValue() <= 0) { + rzSalaryDetail.setTaxPayable(rzSalaryDetail.getTaxableIncome().multiply(rzSalaryDetail.getTaxRate()).setScale(2, BigDecimal.ROUND_HALF_UP).subtract(rzSalaryDetail.getSlowDownTheDeduction())); + if (rzSalaryDetail.getTaxPayable().doubleValue() < 0) { rzSalaryDetail.setTaxPayable(new BigDecimal("0.00")); }