liu
12 小时以前 690b713454828f34f901bc1e3a5f7bcc35a31b30
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceRecordService.java
@@ -1,6 +1,7 @@
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.HrmAttendanceClockReqVO;
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceRecordPageReqVO;
import cn.iocoder.yudao.module.hrm.dal.dataobject.attendance.HrmAttendanceRecordDO;
import cn.iocoder.yudao.module.hrm.dal.dataobject.attendance.HrmAttendanceExceptionDO;
@@ -13,7 +14,7 @@
/**
 * 考勤记录 Service 接口
 *
 * @author 芋道源码
 * @author 超级管理员
 */
public interface HrmAttendanceRecordService {
@@ -37,25 +38,35 @@
     */
    HrmAttendanceRecordDO getAttendanceRecordByUserIdAndDate(Long userId, LocalDate date);
    /** 创建导入的考勤记录 */
    void createImportedRecord(HrmAttendanceRecordDO record);
    /** 更新导入的考勤记录 */
    void updateImportedRecord(HrmAttendanceRecordDO record);
    /**
     * 打卡(上班打卡)
     *
     * @param userId 员工ID
     * @param clockTime 打卡时间
     * @param location 打卡地点
     * @return 考勤记录
     * @param reqVO 原始定位信息(WGS84)
     * @param legacyLocation 旧版地点文本,仅在未启用位置限制时兼容使用
     * @return 打卡记录、规则和距离
     */
    HrmAttendanceRecordDO clockIn(Long userId, LocalDateTime clockTime, String location);
    HrmAttendanceClockResult clockIn(Long userId, LocalDateTime clockTime,
                                     HrmAttendanceClockReqVO reqVO, String legacyLocation);
    /**
     * 打卡(下班打卡)
     *
     * @param userId 员工ID
     * @param clockTime 打卡时间
     * @param location 打卡地点
     * @return 考勤记录
     * @param reqVO 原始定位信息(WGS84)
     * @param legacyLocation 旧版地点文本,仅在未启用位置限制时兼容使用
     * @return 打卡记录、规则和距离
     */
    HrmAttendanceRecordDO clockOut(Long userId, LocalDateTime clockTime, String location);
    HrmAttendanceClockResult clockOut(Long userId, LocalDateTime clockTime,
                                      HrmAttendanceClockReqVO reqVO, String legacyLocation);
    /**
     * 补卡审批通过后更新考勤记录
@@ -64,4 +75,14 @@
     */
    void supplementClockIn(HrmAttendanceExceptionDO exception);
}
    /**
     * 获得当前登录人的考勤状态(App 打卡页使用)
     *
     * @param loginUserId 登录用户ID(系统用户,非员工ID)
     * @param date        考勤日期,为空时取服务器当天
     * @return 我的考勤状态
     */
    cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceMyStatusRespVO
    getMyStatus(Long loginUserId, LocalDate date);
}