云
2026-10-25 d54fbc9d4f8981fa0f7f613b33a28a8cd4f764ea
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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));
    }
 
}