package cn.iocoder.yudao.module.hrm.dal.mysql.attendance;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
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.dal.dataobject.attendance.HrmAttendanceRecordDO;
|
import org.apache.ibatis.annotations.Mapper;
|
|
import java.time.LocalDate;
|
import java.util.List;
|
|
/**
|
* 考勤打卡记录 Mapper
|
*
|
* @author 芋道源码
|
*/
|
@Mapper
|
public interface HrmAttendanceRecordMapper extends BaseMapperX<HrmAttendanceRecordDO> {
|
|
default PageResult<HrmAttendanceRecordDO> selectPage(HrmAttendanceRecordPageReqVO reqVO) {
|
return selectPage(reqVO, new LambdaQueryWrapperX<HrmAttendanceRecordDO>()
|
.eqIfPresent(HrmAttendanceRecordDO::getUserId, reqVO.getUserId())
|
.eqIfPresent(HrmAttendanceRecordDO::getDeptId, reqVO.getDeptId())
|
.geIfPresent(HrmAttendanceRecordDO::getDate, reqVO.getStartDate())
|
.leIfPresent(HrmAttendanceRecordDO::getDate, reqVO.getEndDate())
|
.eqIfPresent(HrmAttendanceRecordDO::getClockInType, reqVO.getClockInType())
|
.eqIfPresent(HrmAttendanceRecordDO::getClockOutType, reqVO.getClockOutType())
|
.orderByDesc(HrmAttendanceRecordDO::getDate));
|
}
|
|
default HrmAttendanceRecordDO selectByUserIdAndDate(Long userId, LocalDate date) {
|
return selectOne(new LambdaQueryWrapperX<HrmAttendanceRecordDO>()
|
.eq(HrmAttendanceRecordDO::getUserId, userId)
|
.eq(HrmAttendanceRecordDO::getDate, date));
|
}
|
|
default List<HrmAttendanceRecordDO> selectListByUserIdAndDateBetween(Long userId, LocalDate startDate, LocalDate endDate) {
|
return selectList(new LambdaQueryWrapperX<HrmAttendanceRecordDO>()
|
.eq(HrmAttendanceRecordDO::getUserId, userId)
|
.ge(HrmAttendanceRecordDO::getDate, startDate)
|
.le(HrmAttendanceRecordDO::getDate, endDate)
|
.orderByAsc(HrmAttendanceRecordDO::getDate));
|
}
|
|
}
|