package cn.iocoder.yudao.module.mes.dal.mysql.pro.scan; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.mes.dal.dataobject.pro.scan.MesProScanEventDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.mes.controller.admin.pro.scan.vo.MesProScanEventPageReqVO; import org.apache.ibatis.annotations.Mapper; @Mapper public interface MesProScanEventMapper extends BaseMapperX { default MesProScanEventDO selectByEventIdForUpdate(String eventId) { return selectOne(new LambdaQueryWrapperX() .eq(MesProScanEventDO::getEventId, eventId).last("FOR UPDATE")); } default PageResult selectPage(MesProScanEventPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(MesProScanEventDO::getEventId, reqVO.getEventId()) .likeIfPresent(MesProScanEventDO::getBagCode, reqVO.getBagCode()) .likeIfPresent(MesProScanEventDO::getBatchCode, reqVO.getBatchCode()) .eqIfPresent(MesProScanEventDO::getDeviceCode, reqVO.getDeviceCode()) .eqIfPresent(MesProScanEventDO::getStatus, reqVO.getStatus()) .eqIfPresent(MesProScanEventDO::getErrorCode, reqVO.getErrorCode()) .orderByDesc(MesProScanEventDO::getEventTime)); } default MesProScanEventDO selectLatest(String deviceCode) { return selectOne(new LambdaQueryWrapperX() .eqIfPresent(MesProScanEventDO::getDeviceCode, deviceCode) .orderByDesc(MesProScanEventDO::getEventTime).last("LIMIT 1")); } }