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 org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Select;
|
|
import java.util.List;
|
|
/**
|
* MES 销售出库明细 Mapper
|
*
|
* @author 超级管理员
|
*/
|
@Mapper
|
public interface MesWmProductSalesDetailMapper extends BaseMapperX<MesWmProductSalesDetailDO> {
|
|
/** 只认可该订单已完成出库、且明确关联销售明细的实际拣货批次。 */
|
@Select("SELECT COUNT(*) FROM mes_wm_product_sales_detail d "
|
+ "JOIN mes_wm_product_sales s ON s.id = d.sales_id AND s.deleted = 0 "
|
+ "JOIN mes_wm_product_sales_line l ON l.id = d.line_id AND l.sales_id = s.id AND l.deleted = 0 "
|
+ "JOIN erp_sale_order_items i ON i.id = l.sale_order_item_id AND i.order_id = s.sale_order_id AND i.deleted = 0 "
|
+ "JOIN mes_wm_batch b ON b.id = d.batch_id AND b.deleted = 0 AND b.item_id = d.item_id "
|
+ "WHERE d.deleted = 0 AND s.sale_order_id = #{orderId} AND s.status = #{finishedStatus} "
|
+ "AND d.item_id = #{itemId} AND l.item_id = #{itemId} AND i.product_id = #{itemId} "
|
+ "AND CAST(i.reel_no AS BINARY) = CAST(b.reel_no AS BINARY) "
|
+ "AND d.batch_id = #{batchId}")
|
Long countFinishedSaleBatch(@Param("orderId") Long orderId, @Param("itemId") Long itemId,
|
@Param("batchId") Long batchId, @Param("finishedStatus") Integer finishedStatus);
|
|
default List<MesWmProductSalesDetailDO> selectListByLineId(Long lineId) {
|
return selectList(MesWmProductSalesDetailDO::getLineId, lineId);
|
}
|
|
default List<MesWmProductSalesDetailDO> selectListBySalesId(Long salesId) {
|
return selectList(MesWmProductSalesDetailDO::getSalesId, salesId);
|
}
|
|
default void deleteByLineId(Long lineId) {
|
delete(MesWmProductSalesDetailDO::getLineId, lineId);
|
}
|
|
default void deleteBySalesId(Long salesId) {
|
delete(MesWmProductSalesDetailDO::getSalesId, salesId);
|
}
|
|
}
|