From c9d4ba37c1f681b12e24014013fa9a28734bad42 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期四, 20 八月 2026 17:00:02 +0800
Subject: [PATCH] feat 功能修正
---
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/mysql/attendance/HrmAttendanceRecordMapper.java | 19 +++++++++++++++++++
1 files changed, 19 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..4b7beb7 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
@@ -4,11 +4,14 @@
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
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.controller.admin.workhour.vo.HrmEmployeeWorkHourReqVO;
import cn.iocoder.yudao.module.hrm.dal.dataobject.attendance.HrmAttendanceRecordDO;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.ibatis.annotations.Mapper;
import java.time.LocalDate;
import java.util.List;
+import java.util.Map;
/**
* 鑰冨嫟鎵撳崱璁板綍 Mapper
@@ -29,6 +32,22 @@
.orderByDesc(HrmAttendanceRecordDO::getDate));
}
+ /**
+ * 鍛樺伐宸ユ椂缁熻锛堣�冨嫟鍙e緞锛夛細鎸夊憳宸ヨ仛鍚堝嚭鍕ゅぉ鏁般�佹甯稿伐鏃朵笌鍔犵彮宸ユ椂
+ */
+ default List<Map<String, Object>> selectWorkHourSummary(HrmEmployeeWorkHourReqVO reqVO) {
+ return selectMaps(new QueryWrapper<HrmAttendanceRecordDO>()
+ .select("user_id",
+ "COUNT(*) AS work_days",
+ "SUM(IFNULL(work_hours, 0)) AS work_hours",
+ "SUM(IFNULL(overtime_hours, 0)) AS overtime_hours")
+ .eq(reqVO.getUserId() != null, "user_id", reqVO.getUserId())
+ .eq(reqVO.getDeptId() != null, "dept_id", reqVO.getDeptId())
+ .ge(reqVO.getStartDate() != null, "date", reqVO.getStartDate())
+ .le(reqVO.getEndDate() != null, "date", reqVO.getEndDate())
+ .groupBy("user_id"));
+ }
+
default HrmAttendanceRecordDO selectByUserIdAndDate(Long userId, LocalDate date) {
return selectOne(new LambdaQueryWrapperX<HrmAttendanceRecordDO>()
.eq(HrmAttendanceRecordDO::getUserId, userId)
--
Gitblit v1.9.3