From ef3cbc1c6882786e8218b08be3e52ea44587f03b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期日, 08 十一月 2026 09:45:42 +0800
Subject: [PATCH] feat(hrm): 请假批量导入、加班代申请人、批量排班与节假日区间联动
---
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryCalculationController.java | 30 ++++++++++++++++++++++++++++++
1 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryCalculationController.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryCalculationController.java
index b90e2bc..59a6c5d 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryCalculationController.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryCalculationController.java
@@ -1,6 +1,8 @@
package cn.iocoder.yudao.module.hrm.controller.admin.salary;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
@@ -15,7 +17,9 @@
import cn.iocoder.yudao.module.hrm.service.employee.HrmEmployeeService;
import cn.iocoder.yudao.module.hrm.service.salary.HrmSalaryCalculationService;
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
+import cn.iocoder.yudao.module.system.api.dept.PostApi;
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
+import cn.iocoder.yudao.module.system.api.dept.dto.PostRespDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -45,6 +49,8 @@
private HrmEmployeeService employeeService;
@Resource
private DeptApi deptApi;
+ @Resource
+ private PostApi postApi;
@GetMapping("/page")
@Operation(summary = "鑾峰緱钖叕鏍哥畻鍒嗛〉")
@@ -84,11 +90,22 @@
.collect(Collectors.toSet());
Map<Long, DeptRespDTO> deptMap = CollUtil.isEmpty(deptIds) ? Collections.emptyMap() : deptApi.getDeptMap(deptIds);
+ // 鎵归噺鑾峰彇宀椾綅淇℃伅锛堝憳宸ヨ〃浠� JSON 鏁扮粍瀛楃涓蹭繚瀛樺矖浣� ID锛�
+ Set<Long> postIds = new HashSet<>();
+ for (HrmEmployeeDO employee : employeeMap.values()) {
+ if (StrUtil.isNotBlank(employee.getPostIds())) {
+ postIds.addAll(JSONUtil.toList(employee.getPostIds(), Long.class));
+ }
+ }
+ Map<Long, PostRespDTO> postMap = CollUtil.isEmpty(postIds) ? Collections.emptyMap() : postApi.getPostMap(postIds);
+
// 濉厖淇℃伅
for (HrmSalaryCalculationRespVO respVO : respList) {
HrmEmployeeDO employee = employeeMap.get(respVO.getUserId());
if (employee != null) {
respVO.setUserName(employee.getName());
+ respVO.setHireDate(employee.getHireDate());
+ respVO.setPostName(resolvePostName(employee, postMap));
}
DeptRespDTO dept = deptMap.get(respVO.getDeptId());
if (dept != null) {
@@ -97,6 +114,19 @@
}
}
+ /**
+ * 瑙f瀽鍛樺伐宀椾綅鍚嶇О锛堝涓矖浣嶇敤閫楀彿杩炴帴锛�
+ */
+ private String resolvePostName(HrmEmployeeDO employee, Map<Long, PostRespDTO> postMap) {
+ if (StrUtil.isBlank(employee.getPostIds()) || CollUtil.isEmpty(postMap)) {
+ return null;
+ }
+ return JSONUtil.toList(employee.getPostIds(), Long.class).stream()
+ .filter(postMap::containsKey)
+ .map(id -> postMap.get(id).getName())
+ .collect(Collectors.joining(","));
+ }
+
@GetMapping("/get")
@Operation(summary = "鑾峰緱钖叕鏍哥畻")
@Parameter(name = "id", description = "鏍哥畻ID", required = true)
--
Gitblit v1.9.3