package cn.iocoder.yudao.module.mes.dal.mysql.dv.spare; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.mes.dal.dataobject.dv.spare.MesDvSparePartDO; import cn.iocoder.yudao.module.mes.controller.admin.dv.spare.vo.MesDvSparePageReqVO; import org.apache.ibatis.annotations.Mapper; @Mapper public interface MesDvSparePartMapper extends BaseMapperX { default MesDvSparePartDO lock(Long id) { return selectOne(new LambdaQueryWrapperX().eq(MesDvSparePartDO::getId,id).last("FOR UPDATE")); } default PageResult page(MesDvSparePageReqVO req) { return selectPage(req,new LambdaQueryWrapperX() .eqIfPresent(MesDvSparePartDO::getCode,req.getCode()) .likeIfPresent(MesDvSparePartDO::getName,req.getName()) .eqIfPresent(MesDvSparePartDO::getStatus,req.getStatus()) .apply(Boolean.TRUE.equals(req.getShortageOnly()),"stock_quantity < safety_quantity") .orderByDesc(MesDvSparePartDO::getId)); } }