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,
tb5.warehouse_code warehouse_code, sum( count ),
(tb5.count - IFNULL(tb4.count, 0)) AS count CURRENT_TIMESTAMP
FROM ( FROM
SELECT tb1.bailun_sku, (
tb1.warehouse_code, SELECT
sum(tb1.count) count tb5.bailun_sku bailun_sku,
FROM dc_base_transfer_bale tb1 tb5.warehouse_code warehouse_code,
LEFT JOIN dc_base_transfer_complete tb2 ON tb1.transfer_order_id = tb2.transfer_order_id (
WHERE tb2.transfer_order_id IS NULL tb5.count - IFNULL( tb4.count, 0 )) AS count
AND tb1.deleted = 0 FROM
GROUP BY bailun_sku, (
warehouse_code SELECT
) tb5 tb1.bailun_sku,
LEFT JOIN ( tb1.warehouse_code,
SELECT bailun_sku, sum( tb1.count ) count
warehouse_code, FROM
sum(count) count dc_base_transfer_bale tb1
FROM ( LEFT JOIN dc_base_transfer_complete tb2 ON tb1.transfer_order_id = tb2.transfer_order_id
SELECT tb1.bailun_sku, WHERE
tb1.warehouse_code, tb2.transfer_order_id IS NULL
max(tb1.count) count, AND tb1.deleted = 0
tb1.transfer_order_id GROUP BY
FROM dc_base_transfer_inbound tb1 bailun_sku,
LEFT JOIN dc_base_transfer_complete tb2 ON tb1.transfer_order_id = tb2.transfer_order_id warehouse_code
WHERE tb2.transfer_order_id IS NULL ) tb5
AND tb1.deleted = 0 LEFT JOIN (
GROUP BY bailun_sku, SELECT
warehouse_code, bailun_sku,
transfer_order_id warehouse_code,
) tb3 sum( count ) count
GROUP BY bailun_sku, FROM
warehouse_code (
) tb4 SELECT
ON tb5.bailun_sku = tb4.bailun_sku t1.bailun_sku,
AND tb5.warehouse_code = tb4.warehouse_code t1.warehouse_code,
WHERE (tb5.count - IFNULL(tb4.count, 0)) > 0 t2.count,
UNION ALL t1.transfer_order_id
select bailun_sku, warehouse_code, sum(count) AS count FROM
from dc_base_transfer_plan ( 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
where status = 1 INNER JOIN dc_base_transfer_inbound t2 ON t1.bailun_sku = t2.bailun_sku
and deleted = 0 AND t1.warehouse_code = t2.warehouse_code
group by bailun_sku, warehouse_code AND t1.transfer_order_id = t2.transfer_order_id
) t AND t1.create_time = t2.create_time
group by bailun_sku, warehouse_code 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,
warehouse_code
) 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
) t
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>
......
...@@ -612,92 +612,103 @@ ...@@ -612,92 +612,103 @@
<select id="listTransferTransitOrder" resultType="com.bailuntec.domain.entity.DcBaseTransferVerify"> <select id="listTransferTransitOrder" resultType="com.bailuntec.domain.entity.DcBaseTransferVerify">
SELECT SELECT
tb11.bailun_sku bailun_sku, tb11.bailun_sku bailun_sku,
tb11.warehouse_code warehouse_code, tb11.warehouse_code warehouse_code,
tb11.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,
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,
tb1.warehouse_code, tb1.warehouse_code,
tb1.transfer_order_id, tb1.transfer_order_id,
tb1.create_time, tb1.create_time,
sum( tb1.count ) count sum( tb1.count ) count
FROM FROM
dc_base_transfer_bale tb1 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 WHERE
tb2.bailun_sku IS NULL tb2.bailun_sku IS NULL
AND tb1.bailun_sku = #{bailunSku} AND tb1.bailun_sku = #{bailunSku}
AND tb1.warehouse_code = #{warehouseCode} AND tb1.warehouse_code = #{warehouseCode}
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
) tb11 ) tb11
LEFT JOIN ( LEFT JOIN (
SELECT 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.transfer_order_id = tb2.transfer_order_id LEFT JOIN dc_base_transfer_complete tb2 ON tb1.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 tb1.bailun_sku = #{bailunSku}
AND tb1.warehouse_code = #{warehouseCode} AND tb1.warehouse_code = #{warehouseCode}
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 ON tb5.bailun_sku = tb11.bailun_sku ) tb5 ON tb5.bailun_sku = tb11.bailun_sku
AND tb5.warehouse_code = tb11.warehouse_code AND tb5.warehouse_code = tb11.warehouse_code
AND tb5.transfer_order_id = tb11.transfer_order_id 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 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
WHERE AND t1.warehouse_code = t2.warehouse_code
tb2.bailun_sku IS NULL AND t1.transfer_order_id = t2.transfer_order_id
AND tb1.bailun_sku = #{bailunSku} AND t1.create_time = t2.create_time
AND tb1.warehouse_code = #{warehouseCode} LEFT JOIN dc_base_transfer_complete tb2 ON t1.transfer_order_id = tb2.transfer_order_id
AND tb1.deleted = 0 WHERE
GROUP BY tb2.bailun_sku IS NULL
bailun_sku, AND t1.bailun_sku = #{bailunSku}
warehouse_code, AND t1.warehouse_code = #{warehouseCode}
transfer_order_id ) 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 WHERE
WHERE ( tb11.count - IFNULL( tb4.count, 0 ) ) > 0 UNION ALL
( tb11.count - IFNULL( tb4.count, 0 ) ) > 0 SELECT
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} bailun_sku,
AND warehouse_code = #{warehouseCode} 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> </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