From 06cd1d3db43a8b32cb518f52f645eb6abb132bfb Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期一, 09 三月 2026 17:46:12 +0800
Subject: [PATCH] yys 优化员工工资计算逻辑
---
src/main/java/com/ruoyi/staff/service/impl/StaffSalaryMainServiceImpl.java | 36 ++++++++++++++++++++++++++++++++----
1 files changed, 32 insertions(+), 4 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..4179275 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;
@@ -52,6 +58,12 @@
@Autowired
private SysUserMapper sysUserMapper;
+
+ @Autowired
+ private StaffOnJobMapper staffOnJobMapper;
+
+ @Autowired
+ private AccountExpenseMapper accountExpenseMapper;
@Override
public AjaxResult listPage(Page page, StaffSalaryMain staffSalaryMain) {
@@ -104,6 +116,21 @@
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 +145,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 +166,5 @@
// 閫氳繃閮ㄩ棬鑾峰彇浜哄憳id
return sysUserDeptMapper.setSchemeApplicableStaffUserInfo(ids);
}
+
}
--
Gitblit v1.9.3