Commit 2cc83aaf by wutong

修改调拨在途计算规则, 入库数取create_time最大的值

parent 84bc64cd
......@@ -593,54 +593,80 @@
<insert id="calculateTransferTransit">
insert into dc_mid_transit(bailun_sku, warehouse_code, quantity_transfer, gmt_transfer_modified)
select bailun_sku, warehouse_code, sum(count), CURRENT_TIMESTAMP
from (
SELECT tb5.bailun_sku bailun_sku,
SELECT
bailun_sku,
warehouse_code,
sum( count ),
CURRENT_TIMESTAMP
FROM
(
SELECT
tb5.bailun_sku bailun_sku,
tb5.warehouse_code warehouse_code,
(tb5.count - IFNULL(tb4.count, 0)) AS count
FROM (
SELECT tb1.bailun_sku,
(
tb5.count - IFNULL( tb4.count, 0 )) AS count
FROM
(
SELECT
tb1.bailun_sku,
tb1.warehouse_code,
sum(tb1.count) count
FROM dc_base_transfer_bale tb1
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.transfer_order_id IS NULL
WHERE
tb2.transfer_order_id IS NULL
AND tb1.deleted = 0
GROUP BY bailun_sku,
GROUP BY
bailun_sku,
warehouse_code
) tb5
LEFT JOIN (
SELECT bailun_sku,
warehouse_code,
sum(count) count
FROM (
SELECT tb1.bailun_sku,
tb1.warehouse_code,
max(tb1.count) count,
tb1.transfer_order_id
FROM dc_base_transfer_inbound tb1
LEFT JOIN dc_base_transfer_complete tb2 ON tb1.transfer_order_id = tb2.transfer_order_id
WHERE tb2.transfer_order_id IS NULL
AND tb1.deleted = 0
GROUP BY bailun_sku,
SELECT
bailun_sku,
warehouse_code,
transfer_order_id
sum( count ) count
FROM
(
SELECT
t1.bailun_sku,
t1.warehouse_code,
t2.count,
t1.transfer_order_id
FROM
( SELECT max( create_time ) AS create_time, bailun_sku, warehouse_code, transfer_order_id FROM dc_base_transfer_inbound WHERE deleted = 0 GROUP BY bailun_sku, warehouse_code, 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
GROUP BY bailun_sku,
GROUP BY
bailun_sku,
warehouse_code
) tb4
ON tb5.bailun_sku = tb4.bailun_sku
) tb4 ON tb5.bailun_sku = tb4.bailun_sku
AND tb5.warehouse_code = tb4.warehouse_code
WHERE (tb5.count - IFNULL(tb4.count, 0)) > 0
UNION ALL
select bailun_sku, warehouse_code, sum(count) AS count
from dc_base_transfer_plan
where status = 1
and deleted = 0
group by bailun_sku, warehouse_code
WHERE
(
tb5.count - IFNULL( tb4.count, 0 )) > 0 UNION ALL
SELECT
bailun_sku,
warehouse_code,
sum( count ) AS count
FROM
dc_base_transfer_plan
WHERE
STATUS = 1
AND deleted = 0
GROUP BY
bailun_sku,
warehouse_code
) t
group by bailun_sku, warehouse_code
GROUP BY
bailun_sku,
warehouse_code
ON DUPLICATE KEY UPDATE quantity_transfer = VALUES(quantity_transfer),
gmt_transfer_modified = VALUES(gmt_transfer_modified)
</insert>
......
......@@ -618,7 +618,7 @@
tb5.estimated_arrival_time estimated_arrival_time,
tb11.create_time create_time,
( tb11.count - IFNULL( tb4.count, 0 ) ) AS count
FROM
FROM
(
SELECT
tb1.bailun_sku,
......@@ -671,22 +671,21 @@ FROM
FROM
(
SELECT
tb1.bailun_sku,
tb1.warehouse_code,
max( tb1.count ) count,
tb1.transfer_order_id
t1.bailun_sku,
t1.warehouse_code,
t2.count,
t1.transfer_order_id
FROM
dc_base_transfer_inbound tb1
LEFT JOIN dc_base_transfer_complete tb2 ON tb1.transfer_order_id = tb2.transfer_order_id
( SELECT max( create_time ) AS create_time, bailun_sku, warehouse_code, transfer_order_id FROM dc_base_transfer_inbound WHERE deleted = 0 GROUP BY bailun_sku, warehouse_code, 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
AND tb1.bailun_sku = #{bailunSku}
AND tb1.warehouse_code = #{warehouseCode}
AND tb1.deleted = 0
GROUP BY
bailun_sku,
warehouse_code,
transfer_order_id
AND t1.bailun_sku = #{bailunSku}
AND t1.warehouse_code = #{warehouseCode}
) tb3
GROUP BY
bailun_sku,
......@@ -695,9 +694,21 @@ FROM
) tb4 ON tb5.bailun_sku = tb4.bailun_sku
AND tb5.warehouse_code = tb4.warehouse_code
AND tb5.transfer_order_id = tb4.transfer_order_id
WHERE
( 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 = #{bailunSku}
WHERE
( 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 = #{bailunSku}
AND warehouse_code = #{warehouseCode}
</select>
</mapper>
\ No newline at end of file
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