| | |
| | | import cn.iocoder.yudao.module.hrm.dal.dataobject.certificate.HrmCertificateDO; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | import java.time.LocalDate; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * HRM 证书资质 Mapper |
| | | * |
| | |
| | | @Mapper |
| | | public interface HrmCertificateMapper extends BaseMapperX<HrmCertificateDO> { |
| | | |
| | | /** |
| | | * 到期提醒天数 |
| | | */ |
| | | int REMIND_DAYS = 30; |
| | | |
| | | default PageResult<HrmCertificateDO> selectPage(HrmCertificatePageReqVO reqVO) { |
| | | return selectPage(reqVO, new LambdaQueryWrapperX<HrmCertificateDO>() |
| | | LambdaQueryWrapperX<HrmCertificateDO> query = new LambdaQueryWrapperX<HrmCertificateDO>() |
| | | .eqIfPresent(HrmCertificateDO::getEmployeeId, reqVO.getEmployeeId()) |
| | | .eqIfPresent(HrmCertificateDO::getCertType, reqVO.getCertType()) |
| | | .likeIfPresent(HrmCertificateDO::getCertName, reqVO.getCertName()) |
| | | .orderByDesc(HrmCertificateDO::getId)); |
| | | .likeIfPresent(HrmCertificateDO::getCertName, reqVO.getCertName()); |
| | | // 到期类型筛选(配合合规列表/待办提醒):1=即将到期,2=已过期 |
| | | if (reqVO.getExpiryType() != null) { |
| | | LocalDate today = LocalDate.now(); |
| | | if (reqVO.getExpiryType() == 1) { // 即将到期 |
| | | query.between(HrmCertificateDO::getExpireDate, today, today.plusDays(REMIND_DAYS)); |
| | | } else if (reqVO.getExpiryType() == 2) { // 已过期 |
| | | query.isNotNull(HrmCertificateDO::getExpireDate) |
| | | .lt(HrmCertificateDO::getExpireDate, today); |
| | | } |
| | | } |
| | | return selectPage(reqVO, query.orderByDesc(HrmCertificateDO::getId)); |
| | | } |
| | | |
| | | /** |
| | | * 查询有效期落在 [start, end] 之间的证书(到期提醒用) |
| | | * |
| | | * @param start 起始日期 |
| | | * @param end 截止日期 |
| | | * @return 即将到期证书列表 |
| | | */ |
| | | default List<HrmCertificateDO> selectListByExpireDateBetween(LocalDate start, LocalDate end) { |
| | | return selectList(new LambdaQueryWrapperX<HrmCertificateDO>() |
| | | .isNotNull(HrmCertificateDO::getExpireDate) |
| | | .between(HrmCertificateDO::getExpireDate, start, end)); |
| | | } |
| | | |
| | | } |