liyong
9 天以前 88e384da863bb2f7324cb1e1474885df3b7cce91
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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.HrmAttendanceRecordPageReqVO;
import cn.iocoder.yudao.module.hrm.dal.dataobject.attendance.HrmAttendanceRecordDO;
import cn.iocoder.yudao.module.hrm.dal.dataobject.attendance.HrmAttendanceExceptionDO;
import jakarta.validation.Valid;
 
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
 
/**
 * 考勤记录 Service 接口
 *
 * @author 芋道源码
 */
public interface HrmAttendanceRecordService {
 
    /**
     * 获得考勤记录分页
     */
    PageResult<HrmAttendanceRecordDO> getAttendanceRecordPage(HrmAttendanceRecordPageReqVO pageReqVO);
 
    /**
     * 获得考勤记录
     */
    HrmAttendanceRecordDO getAttendanceRecord(Long id);
 
    /**
     * 获取员工指定日期范围的考勤记录
     */
    List<HrmAttendanceRecordDO> getAttendanceRecordListByUserIdAndDateBetween(Long userId, String startDate, String endDate);
 
    /**
     * 获取员工指定日期的考勤记录
     */
    HrmAttendanceRecordDO getAttendanceRecordByUserIdAndDate(Long userId, LocalDate date);
 
    /**
     * 打卡(上班打卡)
     *
     * @param userId 员工ID
     * @param clockTime 打卡时间
     * @param location 打卡地点
     * @return 考勤记录
     */
    HrmAttendanceRecordDO clockIn(Long userId, LocalDateTime clockTime, String location);
 
    /**
     * 打卡(下班打卡)
     *
     * @param userId 员工ID
     * @param clockTime 打卡时间
     * @param location 打卡地点
     * @return 考勤记录
     */
    HrmAttendanceRecordDO clockOut(Long userId, LocalDateTime clockTime, String location);
 
    /**
     * 补卡审批通过后更新考勤记录
     *
     * @param exception 考勤异常申请
     */
    void supplementClockIn(HrmAttendanceExceptionDO exception);
 
}