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);
|
|
}
|