package cn.iocoder.yudao.module.mes.dal.mysql.em.quota;
|
|
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.quota.vo.MesEmQuotaPageReqVO;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.em.quota.MesEmQuotaDO;
|
import org.apache.ibatis.annotations.Mapper;
|
|
import java.util.List;
|
|
/**
|
* MES 能耗考核指标 Mapper
|
*
|
* @author 超级管理员
|
*/
|
@Mapper
|
public interface MesEmQuotaMapper extends BaseMapperX<MesEmQuotaDO> {
|
|
default PageResult<MesEmQuotaDO> selectPage(MesEmQuotaPageReqVO reqVO) {
|
return selectPage(reqVO, new LambdaQueryWrapperX<MesEmQuotaDO>()
|
.likeIfPresent(MesEmQuotaDO::getName, reqVO.getName())
|
.eqIfPresent(MesEmQuotaDO::getEnergyType, reqVO.getEnergyType())
|
.eqIfPresent(MesEmQuotaDO::getObjectType, reqVO.getObjectType())
|
.eqIfPresent(MesEmQuotaDO::getPeriodType, reqVO.getPeriodType())
|
.eqIfPresent(MesEmQuotaDO::getStatus, reqVO.getStatus())
|
.orderByDesc(MesEmQuotaDO::getId));
|
}
|
|
/**
|
* 查询某类能源下、与指定车间/产线/设备相关的启用指标
|
*/
|
default List<MesEmQuotaDO> selectListByObject(Integer energyType, Integer periodType,
|
Long workshopId, Long lineId, Long machineryId) {
|
return selectList(new LambdaQueryWrapperX<MesEmQuotaDO>()
|
.eq(MesEmQuotaDO::getEnergyType, energyType)
|
.eqIfPresent(MesEmQuotaDO::getPeriodType, periodType)
|
.eq(MesEmQuotaDO::getStatus, 1)
|
.and(wrapper -> wrapper
|
.eq(MesEmQuotaDO::getObjectType, 0)
|
.or(workshopId != null, w -> w.eq(MesEmQuotaDO::getObjectType, 1)
|
.eq(MesEmQuotaDO::getObjectId, workshopId))
|
.or(lineId != null, w -> w.eq(MesEmQuotaDO::getObjectType, 2)
|
.eq(MesEmQuotaDO::getObjectId, lineId))
|
.or(machineryId != null, w -> w.eq(MesEmQuotaDO::getObjectType, 3)
|
.eq(MesEmQuotaDO::getObjectId, machineryId)))
|
.orderByAsc(MesEmQuotaDO::getId));
|
}
|
|
}
|