Commit dd05bd3d by lizefeng

优化调拨在途明细的查询算法

parent a05f859c
...@@ -71,77 +71,123 @@ GROUP BY ...@@ -71,77 +71,123 @@ GROUP BY
{ {
var sql = @" var sql = @"
SELECT SELECT
tb5.bailun_sku bailun_sku, tb11.bailun_sku bailun_sku,
tb5.warehouse_code warehouse_code, tb11.warehouse_code warehouse_code,
tb5.transfer_order_id transfer_order_id, tb11.transfer_order_id transfer_order_id,
tb5.estimated_arrival_time estimated_arrival_time, tb5.estimated_arrival_time estimated_arrival_time,
tb5.create_time create_time, tb11.create_time create_time,
( tb5.count - IFNULL( tb4.count, 0 ) ) AS count , (
(case when t_w.hq_type='fba仓' then t_w.bailun_account else t_w.warehouse_name end) as warehouse_name tb11.count - IFNULL(tb4.count, 0)
) AS count
FROM FROM
( (
SELECT SELECT
tb1.bailun_sku,
tb1.warehouse_code,
tb1.transfer_order_id,
tb1.create_time,
sum(tb1.count) count
FROM
dc_base_transfer_bale tb1
LEFT JOIN dc_base_transfer_complete tb2 ON tb1.transfer_order_id = tb2.transfer_order_id
WHERE
tb2.bailun_sku IS NULL
AND tb1.bailun_sku = @bailun_sku
AND tb1.warehouse_code = @warehouse_code
AND tb1.deleted = 0
GROUP BY
bailun_sku,
warehouse_code,
transfer_order_id
) tb11
LEFT JOIN (
SELECT
tb1.bailun_sku, tb1.bailun_sku,
tb1.warehouse_code, tb1.warehouse_code,
tb1.transfer_order_id, tb1.transfer_order_id,
tb1.estimated_arrival_time, tb1.estimated_arrival_time,
tb1.create_time, tb1.create_time,
sum( tb1.count ) count sum(tb1.count) count
FROM FROM
dc_base_transfer_verify tb1 dc_base_transfer_verify tb1
LEFT JOIN dc_base_transfer_complete tb2 ON tb1.deleted = tb2.deleted LEFT JOIN dc_base_transfer_complete tb2 ON tb1.transfer_order_id = tb2.transfer_order_id
AND tb1.bailun_sku = tb2.bailun_sku WHERE
AND tb1.warehouse_code = tb2.warehouse_code
AND tb1.transfer_order_id = tb2.transfer_order_id
WHERE
tb2.bailun_sku IS NULL tb2.bailun_sku IS NULL
AND tb1.bailun_sku = @bailun_sku AND tb1.bailun_sku = @bailun_sku
AND tb1.warehouse_code = @warehouse_code AND tb1.warehouse_code = @warehouse_code
AND tb1.deleted = 0 AND tb1.deleted = 0
GROUP BY GROUP BY
bailun_sku, bailun_sku,
warehouse_code, warehouse_code,
transfer_order_id transfer_order_id
) tb5 ) tb5 ON tb5.bailun_sku = tb11.bailun_sku
AND tb5.warehouse_code = tb11.warehouse_code
AND tb5.transfer_order_id = tb11.transfer_order_id
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
bailun_sku, bailun_sku,
warehouse_code, warehouse_code,
transfer_order_id, transfer_order_id,
sum( count ) count sum(count) count
FROM FROM
( (
SELECT SELECT
tb1.bailun_sku, t1.bailun_sku,
tb1.warehouse_code, t1.warehouse_code,
max( tb1.count ) count, t2.count,
tb1.transfer_order_id t1.transfer_order_id
FROM
(
SELECT
max(create_time) AS create_time,
bailun_sku,
warehouse_code,
transfer_order_id
FROM FROM
dc_base_transfer_inbound tb1 dc_base_transfer_inbound
LEFT JOIN dc_base_transfer_complete tb2 ON tb2.deleted = 0
AND tb1.bailun_sku = tb2.bailun_sku
AND tb1.warehouse_code = tb2.warehouse_code
AND tb1.transfer_order_id = tb2.transfer_order_id
WHERE WHERE
tb2.bailun_sku IS NULL deleted = 0
AND tb1.deleted = 0 AND bailun_sku = @bailun_sku
AND warehouse_code = @warehouse_code
GROUP BY GROUP BY
bailun_sku, bailun_sku,
warehouse_code, warehouse_code,
transfer_order_id transfer_order_id
) t1
INNER JOIN dc_base_transfer_inbound t2 ON t1.bailun_sku = t2.bailun_sku
AND t1.warehouse_code = t2.warehouse_code
AND t1.transfer_order_id = t2.transfer_order_id
AND t1.create_time = t2.create_time
LEFT JOIN dc_base_transfer_complete tb2 ON t1.transfer_order_id = tb2.transfer_order_id
WHERE
tb2.bailun_sku IS NULL
) tb3 ) tb3
GROUP BY GROUP BY
bailun_sku, bailun_sku,
warehouse_code, warehouse_code,
transfer_order_id transfer_order_id
) tb4 ON tb5.bailun_sku = tb4.bailun_sku ) tb4 ON tb5.bailun_sku = tb4.bailun_sku
AND tb5.warehouse_code = tb4.warehouse_code AND tb5.warehouse_code = tb4.warehouse_code
AND tb5.transfer_order_id = tb4.transfer_order_id AND tb5.transfer_order_id = tb4.transfer_order_id
left join dc_base_warehouse as t_w on tb5.warehouse_code = t_w.warehouse_code
WHERE WHERE
( tb5.count - IFNULL( tb4.count, 0 ) ) > 0 (
tb11.count - IFNULL(tb4.count, 0)
) > 0
UNION ALL
SELECT
bailun_sku,
warehouse_code,
transfer_plan_order_id,
NULL,
update_time,
count
FROM
dc_base_transfer_plan
WHERE
STATUS = 1
AND deleted = 0
AND bailun_sku = @bailun_sku
AND warehouse_code = @warehouse_code ;
"; ";
DynamicParameters parameters = new DynamicParameters(); DynamicParameters parameters = new DynamicParameters();
parameters.Add("bailun_sku", sku); parameters.Add("bailun_sku", sku);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment