From 9010b5b3d735abc84c61a88eb2f1483c3acf440f Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期一, 19 十月 2026 17:12:16 +0800
Subject: [PATCH] feat: 添加员工工资明细中的请假、缺勤、迟到、早退次数及手动扣工资字段
---
src/main/java/com/ruoyi/staff/service/impl/SchemeApplicableStaffServiceImpl.java | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/ruoyi/staff/service/impl/SchemeApplicableStaffServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/SchemeApplicableStaffServiceImpl.java
index 60607ba..989af81 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/SchemeApplicableStaffServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/SchemeApplicableStaffServiceImpl.java
@@ -13,6 +13,7 @@
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;
@@ -50,6 +51,7 @@
private final SysDeptMapper sysDeptMapper;
private final StaffOnJobMapper staffOnJobMapper;
private final SalesLedgerProductionAccountingService salesLedgerProductionAccountingService;
+ private final SalaryStatServiceImpl salaryStatService;
@Override
@@ -213,7 +215,12 @@
.add(socialPersonal)
.add(socialSupplementAmount)
.add(otherDeduct);
- BigDecimal netSalary = grossSalary.subtract(deductSalary);
+ // 鎵e伐璧勶紙鎵嬪姩濉啓锛夛紝浠庡疄鍙戝伐璧勪腑鎵i櫎
+ 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());
@@ -232,7 +239,15 @@
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());
+ }
}
/**
--
Gitblit v1.9.3