Commit 2cc83aaf by wutong

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

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