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/dal/mysql/attendance/HrmAttendanceRecordMapper.java | 33 +++++++++++++++++++++++++++++++++
1 files changed, 33 insertions(+), 0 deletions(-)
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/mysql/attendance/HrmAttendanceRecordMapper.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/mysql/attendance/HrmAttendanceRecordMapper.java
index 1c0d329..91dccb8 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/mysql/attendance/HrmAttendanceRecordMapper.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/mysql/attendance/HrmAttendanceRecordMapper.java
@@ -5,9 +5,12 @@
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceRecordPageReqVO;
import cn.iocoder.yudao.module.hrm.dal.dataobject.attendance.HrmAttendanceRecordDO;
+import cn.hutool.core.collection.CollUtil;
import org.apache.ibatis.annotations.Mapper;
import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
/**
@@ -29,6 +32,21 @@
.orderByDesc(HrmAttendanceRecordDO::getDate));
}
+/**
+ * 鍒嗛〉鏌ヨ锛堟敮鎸佹寜鍛樺伐ID闆嗗悎杩囨护锛岀敤浜庛�屽憳宸ュ鍚嶃�嶆ā绯婃悳绱級
+ */
+ default PageResult<HrmAttendanceRecordDO> selectPage(HrmAttendanceRecordPageReqVO reqVO, Collection<Long> userIds) {
+ return selectPage(reqVO, new LambdaQueryWrapperX<HrmAttendanceRecordDO>()
+ .eqIfPresent(HrmAttendanceRecordDO::getUserId, reqVO.getUserId())
+ .inIfPresent(HrmAttendanceRecordDO::getUserId, userIds)
+ .eqIfPresent(HrmAttendanceRecordDO::getDeptId, reqVO.getDeptId())
+ .geIfPresent(HrmAttendanceRecordDO::getDate, reqVO.getStartDate())
+ .leIfPresent(HrmAttendanceRecordDO::getDate, reqVO.getEndDate())
+ .eqIfPresent(HrmAttendanceRecordDO::getClockInType, reqVO.getClockInType())
+ .eqIfPresent(HrmAttendanceRecordDO::getClockOutType, reqVO.getClockOutType())
+ .orderByDesc(HrmAttendanceRecordDO::getDate));
+ }
+
default HrmAttendanceRecordDO selectByUserIdAndDate(Long userId, LocalDate date) {
return selectOne(new LambdaQueryWrapperX<HrmAttendanceRecordDO>()
.eq(HrmAttendanceRecordDO::getUserId, userId)
@@ -43,4 +61,19 @@
.orderByAsc(HrmAttendanceRecordDO::getDate));
}
+ /**
+ * 鎸夊憳宸ラ泦鍚� + 鏃ユ湡鍖洪棿鎵归噺鏌ヨ鎵撳崱璁板綍锛堢敤浜庢寜鏃ュ尯闂寸殑瀹炴椂鑰冨嫟缁熻锛�
+ */
+ default List<HrmAttendanceRecordDO> selectListByUserIdsAndDateBetween(Collection<Long> userIds,
+ LocalDate startDate, LocalDate endDate) {
+ if (CollUtil.isEmpty(userIds)) {
+ return new ArrayList<>();
+ }
+ return selectList(new LambdaQueryWrapperX<HrmAttendanceRecordDO>()
+ .in(HrmAttendanceRecordDO::getUserId, userIds)
+ .ge(HrmAttendanceRecordDO::getDate, startDate)
+ .le(HrmAttendanceRecordDO::getDate, endDate)
+ .orderByAsc(HrmAttendanceRecordDO::getDate));
+ }
+
}
\ No newline at end of file
--
Gitblit v1.9.3