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/service/employee/HrmEmployeeServiceImpl.java | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
index c326a89..8e0ef94 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
@@ -325,11 +325,29 @@
@Override
public PageResult<HrmEmployeeDO> getEmployeePage(HrmEmployeePageReqVO pageReqVO) {
+ if (pageReqVO.getDeptId() != null) {
+ // 閫変腑閮ㄩ棬鏃讹紝杩炲甫鏌ヨ鍏舵墍鏈夊瓙閮ㄩ棬鐨勫憳宸ワ紙鍚嚜韬級
+ List<DeptRespDTO> childDepts = deptApi.getChildDeptList(pageReqVO.getDeptId());
+ Set<Long> deptIds = new LinkedHashSet<>();
+ deptIds.add(pageReqVO.getDeptId());
+ if (CollUtil.isNotEmpty(childDepts)) {
+ childDepts.forEach(dept -> deptIds.add(dept.getId()));
+ }
+ return employeeMapper.selectPageByDeptIds(pageReqVO, deptIds);
+ }
return employeeMapper.selectPage(pageReqVO);
}
@Override
public List<HrmEmployeeDO> getEmployeeList(Collection<Long> ids) {
+ // ids 涓� null 鏃惰〃绀烘煡璇㈠叏閮ㄥ憳宸ワ紙鑰冨嫟姹囨�汇�佽柂閰牳绠楃瓑鎵归噺鍦烘櫙渚濊禆姝よ涔夛級锛�
+ // 鏄惧紡浼犲叆绌洪泦鍚堟椂杩斿洖绌猴紝閬垮厤璇煡鍏ㄥ憳
+ if (ids == null) {
+ return employeeMapper.selectList(null);
+ }
+ if (ids.isEmpty()) {
+ return Collections.emptyList();
+ }
return employeeMapper.selectByIds(ids);
}
@@ -342,6 +360,14 @@
.filter(Objects::nonNull)
.collect(Collectors.toSet());
Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(deptIds);
+ // 濉厖宀椾綅鍚嶇О
+ Set<Long> postIds = list.stream()
+ .map(HrmEmployeeDO::getPostIds)
+ .filter(StrUtil::isNotBlank)
+ .flatMap(json -> JSONUtil.toList(json, Long.class).stream())
+ .collect(Collectors.toSet());
+ Map<Long, PostRespDTO> postMap = CollUtil.isEmpty(postIds)
+ ? Collections.emptyMap() : postApi.getPostMap(postIds);
return list.stream().map(emp -> {
HrmEmployeeSimpleRespVO vo = new HrmEmployeeSimpleRespVO();
vo.setId(emp.getId());
@@ -351,6 +377,12 @@
if (emp.getDeptId() != null && deptMap.containsKey(emp.getDeptId())) {
vo.setDeptName(deptMap.get(emp.getDeptId()).getName());
}
+ if (StrUtil.isNotBlank(emp.getPostIds())) {
+ vo.setPostName(JSONUtil.toList(emp.getPostIds(), Long.class).stream()
+ .filter(postMap::containsKey)
+ .map(id -> postMap.get(id).getName())
+ .collect(Collectors.joining(",")));
+ }
return vo;
}).collect(Collectors.toList());
}
--
Gitblit v1.9.3