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 { default PageResult selectPage(HrmAttendanceRecordPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .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() .eq(HrmAttendanceRecordDO::getUserId, userId) .eq(HrmAttendanceRecordDO::getDate, date)); } default List selectListByUserIdAndDateBetween(Long userId, LocalDate startDate, LocalDate endDate) { return selectList(new LambdaQueryWrapperX() .eq(HrmAttendanceRecordDO::getUserId, userId) .ge(HrmAttendanceRecordDO::getDate, startDate) .le(HrmAttendanceRecordDO::getDate, endDate) .orderByAsc(HrmAttendanceRecordDO::getDate)); } }