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<MesWmSalesNoticeDO> {
|
|
default PageResult<MesWmSalesNoticeDO> selectPage(MesWmSalesNoticePageReqVO reqVO) {
|
return selectPage(reqVO, new LambdaQueryWrapperX<MesWmSalesNoticeDO>()
|
.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<MesWmSalesNoticeDO> selectPage(MesWmSalesNoticePageReqVO reqVO, List<Long> permittedClientIds) {
|
LambdaQueryWrapperX<MesWmSalesNoticeDO> wrapper = new LambdaQueryWrapperX<MesWmSalesNoticeDO>()
|
.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<Long> selectExistingSaleOrderIds(Collection<Long> saleOrderIds) {
|
return selectObjs(new LambdaQueryWrapperX<MesWmSalesNoticeDO>()
|
.select(MesWmSalesNoticeDO::getSaleOrderId)
|
.in(MesWmSalesNoticeDO::getSaleOrderId, saleOrderIds));
|
}
|
|
}
|