From fa3428b4bb32179a42d5618357c22fe2695716ae Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期三, 22 四月 2026 13:58:23 +0800
Subject: [PATCH] 修改全局的注入方式

---
 src/main/java/com/ruoyi/staff/service/impl/StaffSalaryMainServiceImpl.java |  103 +++++++++++++++++++++++++++++++--------------------
 1 files changed, 63 insertions(+), 40 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 f299b95..a6d4500 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffSalaryMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffSalaryMainServiceImpl.java
@@ -2,27 +2,30 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.mapper.AccountExpenseMapper;
+import com.ruoyi.account.pojo.AccountExpense;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.project.system.domain.SysUser;
-import com.ruoyi.project.system.domain.SysUserDept;
 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.StaffSalaryDetailMapper;
-import com.ruoyi.staff.pojo.SchemeApplicableStaff;
+import com.ruoyi.staff.mapper.StaffSalaryMainMapper;
+import com.ruoyi.staff.pojo.StaffLeave;
 import com.ruoyi.staff.pojo.StaffSalaryDetail;
 import com.ruoyi.staff.pojo.StaffSalaryMain;
-import com.ruoyi.staff.mapper.StaffSalaryMainMapper;
 import com.ruoyi.staff.service.StaffSalaryDetailService;
 import com.ruoyi.staff.service.StaffSalaryMainService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collectors;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -33,25 +36,16 @@
  * @since 2026-03-06 01:22:05
  */
 @Service
+@RequiredArgsConstructor
 public class StaffSalaryMainServiceImpl extends ServiceImpl<StaffSalaryMainMapper, StaffSalaryMain> implements StaffSalaryMainService {
 
-    @Autowired
-    private StaffSalaryMainMapper staffSalaryMainMapper;
-
-    @Autowired
-    private StaffSalaryDetailService staffSalaryDetailService;
-
-    @Autowired
-    private StaffSalaryDetailMapper staffSalaryDetailMapper;
-
-    @Autowired
-    private SchemeApplicableStaffServiceImpl schemeApplicableStaffService;
-
-    @Autowired
-    private SysUserDeptMapper sysUserDeptMapper;
-
-    @Autowired
-    private SysUserMapper sysUserMapper;
+    private final StaffSalaryMainMapper staffSalaryMainMapper;
+    private final StaffSalaryDetailService staffSalaryDetailService;
+    private final StaffSalaryDetailMapper staffSalaryDetailMapper;
+    private final SchemeApplicableStaffServiceImpl schemeApplicableStaffService;
+    private final SysUserDeptMapper sysUserDeptMapper;
+    private final StaffLeaveMapper staffLeaveMapper;
+    private final AccountExpenseMapper accountExpenseMapper;
 
     @Override
     public AjaxResult listPage(Page page, StaffSalaryMain staffSalaryMain) {
@@ -95,15 +89,32 @@
             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();
+            accountExpense.setBusinessType(3);
+            accountExpense.setExpenseMoney(staffSalaryMain.getTotalSalary());
+            accountExpense.setBusinessId(staffSalaryMain.getId());
+            accountExpense.setExpenseDate(new Date());
+            accountExpense.setExpenseMethod("2");
+            accountExpense.setExpenseType("1");
+            accountExpense.setExpenseDescribed(staffSalaryMain.getSalaryTitle());
+            accountExpense.setNote(staffSalaryMain.getRemark());
+            accountExpense.setInputUser(SecurityUtils.getLoginUser().getNickName());
+            accountExpense.setInputTime(new Date());
+            accountExpenseMapper.insert(accountExpense);
+        }
         return AjaxResult.success("淇敼鎴愬姛");
     }
 
@@ -118,18 +129,29 @@
     }
 
     @Override
-    public AjaxResult calculateSalary(List<Long> ids) {
-        if(CollectionUtils.isEmpty(ids)){
+    public AjaxResult calculateSalary(CalculateSalaryDto calculateSalaryDto) {
+        if(CollectionUtils.isEmpty(calculateSalaryDto.getIds())){
             return AjaxResult.error("鍙傛暟閿欒");
         }
-        List<Map<String, Object>> longs = setSchemeApplicableStaffUserInfo(ids); // 閫氳繃閮ㄩ棬ids鑾峰彇鐢ㄦ埛淇℃伅
+        List<Map<String, Object>> longs = setSchemeApplicableStaffUserInfo(calculateSalaryDto.getIds()); // 閫氳繃閮ㄩ棬ids鑾峰彇鐢ㄦ埛淇℃伅
         if(CollectionUtils.isEmpty(longs)){
             return AjaxResult.error("鏃犲憳宸�");
         }
+        List<Map<String, Object>> mapList = new ArrayList<>();
         for (Map<String, Object> id : longs) {
-            schemeApplicableStaffService.calculateByEmployeeId((Integer) id.get("id"),id);
+            // 鍒ゆ柇鍛樺伐鏄惁涓哄綋鏈堢鑱�
+            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) {
@@ -139,4 +161,5 @@
         // 閫氳繃閮ㄩ棬鑾峰彇浜哄憳id
         return sysUserDeptMapper.setSchemeApplicableStaffUserInfo(ids);
     }
+
 }

--
Gitblit v1.9.3