| | |
| | | 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 |
| | |
| | | .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)); |