package cn.iocoder.yudao.module.mes.dal.mysql.wm.productsales;
|
|
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.wm.productsales.MesWmProductSalesLineDO;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import org.apache.ibatis.annotations.Mapper;
|
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* MES 销售出库单行 Mapper
|
*
|
* @author 芋道源码
|
*/
|
@Mapper
|
public interface MesWmProductSalesLineMapper extends BaseMapperX<MesWmProductSalesLineDO> {
|
|
default List<MesWmProductSalesLineDO> selectListBySalesId(Long salesId) {
|
return selectList(MesWmProductSalesLineDO::getSalesId, salesId);
|
}
|
|
default void deleteBySalesId(Long salesId) {
|
delete(MesWmProductSalesLineDO::getSalesId, salesId);
|
}
|
|
default cn.iocoder.yudao.framework.common.pojo.PageResult<MesWmProductSalesLineDO> selectPage(
|
cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.line.MesWmProductSalesLinePageReqVO reqVO) {
|
return selectPage(reqVO, new cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX<MesWmProductSalesLineDO>()
|
.eqIfPresent(MesWmProductSalesLineDO::getSalesId, reqVO.getSalesId())
|
.inIfPresent(MesWmProductSalesLineDO::getSalesId, reqVO.getSalesIds())
|
.orderByDesc(MesWmProductSalesLineDO::getId));
|
}
|
|
/**
|
* 根据销售订单明细 ID 列表查询出库行,按 saleOrderItemId 分组返回批号
|
*/
|
default Map<Long, String> selectBatchCodesBySaleOrderItemIds(java.util.Collection<Long> saleOrderItemIds) {
|
if (saleOrderItemIds == null || saleOrderItemIds.isEmpty()) {
|
return java.util.Collections.emptyMap();
|
}
|
List<MesWmProductSalesLineDO> lines = selectList(new LambdaQueryWrapperX<MesWmProductSalesLineDO>()
|
.in(MesWmProductSalesLineDO::getSaleOrderItemId, saleOrderItemIds));
|
return lines.stream()
|
.filter(l -> l.getBatchCode() != null && !l.getBatchCode().isEmpty())
|
.collect(java.util.stream.Collectors.groupingBy(
|
MesWmProductSalesLineDO::getSaleOrderItemId,
|
java.util.LinkedHashMap::new,
|
java.util.stream.Collectors.collectingAndThen(
|
java.util.stream.Collectors.mapping(MesWmProductSalesLineDO::getBatchCode,
|
java.util.stream.Collectors.toSet()),
|
codes -> String.join("、", codes))));
|
}
|
|
default void updateQualityStatusByIds(List<Long> ids, Integer qualityStatus) {
|
update(new MesWmProductSalesLineDO().setQualityStatus(qualityStatus),
|
new LambdaUpdateWrapper<MesWmProductSalesLineDO>().in(MesWmProductSalesLineDO::getId, ids));
|
}
|
|
}
|