fix(delivery): project current dispatched cargo instead of whole order SKU quantities
This commit is contained in:
+20
@@ -11,6 +11,26 @@ import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface DispatchPdaPickOrderMapper extends BaseMapper<DispatchPdaPickOrder> {
|
||||
/** Current dispatch pick quantities; mixed/unknown SKU identities remain unknown. */
|
||||
@Select("""
|
||||
SELECT p.dispatch_item_id AS dispatchItemId,a.order_id AS orderId,
|
||||
CASE WHEN a.receipt_id IS NOT NULL THEN i.sku_code ELSE b.sku_code END AS skuCode,
|
||||
CASE WHEN a.receipt_id IS NOT NULL THEN i.product_name_zh ELSE b.product_name_zh END AS productName,
|
||||
COALESCE(a.packages,p.packages) AS packages
|
||||
FROM ll_dispatch_pda_task t
|
||||
JOIN ll_dispatch_pda_pick p ON p.task_id=t.id AND BINARY p.customer_id=BINARY t.customer_id
|
||||
LEFT JOIN ll_dispatch_pda_pick_order a ON a.pick_id=p.id AND BINARY a.customer_id=BINARY p.customer_id
|
||||
LEFT JOIN ll_inbound_stock_receipt i ON i.id=a.receipt_id AND BINARY i.customer_id=BINARY a.customer_id
|
||||
LEFT JOIN ll_inventory_position ip ON ip.id=p.inventory_position_id AND BINARY ip.customer_id=BINARY p.customer_id
|
||||
LEFT JOIN ll_inventory_balance b ON b.id=ip.balance_id AND BINARY b.customer_id=BINARY ip.customer_id
|
||||
WHERE BINARY t.customer_id=BINARY #{customerId} AND t.dispatch_order_id=#{dispatchId}
|
||||
ORDER BY p.id,a.id
|
||||
""")
|
||||
List<DeliveryPickedSku> deliveryPickedSkus(@Param("customerId") String customerId,
|
||||
@Param("dispatchId") Long dispatchId);
|
||||
|
||||
record DeliveryPickedSku(Long dispatchItemId, Long orderId, String skuCode, String productName, Long packages) {}
|
||||
|
||||
@Select("SELECT DISTINCT r.* FROM ll_inventory_position current_position " +
|
||||
"JOIN ll_inventory_position receipt_position ON receipt_position.balance_id=current_position.balance_id " +
|
||||
"JOIN ll_inbound_stock_receipt r ON r.inventory_position_id=receipt_position.id " +
|
||||
|
||||
Reference in New Issue
Block a user