package cn.iocoder.yudao.module.mes.dal.mysql.wm.productsales; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesDetailDO; import org.apache.ibatis.annotations.Mapper; import java.util.List; /** * MES 销售出库明细 Mapper * * @author 超级管理员 */ @Mapper public interface MesWmProductSalesDetailMapper extends BaseMapperX { // 仅未取消且尚未完成的出库单占用袋码。旧整托明细也参与重叠判断。 @org.apache.ibatis.annotations.Select(""" SELECT d.* FROM mes_wm_product_sales_detail d JOIN mes_wm_product_sales s ON s.id = d.sales_id WHERE d.deleted = 0 AND s.deleted = 0 AND s.status IN (2, 10, 3) AND d.batch_code = #{batchCode} """) List selectPickingByBatchCode(String batchCode); @org.apache.ibatis.annotations.Select(""" SELECT d.* FROM mes_wm_product_sales_detail d JOIN mes_wm_product_sales s ON s.id = d.sales_id WHERE d.deleted = 0 AND s.deleted = 0 AND s.status IN (2, 10, 3) AND d.batch_code = #{batchCode} FOR UPDATE """) List selectPickingByBatchCodeForUpdate(String batchCode); default List selectListByLineId(Long lineId) { return selectList(MesWmProductSalesDetailDO::getLineId, lineId); } default List selectListBySalesId(Long salesId) { return selectList(MesWmProductSalesDetailDO::getSalesId, salesId); } default MesWmProductSalesDetailDO selectBySalesIdAndBagCodeId(Long salesId, Long bagCodeId) { return selectOne(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() .eq(MesWmProductSalesDetailDO::getSalesId, salesId) .eq(MesWmProductSalesDetailDO::getBagCodeId, bagCodeId)); } default MesWmProductSalesDetailDO selectBySalesIdAndPalletCodeId(Long salesId, Long palletCodeId) { return selectOne(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() .eq(MesWmProductSalesDetailDO::getSalesId, salesId) .eq(MesWmProductSalesDetailDO::getPalletCodeId, palletCodeId).orderByAsc(MesWmProductSalesDetailDO::getId).last("LIMIT 1")); } default void deleteByLineId(Long lineId) { delete(MesWmProductSalesDetailDO::getLineId, lineId); } default void deleteBySalesId(Long salesId) { delete(MesWmProductSalesDetailDO::getSalesId, salesId); } /** * 根据袋码编号查询最近的出库明细(供窜货稽查反查出库去向) */ default MesWmProductSalesDetailDO selectLatestByBagCodeId(Long bagCodeId) { return selectOne(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() .eq(MesWmProductSalesDetailDO::getBagCodeId, bagCodeId) .orderByDesc(MesWmProductSalesDetailDO::getId) .last("LIMIT 1")); } /** * 根据托盘码编号查询最近的出库明细(供窜货稽查反查出库去向) */ default MesWmProductSalesDetailDO selectLatestByPalletCodeId(Long palletCodeId) { return selectOne(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() .eq(MesWmProductSalesDetailDO::getPalletCodeId, palletCodeId) .orderByDesc(MesWmProductSalesDetailDO::getId) .last("LIMIT 1")); } }