| | |
| | | import com.ruoyi.project.system.mapper.SysDeptMapper; |
| | | import com.ruoyi.project.system.mapper.SysUserMapper; |
| | | import com.ruoyi.staff.controller.TaxCalculator; |
| | | import com.ruoyi.staff.dto.SalaryStat; |
| | | import com.ruoyi.staff.mapper.SchemeApplicableStaffMapper; |
| | | import com.ruoyi.staff.mapper.SchemeInsuranceDetailMapper; |
| | | import com.ruoyi.staff.mapper.StaffOnJobMapper; |
| | |
| | | private final SysDeptMapper sysDeptMapper; |
| | | private final StaffOnJobMapper staffOnJobMapper; |
| | | private final SalesLedgerProductionAccountingService salesLedgerProductionAccountingService; |
| | | private final SalaryStatServiceImpl salaryStatService; |
| | | |
| | | |
| | | @Override |
| | |
| | | .add(socialPersonal) |
| | | .add(socialSupplementAmount) |
| | | .add(otherDeduct); |
| | | BigDecimal netSalary = grossSalary.subtract(deductSalary); |
| | | // 扣工资(手动填写),从实发工资中扣除 |
| | | BigDecimal manualDeduct = normalizeMoney(getBigDecimal(map, "manualDeduct")); |
| | | BigDecimal netSalary = grossSalary.subtract(deductSalary).subtract(manualDeduct); |
| | | |
| | | // 请假次数、缺勤次数、迟到次数、早退次数,请假原因自动带入备注(备注已填写时保留原备注) |
| | | SalaryStat salaryStat = salaryStatService.stat(staffId, staffOnJobDto.getStaffName(), date); |
| | | |
| | | if (!hasText(map, "staffName")) { |
| | | map.put("staffName", staffOnJobDto.getStaffName()); |
| | |
| | | map.put("grossSalary", grossSalary); |
| | | map.put("salaryTax", salaryTax); |
| | | map.put("deductSalary", deductSalary); |
| | | map.put("leaveCount", salaryStat.getLeaveCount()); |
| | | map.put("absenceCount", salaryStat.getAbsenceCount()); |
| | | map.put("lateCount", salaryStat.getLateCount()); |
| | | map.put("earlyCount", salaryStat.getEarlyCount()); |
| | | map.put("manualDeduct", manualDeduct); |
| | | map.put("netSalary", netSalary); |
| | | if (!hasText(map, "remark") && StringUtils.isNotEmpty(salaryStat.getLeaveReason())) { |
| | | map.put("remark", salaryStat.getLeaveReason()); |
| | | } |
| | | } |
| | | |
| | | /** |