diff --git a/evo-admin/src/main/java/com/evo/finance/processor/SalaryCalculationStrategyExchangeProcessor.java b/evo-admin/src/main/java/com/evo/finance/processor/SalaryCalculationStrategyExchangeProcessor.java index 19dffce..031191b 100644 --- a/evo-admin/src/main/java/com/evo/finance/processor/SalaryCalculationStrategyExchangeProcessor.java +++ b/evo-admin/src/main/java/com/evo/finance/processor/SalaryCalculationStrategyExchangeProcessor.java @@ -212,10 +212,6 @@ public interface SalaryCalculationStrategyExchangeProcessor { } } - - - - /*** * 开始计算薪资 */ @@ -226,23 +222,25 @@ public interface SalaryCalculationStrategyExchangeProcessor { //获取统计月份 - int curr_month = rzSalaryDetail.getMonth().getMonth(); + int curr_month = DateUtils.getMonth(rzSalaryDetail.getMonth()); //获取工资统计月份,查询上个月的纳税公司 得到年度免征额 RzSalaryDetail old_rzSalary = rzSalaryDetailMapper.selectRzSalaryDetailByStaffId(rzSalaryDetail.getStaffId()); BigDecimal annualExemptionAmount = new BigDecimal("5000.00"); - - if(curr_month == 12){ - annualExemptionAmount = new BigDecimal("5000.00"); - }else{ //判断员工为 新入职,公司纳税主题改变,同一主题超一年的,同一主题不超一年但跨年的 - if(StringUtils.isNull(old_rzSalary) || !old_rzSalary.getWbFlag().equals(sysStaff.getCompanyName()) - || (rzSalaryDetail.getMonth().getTime() - old_rzSalary.getMonth().getTime())/1000/60/60/24 > 365 - || (old_rzSalary.getMonth().getMonth() < 12 && old_rzSalary.getMonth().getMonth() > rzSalaryDetail.getMonth().getMonth())){ - annualExemptionAmount = new BigDecimal("5000.00"); + if(StringUtils.isNull(old_rzSalary) || !old_rzSalary.getWbFlag().equals(sysStaff.getCompanyName()) || curr_month == 12){ + //重置年度免征额 +// annualExemptionAmount = new BigDecimal("5000.00"); + //重置本年底累计已发 + detail.setTotalWages(DataUtils.DEFAULT_VALUE); + //重置本年度累计已缴纳 + detail.setAggregatePersonalIncomeTax(DataUtils.DEFAULT_VALUE); + //累计专项附加扣除 + detail.setSpecialDeduction(DataUtils.DEFAULT_VALUE); + }else{ - annualExemptionAmount = new BigDecimal("5000.00").add(old_rzSalary.getAnnualExemptionAmount()); + annualExemptionAmount = annualExemptionAmount.add(old_rzSalary.getAnnualExemptionAmount()); } - } +// } rzSalaryDetail.setAnnualExemptionAmount(DataUtils.findDefaultValue(ParamUtils.getSpecialExemptionAmount(sysStaff.getName()+"-"+sysStaff.getIdCard()), annualExemptionAmount)); @@ -340,24 +338,28 @@ public interface SalaryCalculationStrategyExchangeProcessor { throw new RuntimeException("生成员工考勤详情失败"); } //判断统计月缴费公司和上一次是否一个公司 - if(StringUtils.isNull(old_rzSalary) || old_rzSalary.getWbFlag().equals(sysStaff.getCompanyName())){ - // 把本年累计个税 - detail.setAggregatePersonalIncomeTax(rzSalaryDetail.getAggregatePersonalIncomeTax()); - // 把本年累计专项扣除保存到员工信息表中 - detail.setSpecialDeduction(detail.getSpecialDeduction().add(kouChu)); - // 把本年累计已发工资保存到员工信息表中 - detail.setTotalWages(rzSalaryDetail.getTotalWages()); - }else{ - // 把本年累计已缴个税保存到员工信息表中 - detail.setAggregatePersonalIncomeTax(rzSalaryDetail.getTaxPayable()); - // 把本年累计专项扣除保存到员工信息表中 - detail.setSpecialDeduction(kouChu); - // 把本年累计已发工资保存到员工信息表中 - detail.setTotalWages(rzSalaryDetail.getSalaryBeforeTax()); - } - if(sysStaffDetailMapper.updateSysStaffDetail(detail)< 0){ - throw new RuntimeException("更新员工详情信息异常"); - } + if(StringUtils.isNull(old_rzSalary) + || !old_rzSalary.getWbFlag().equals(sysStaff.getCompanyName()) + //判断12月, 是个税系统, 每年12月更新, 开始累计次年1月数据 + || curr_month == 12){ + // 把本年累计已缴个税保存到员工信息表中 + detail.setAggregatePersonalIncomeTax(rzSalaryDetail.getTaxPayable()); + // 把本年累计专项扣除保存到员工信息表中 + detail.setSpecialDeduction(kouChu); + // 把本年累计已发工资保存到员工信息表中 + detail.setTotalWages(rzSalaryDetail.getSalaryBeforeTax()); + + }else{ + // 把本年累计个税 + detail.setAggregatePersonalIncomeTax(rzSalaryDetail.getAggregatePersonalIncomeTax()); + // 把本年累计专项扣除保存到员工信息表中 + detail.setSpecialDeduction(detail.getSpecialDeduction().add(kouChu)); + // 把本年累计已发工资保存到员工信息表中 + detail.setTotalWages(rzSalaryDetail.getTotalWages()); + } + if(sysStaffDetailMapper.updateSysStaffDetail(detail)< 0){ + throw new RuntimeException("更新员工详情信息异常"); + } }