package cn.iocoder.yudao.module.mes.dal.mysql.safety;
|
|
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.mes.controller.admin.safety.vo.certificate.MesSafetyCertificatePageReqVO;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.safety.MesSafetyCertificateDO;
|
import org.apache.ibatis.annotations.Mapper;
|
|
import java.time.LocalDate;
|
import java.util.List;
|
|
/**
|
* 安全生产 - 安全资格证书 Mapper
|
*
|
* @author 超级管理员
|
*/
|
@Mapper
|
public interface MesSafetyCertificateMapper extends BaseMapperX<MesSafetyCertificateDO> {
|
|
default PageResult<MesSafetyCertificateDO> selectPage(MesSafetyCertificatePageReqVO reqVO) {
|
LambdaQueryWrapperX<MesSafetyCertificateDO> wrapper = new LambdaQueryWrapperX<MesSafetyCertificateDO>()
|
.eqIfPresent(MesSafetyCertificateDO::getUserId, reqVO.getUserId())
|
.eqIfPresent(MesSafetyCertificateDO::getCertType, reqVO.getCertType())
|
.likeIfPresent(MesSafetyCertificateDO::getCertNo, reqVO.getCertNo())
|
.eqIfPresent(MesSafetyCertificateDO::getStatus, reqVO.getStatus());
|
// 只看即将到期(含已过期):expireDate 在今天+30 之前
|
if (Boolean.TRUE.equals(reqVO.getExpiringSoon())) {
|
LocalDate today = LocalDate.now();
|
wrapper.isNotNull(MesSafetyCertificateDO::getExpireDate)
|
.le(MesSafetyCertificateDO::getExpireDate, today.plusDays(30));
|
}
|
wrapper.orderByAsc(MesSafetyCertificateDO::getExpireDate)
|
.orderByDesc(MesSafetyCertificateDO::getId);
|
return selectPage(reqVO, wrapper);
|
}
|
|
default MesSafetyCertificateDO selectByCertNo(String certNo) {
|
return selectOne(MesSafetyCertificateDO::getCertNo, certNo);
|
}
|
|
/**
|
* 统计有效但已过期的证书数量
|
*/
|
default Long selectCountExpired(LocalDate today) {
|
return selectCount(new LambdaQueryWrapperX<MesSafetyCertificateDO>()
|
.eq(MesSafetyCertificateDO::getStatus, MesSafetyCertificateDO.STATUS_VALID)
|
.isNotNull(MesSafetyCertificateDO::getExpireDate)
|
.lt(MesSafetyCertificateDO::getExpireDate, today));
|
}
|
|
default List<MesSafetyCertificateDO> selectAllList() {
|
return selectList(new LambdaQueryWrapperX<MesSafetyCertificateDO>()
|
.orderByAsc(MesSafetyCertificateDO::getExpireDate));
|
}
|
|
}
|