From 2f16c2e5a23587005e9ad5651f1807e618d999b4 Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期五, 06 十一月 2026 09:53:06 +0800
Subject: [PATCH] fix(hrm): 考勤记录支持员工姓名搜索,并全量核对两个模块的所有搜索条件
---
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceRecordServiceImpl.java | 30 ++++++++++++++++++++++++++++--
1 files changed, 28 insertions(+), 2 deletions(-)
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceRecordServiceImpl.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceRecordServiceImpl.java
index 976f8e1..c5bd2c8 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceRecordServiceImpl.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceRecordServiceImpl.java
@@ -34,6 +34,8 @@
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;
+import java.util.stream.Collectors;
+import java.util.Set;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.hrm.enums.ErrorCodeConstants.*;
@@ -60,7 +62,18 @@
@Override
public PageResult<HrmAttendanceRecordDO> getAttendanceRecordPage(HrmAttendanceRecordPageReqVO pageReqVO) {
- return attendanceRecordMapper.selectPage(pageReqVO);
+ // 鍛樺伐濮撳悕妯$硦鎼滅储锛氬厛鎸夊鍚嶆煡鍑哄憳宸D闆嗗悎锛屽啀鎸夐泦鍚堣繃婊�
+ // 锛坔rm_attendance_record.user_id 瀛樼殑鏄� hrm_employee.id锛�
+ Set<Long> nameMatchedIds = null;
+ if (StrUtil.isNotBlank(pageReqVO.getUserName())) {
+ List<HrmEmployeeDO> matched = employeeService.getEmployeeListByNameLike(pageReqVO.getUserName().trim());
+ nameMatchedIds = matched.stream().map(HrmEmployeeDO::getId).collect(Collectors.toSet());
+ if (nameMatchedIds.isEmpty()) {
+ // 濮撳悕鎼滀笉鍒颁汉鏃剁洿鎺ヨ繑鍥炵┖锛岄伩鍏嶉��鍖栨垚鏌ュ叏閮�
+ return PageResult.empty();
+ }
+ }
+ return attendanceRecordMapper.selectPage(pageReqVO, nameMatchedIds);
}
@Override
@@ -94,9 +107,22 @@
}
/**
- * 鎸夎�冨嫟瑙勫垯閲嶇畻涓婁笅鐝墦鍗$被鍨嬶紙姝e父/杩熷埌/鏃╅��锛夛紝涓庢墦鍗¢�昏緫淇濇寔涓�鑷�
+ * 鎸夎�冨嫟瑙勫垯閲嶇畻涓婁笅鐝墦鍗$被鍨嬶紙姝e父/杩熷埌/鏃╅��/缂哄崱锛夛紝涓庢墦鍗¢�昏緫淇濇寔涓�鑷�
+ *
+ * <p>缂哄崱鏍囪涓嶄緷璧栬�冨嫟瑙勫垯锛氬彧瑕佹煇涓�渚ф病鏈夋墦鍗℃椂闂村氨鏄己鍗°��
+ * 鍘熷疄鐜板彧鍦ㄣ�岃渚ф湁鎵撳崱鏃堕棿銆嶆椂鎵嶈缃被鍨嬶紝瀵艰嚧銆屽彧鎵撲笂鐝崱銆佹病鎵撲笅鐝崱銆嶇殑璁板綍
+ * clockOutType 涓�鐩存槸 null锛涜�岃�冨嫟缁熻鍙 MISSING 绫诲瀷锛�
+ * 浜庢槸缂哄崱娆℃暟姘歌繙缁熻涓� 0锛堝鎴峰弽棣堛�岀己鍗℃暟鎹粺璁′笉瀵广�佹病鍜岃�冨嫟璁板綍鑱斿姩銆嶏級銆�
*/
private void fillClockTypes(HrmAttendanceRecordDO record) {
+ // 1. 缂哄崱浼樺厛锛氭煇涓�渚ф病鏈夋墦鍗℃椂闂村嵆涓虹己鍗★紝涓嶄緷璧栭儴闂ㄤ笌鑰冨嫟瑙勫垯
+ if (record.getClockInTime() == null) {
+ record.setClockInType(HrmAttendanceClockTypeEnum.MISSING.getType());
+ }
+ if (record.getClockOutTime() == null) {
+ record.setClockOutType(HrmAttendanceClockTypeEnum.MISSING.getType());
+ }
+
if (record.getDeptId() == null) {
return;
}
--
Gitblit v1.9.3