From 06b9be2fcdd28813b9b2afedf52adb3492eba293 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 11 三月 2026 10:35:07 +0800
Subject: [PATCH] fix:同步(安全培训-筛选sql优化)

---
 src/main/java/com/ruoyi/staff/service/impl/StaffSalaryMainServiceImpl.java |   54 ++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 42 insertions(+), 12 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..c2d8519 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffSalaryMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffSalaryMainServiceImpl.java
@@ -2,14 +2,20 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+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.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.mapper.StaffSalaryMainMapper;
@@ -53,6 +59,12 @@
     @Autowired
     private SysUserMapper sysUserMapper;
 
+    @Autowired
+    private StaffOnJobMapper staffOnJobMapper;
+
+    @Autowired
+    private AccountExpenseMapper accountExpenseMapper;
+
     @Override
     public AjaxResult listPage(Page page, StaffSalaryMain staffSalaryMain) {
         LambdaQueryWrapper<StaffSalaryMain> staffSalaryMainLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -95,15 +107,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,16 +147,16 @@
     }
 
     @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("鏃犲憳宸�");
         }
         for (Map<String, Object> id : longs) {
-            schemeApplicableStaffService.calculateByEmployeeId((Integer) id.get("id"),id);
+            schemeApplicableStaffService.calculateByEmployeeId((Integer) id.get("id"),id,calculateSalaryDto.getDate());
         }
         return AjaxResult.success(longs);
     }
@@ -139,4 +168,5 @@
         // 閫氳繃閮ㄩ棬鑾峰彇浜哄憳id
         return sysUserDeptMapper.setSchemeApplicableStaffUserInfo(ids);
     }
+
 }

--
Gitblit v1.9.3