| | |
| | | calculation.setConfirmTime(exist.getConfirmTime()); |
| | | calculation.setConfirmUserId(exist.getConfirmUserId()); |
| | | calculation.setPaymentTime(exist.getPaymentTime()); |
| | | // 金额字段为 null 时统一按 0 处理:MyBatis-Plus 的 updateById 默认忽略 null, |
| | | // 否则会出现「实发工资按 0 计算、但明细仍保留旧值」的不一致 |
| | | calculation.setBaseSalary(nvl(calculation.getBaseSalary())); |
| | | calculation.setPerformanceSalary(nvl(calculation.getPerformanceSalary())); |
| | | calculation.setOvertimePay(nvl(calculation.getOvertimePay())); |
| | | calculation.setMealAllowance(nvl(calculation.getMealAllowance())); |
| | | calculation.setTransportAllowance(nvl(calculation.getTransportAllowance())); |
| | | calculation.setOtherAllowance(nvl(calculation.getOtherAllowance())); |
| | | calculation.setSocialSecurityDeduction(nvl(calculation.getSocialSecurityDeduction())); |
| | | calculation.setHousingFundDeduction(nvl(calculation.getHousingFundDeduction())); |
| | | calculation.setTaxDeduction(nvl(calculation.getTaxDeduction())); |
| | | calculation.setOtherDeduction(nvl(calculation.getOtherDeduction())); |
| | | calculation.setLeaveDeduction(nvl(calculation.getLeaveDeduction())); |
| | | // 实发工资由后端重算,避免前端传入值与明细不一致 |
| | | calculation.setActualSalary(calcActualSalary(calculation)); |
| | | salaryCalculationMapper.updateById(calculation); |