package cn.iocoder.yudao.module.mes.dal.mysql.em.alert;
|
|
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.em.alert.vo.MesEmAlertPageReqVO;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.em.alert.MesEmAlertDO;
|
import org.apache.ibatis.annotations.Mapper;
|
|
import java.time.LocalDate;
|
import java.util.List;
|
|
/**
|
* MES 能耗预警 Mapper
|
*
|
* @author 超级管理员
|
*/
|
@Mapper
|
public interface MesEmAlertMapper extends BaseMapperX<MesEmAlertDO> {
|
|
default PageResult<MesEmAlertDO> selectPage(MesEmAlertPageReqVO reqVO) {
|
return selectPage(reqVO, new LambdaQueryWrapperX<MesEmAlertDO>()
|
.likeIfPresent(MesEmAlertDO::getMeterName, reqVO.getMeterName())
|
.eqIfPresent(MesEmAlertDO::getEnergyType, reqVO.getEnergyType())
|
.eqIfPresent(MesEmAlertDO::getAlertType, reqVO.getAlertType())
|
.eqIfPresent(MesEmAlertDO::getAlertLevel, reqVO.getAlertLevel())
|
.eqIfPresent(MesEmAlertDO::getStatus, reqVO.getStatus())
|
.betweenIfPresent(MesEmAlertDO::getAlertDate, reqVO.getAlertDate())
|
.orderByDesc(MesEmAlertDO::getAlertDate)
|
.orderByDesc(MesEmAlertDO::getId));
|
}
|
|
default MesEmAlertDO selectByUnique(Long meterId, Integer alertType, LocalDate alertDate, Long objectId) {
|
return selectOne(new LambdaQueryWrapperX<MesEmAlertDO>()
|
.eq(MesEmAlertDO::getMeterId, meterId)
|
.eq(MesEmAlertDO::getAlertType, alertType)
|
.eq(MesEmAlertDO::getAlertDate, alertDate)
|
.eq(MesEmAlertDO::getObjectId, objectId));
|
}
|
|
default List<MesEmAlertDO> selectRecent(LocalDate begin, LocalDate end, int limit) {
|
return selectList(new LambdaQueryWrapperX<MesEmAlertDO>()
|
.ge(MesEmAlertDO::getAlertDate, begin)
|
.le(MesEmAlertDO::getAlertDate, end)
|
.orderByDesc(MesEmAlertDO::getAlertDate)
|
.orderByDesc(MesEmAlertDO::getId)
|
.last("LIMIT " + limit));
|
}
|
|
default Long selectPendingCount() {
|
return selectCount(new LambdaQueryWrapperX<MesEmAlertDO>()
|
.eq(MesEmAlertDO::getStatus, 0));
|
}
|
|
default Long selectCountByDateRange(LocalDate begin, LocalDate end) {
|
return selectCount(new LambdaQueryWrapperX<MesEmAlertDO>()
|
.between(MesEmAlertDO::getAlertDate, begin, end));
|
}
|
|
default int deleteByMeterIdAndDate(Long meterId, LocalDate alertDate) {
|
return delete(new LambdaQueryWrapperX<MesEmAlertDO>()
|
.eq(MesEmAlertDO::getMeterId, meterId)
|
.eq(MesEmAlertDO::getAlertDate, alertDate));
|
}
|
|
}
|