云
2026-10-25 d54fbc9d4f8981fa0f7f613b33a28a8cd4f764ea
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceRecordService.java
@@ -1,7 +1,9 @@
package cn.iocoder.yudao.module.hrm.service.attendance;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceMyStatusRespVO;
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceRecordPageReqVO;
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceClockReqVO;
import cn.iocoder.yudao.module.hrm.dal.dataobject.attendance.HrmAttendanceRecordDO;
import cn.iocoder.yudao.module.hrm.dal.dataobject.attendance.HrmAttendanceExceptionDO;
import jakarta.validation.Valid;
@@ -37,6 +39,15 @@
     */
    HrmAttendanceRecordDO getAttendanceRecordByUserIdAndDate(Long userId, LocalDate date);
    /**
     * 获得当前登录人的考勤状态:考勤规则 + 指定日期的打卡状态
     *
     * @param loginUserId 登录用户ID(系统用户ID,不是员工ID)
     * @param date        考勤日期,为空时取服务器当天
     * @return 我的考勤状态
     */
    HrmAttendanceMyStatusRespVO getMyStatus(Long loginUserId, LocalDate date);
    /** 创建导入的考勤记录 */
    void createImportedRecord(HrmAttendanceRecordDO record);
@@ -51,7 +62,8 @@
     * @param location 打卡地点
     * @return 考勤记录
     */
    HrmAttendanceRecordDO clockIn(Long userId, LocalDateTime clockTime, String location);
    HrmAttendanceClockResult clockIn(Long userId, LocalDateTime clockTime,
                                    HrmAttendanceClockReqVO reqVO, String legacyLocation);
    /**
     * 打卡(下班打卡)
@@ -61,7 +73,8 @@
     * @param location 打卡地点
     * @return 考勤记录
     */
    HrmAttendanceRecordDO clockOut(Long userId, LocalDateTime clockTime, String location);
    HrmAttendanceClockResult clockOut(Long userId, LocalDateTime clockTime,
                                     HrmAttendanceClockReqVO reqVO, String legacyLocation);
    /**
     * 补卡审批通过后更新考勤记录
@@ -77,4 +90,4 @@
     */
    void recordOvertime(HrmAttendanceExceptionDO exception);
}
}