package cn.iocoder.yudao.module.mes.dal.mysql.wm.salesnotice; import cn.hutool.core.collection.CollUtil; 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.wm.salesnotice.vo.MesWmSalesNoticePageReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.salesnotice.MesWmSalesNoticeDO; import org.apache.ibatis.annotations.Mapper; import java.util.Collection; import java.util.List; /** * MES 发货通知单 Mapper */ @Mapper public interface MesWmSalesNoticeMapper extends BaseMapperX { default PageResult selectPage(MesWmSalesNoticePageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(MesWmSalesNoticeDO::getCode, reqVO.getCode()) .likeIfPresent(MesWmSalesNoticeDO::getName, reqVO.getName()) .likeIfPresent(MesWmSalesNoticeDO::getSaleOrderCode, reqVO.getSaleOrderCode()) .eqIfPresent(MesWmSalesNoticeDO::getClientId, reqVO.getClientId()) .eqIfPresent(MesWmSalesNoticeDO::getStatus, reqVO.getStatus()) .orderByDesc(MesWmSalesNoticeDO::getId)); } /** * 分页查询(带客户权限过滤) * * @param reqVO 查询条件 * @param permittedClientIds 有权限的客户 ID 列表(null 表示不限制) * @return 分页结果 */ default PageResult selectPage(MesWmSalesNoticePageReqVO reqVO, List permittedClientIds) { LambdaQueryWrapperX wrapper = new LambdaQueryWrapperX() .likeIfPresent(MesWmSalesNoticeDO::getCode, reqVO.getCode()) .likeIfPresent(MesWmSalesNoticeDO::getName, reqVO.getName()) .likeIfPresent(MesWmSalesNoticeDO::getSaleOrderCode, reqVO.getSaleOrderCode()) .eqIfPresent(MesWmSalesNoticeDO::getClientId, reqVO.getClientId()) .eqIfPresent(MesWmSalesNoticeDO::getStatus, reqVO.getStatus()) .orderByDesc(MesWmSalesNoticeDO::getId); // 客户权限过滤 if (permittedClientIds != null) { if (CollUtil.isEmpty(permittedClientIds)) { // 空列表表示没有任何权限,返回空结果 return PageResult.empty(); } wrapper.in(MesWmSalesNoticeDO::getClientId, permittedClientIds); } return selectPage(reqVO, wrapper); } default MesWmSalesNoticeDO selectByCode(String code) { return selectOne(MesWmSalesNoticeDO::getCode, code); } default MesWmSalesNoticeDO selectBySaleOrderId(Long saleOrderId) { return selectOne(MesWmSalesNoticeDO::getSaleOrderId, saleOrderId); } /** * 查询已存在发货通知单的销售订单 ID 列表 */ default List selectExistingSaleOrderIds(Collection saleOrderIds) { return selectObjs(new LambdaQueryWrapperX() .select(MesWmSalesNoticeDO::getSaleOrderId) .in(MesWmSalesNoticeDO::getSaleOrderId, saleOrderIds)); } }