From cf1f0bec9c3750f614b04eba843fda9e1cab9b67 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期四, 12 三月 2026 13:21:49 +0800
Subject: [PATCH] yys  员工发工资增加离职和当月离职条件

---
 src/main/java/com/ruoyi/staff/service/impl/StaffSalaryMainServiceImpl.java |   40 +++++++++++++++++++++++++++-------------
 1 files changed, 27 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/ruoyi/staff/service/impl/StaffSalaryMainServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/StaffSalaryMainServiceImpl.java
index 4179275..26a34c1 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffSalaryMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffSalaryMainServiceImpl.java
@@ -12,12 +12,10 @@
 import com.ruoyi.project.system.mapper.SysUserDeptMapper;
 import com.ruoyi.project.system.mapper.SysUserMapper;
 import com.ruoyi.staff.dto.CalculateSalaryDto;
+import com.ruoyi.staff.mapper.StaffLeaveMapper;
 import com.ruoyi.staff.mapper.StaffOnJobMapper;
 import com.ruoyi.staff.mapper.StaffSalaryDetailMapper;
-import com.ruoyi.staff.pojo.SchemeApplicableStaff;
-import com.ruoyi.staff.pojo.StaffOnJob;
-import com.ruoyi.staff.pojo.StaffSalaryDetail;
-import com.ruoyi.staff.pojo.StaffSalaryMain;
+import com.ruoyi.staff.pojo.*;
 import com.ruoyi.staff.mapper.StaffSalaryMainMapper;
 import com.ruoyi.staff.service.StaffSalaryDetailService;
 import com.ruoyi.staff.service.StaffSalaryMainService;
@@ -61,6 +59,9 @@
 
     @Autowired
     private StaffOnJobMapper staffOnJobMapper;
+
+    @Autowired
+    private StaffLeaveMapper staffLeaveMapper;
 
     @Autowired
     private AccountExpenseMapper accountExpenseMapper;
@@ -107,15 +108,17 @@
             return AjaxResult.error("鍙傛暟閿欒");
         }
         // 寰呭鏍镐笉鍙紪杈�
-        if(staffSalaryMain1.getStatus() > 2){
-            return AjaxResult.error("寰呭鏍镐笉鍙紪杈�");
-        }
+//        if(staffSalaryMain1.getStatus() > 3){
+//            return AjaxResult.error("寰呭鏍镐笉鍙紪杈�");
+//        }
         staffSalaryMainMapper.updateById(staffSalaryMain);
-        staffSalaryDetailMapper.delete(new LambdaQueryWrapper<StaffSalaryDetail>().eq(StaffSalaryDetail::getMainId, staffSalaryMain.getId()));
-        staffSalaryMain.getStaffSalaryDetailList().forEach(detail -> {
-            detail.setMainId(staffSalaryMain.getId());
-        });
-        staffSalaryDetailService.saveBatch(staffSalaryMain.getStaffSalaryDetailList());
+        if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(staffSalaryMain.getStaffSalaryDetailList())){
+            staffSalaryDetailMapper.delete(new LambdaQueryWrapper<StaffSalaryDetail>().eq(StaffSalaryDetail::getMainId, staffSalaryMain.getId()));
+            staffSalaryMain.getStaffSalaryDetailList().forEach(detail -> {
+                detail.setMainId(staffSalaryMain.getId());
+            });
+            staffSalaryDetailService.saveBatch(staffSalaryMain.getStaffSalaryDetailList());
+        }
         // 鍜岃储鍔¤仈鍔紝鏂板鏀嚭
         if(staffSalaryMain.getStatus().equals(5)){
             AccountExpense accountExpense = new AccountExpense();
@@ -153,10 +156,21 @@
         if(CollectionUtils.isEmpty(longs)){
             return AjaxResult.error("鏃犲憳宸�");
         }
+        List<Map<String, Object>> mapList = new ArrayList<>();
         for (Map<String, Object> id : longs) {
+            // 鍒ゆ柇鍛樺伐鏄惁涓哄綋鏈堢鑱�
+            if((Integer) id.get("staffState") == 0){
+                StaffLeave id1 = staffLeaveMapper.selectOne(new LambdaQueryWrapper<StaffLeave>()
+                        .eq(StaffLeave::getStaffOnJobId, id.get("id"))
+                        .like(StaffLeave::getLeaveDate, calculateSalaryDto.getDate()));
+                if(id1 == null){
+                    continue;
+                }
+            }
             schemeApplicableStaffService.calculateByEmployeeId((Integer) id.get("id"),id,calculateSalaryDto.getDate());
+            mapList.add(id);
         }
-        return AjaxResult.success(longs);
+        return AjaxResult.success(mapList);
     }
 
     public List<Map<String, Object>> setSchemeApplicableStaffUserInfo(List<Long> ids) {

--
Gitblit v1.9.3