Commit c3ca7444 by yinyong

数据中心--每日在途、30天出库数,起始仓、目的仓

parent d01f3d30
...@@ -9,7 +9,8 @@ public class TransferTransitQuantity { ...@@ -9,7 +9,8 @@ public class TransferTransitQuantity {
private String bailunSku; private String bailunSku;
private String warehouseCode; private String warehouseCode;
private String sourceWarehouseCode;
private Integer count; private Integer count;
private Integer countplan; private Integer countplan = 0;
private LocalDateTime gmtTransferTransitModified; private LocalDateTime gmtTransferTransitModified;
} }
...@@ -107,6 +107,8 @@ public class DcDailyTransitFrom { ...@@ -107,6 +107,8 @@ public class DcDailyTransitFrom {
*/ */
private BigDecimal unitPrice; private BigDecimal unitPrice;
private String sourceWarehouseCode;
/** /**
* This method was generated by MyBatis Generator. * This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from * This method corresponds to the database table dc_daily_transit_from
......
...@@ -396,6 +396,9 @@ ...@@ -396,6 +396,9 @@
<if test="warehouseCode != null"> <if test="warehouseCode != null">
warehouse_code, warehouse_code,
</if> </if>
<if test="sourceWarehouseCode != null">
source_warehouse_code,
</if>
<if test="quantityTransferInbound != null"> <if test="quantityTransferInbound != null">
quantity_transfer_inbound, quantity_transfer_inbound,
</if> </if>
...@@ -432,6 +435,9 @@ ...@@ -432,6 +435,9 @@
<if test="warehouseCode != null"> <if test="warehouseCode != null">
#{warehouseCode,jdbcType=VARCHAR}, #{warehouseCode,jdbcType=VARCHAR},
</if> </if>
<if test="sourceWarehouseCode != null">
#{sourceWarehouseCode,jdbcType=VARCHAR},
</if>
<if test="quantityTransferInbound != null"> <if test="quantityTransferInbound != null">
#{quantityTransferInbound,jdbcType=INTEGER}, #{quantityTransferInbound,jdbcType=INTEGER},
</if> </if>
...@@ -468,6 +474,9 @@ ...@@ -468,6 +474,9 @@
<if test="warehouseCode != null"> <if test="warehouseCode != null">
warehouse_code = #{warehouseCode,jdbcType=VARCHAR}, warehouse_code = #{warehouseCode,jdbcType=VARCHAR},
</if> </if>
<if test="sourceWarehouseCode != null">
source_warehouse_code = #{sourceWarehouseCode,jdbcType=VARCHAR},
</if>
<if test="quantityTransferInbound != null"> <if test="quantityTransferInbound != null">
quantity_transfer_inbound = #{quantityTransferInbound,jdbcType=INTEGER}, quantity_transfer_inbound = #{quantityTransferInbound,jdbcType=INTEGER},
</if> </if>
...@@ -536,101 +545,113 @@ ...@@ -536,101 +545,113 @@
<select id="selectQuantityTransferTransitFrom" resultType="com.bailuntec.domain.dto.TransferTransitQuantity"> <select id="selectQuantityTransferTransitFrom" resultType="com.bailuntec.domain.dto.TransferTransitQuantity">
SELECT SELECT
bailun_sku as bailunSku, bailun_sku AS bailunSku,
source_warehouse_code as warehouseCode, source_warehouse_code AS sourceWarehouseCode,
sum( count ) as count, warehouse_code AS warehouseCode,
sum(countplan) as countplan sum( count ) AS count
FROM FROM
( (
SELECT SELECT
tb5.bailun_sku bailun_sku, tb5.bailun_sku bailun_sku,
tb5.source_warehouse_code source_warehouse_code, tb5.source_warehouse_code source_warehouse_code,
( tb5.warehouse_code warehouse_code,
tb5.count - IFNULL( tb4.count, 0 )) AS count, ( tb5.count - IFNULL( tb4.count, 0 ) ) AS count
0 as countplan FROM
FROM (
( SELECT
SELECT tb1.bailun_sku,
tb1.bailun_sku, tb1.source_warehouse_code,
tb1.source_warehouse_code, tb1.warehouse_code,
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.transfer_order_id IS NULL tb2.transfer_order_id IS NULL
AND tb1.deleted = 0 AND tb1.deleted = 0
GROUP BY GROUP BY
bailun_sku, bailun_sku,
source_warehouse_code source_warehouse_code,
) tb5 warehouse_code
LEFT JOIN ( ) tb5
SELECT LEFT JOIN (
bailun_sku, SELECT
source_warehouse_code, bailun_sku,
sum( count ) count source_warehouse_code,
FROM warehouse_code,
( sum( count ) count
SELECT FROM
t1.bailun_sku, (
t1.source_warehouse_code, SELECT
(case WHEN t2.count > tbb.count then tbb.count else t2.count end) as count, t1.bailun_sku,
t1.transfer_order_id t1.source_warehouse_code,
FROM t1.warehouse_code,
( SELECT max( create_time ) AS create_time, bailun_sku, source_warehouse_code, transfer_order_id FROM dc_base_transfer_inbound WHERE deleted = 0 GROUP BY bailun_sku, source_warehouse_code, transfer_order_id ) t1 ( CASE WHEN t2.count > tbb.count THEN tbb.count ELSE t2.count END ) AS count,
INNER JOIN dc_base_transfer_inbound t2 ON t1.bailun_sku = t2.bailun_sku t1.transfer_order_id
AND t1.source_warehouse_code = t2.source_warehouse_code FROM
AND t1.transfer_order_id = t2.transfer_order_id (
AND t1.create_time = t2.create_time SELECT
LEFT JOIN dc_base_transfer_bale tbb on t1.bailun_sku = tbb.bailun_sku and t1.source_warehouse_code = tbb.source_warehouse_code and t1.transfer_order_id = tbb.transfer_order_id max( create_time ) AS create_time,
LEFT JOIN dc_base_transfer_complete tb2 ON t1.transfer_order_id = tb2.transfer_order_id bailun_sku,
WHERE source_warehouse_code,
tb2.bailun_sku IS NULL warehouse_code,
) tb3 transfer_order_id
GROUP BY FROM
bailun_sku, dc_base_transfer_inbound
source_warehouse_code WHERE
) tb4 ON tb5.bailun_sku = tb4.bailun_sku deleted = 0
AND tb5.source_warehouse_code = tb4.source_warehouse_code GROUP BY
WHERE bailun_sku,
( source_warehouse_code,
tb5.count - IFNULL( tb4.count, 0 )) > 0 UNION ALL warehouse_code,
SELECT transfer_order_id
bailun_sku, ) t1
source_warehouse_code, INNER JOIN dc_base_transfer_inbound t2 ON t1.bailun_sku = t2.bailun_sku
sum( count ) AS count, AND t1.source_warehouse_code = t2.source_warehouse_code
sum( count ) AS countplan AND t1.warehouse_code = t2.warehouse_code
FROM AND t1.transfer_order_id = t2.transfer_order_id
dc_base_transfer_plan AND t1.create_time = t2.create_time
WHERE LEFT JOIN dc_base_transfer_bale tbb ON t1.bailun_sku = tbb.bailun_sku
STATUS = 1 AND t1.source_warehouse_code = tbb.source_warehouse_code
AND deleted = 0 AND t1.warehouse_code = tbb.warehouse_code
GROUP BY AND t1.transfer_order_id = tbb.transfer_order_id
bailun_sku, LEFT JOIN dc_base_transfer_complete tb2 ON t1.transfer_order_id = tb2.transfer_order_id
source_warehouse_code WHERE
) t tb2.bailun_sku IS NULL
GROUP BY ) tb3
bailun_sku, GROUP BY
source_warehouse_code bailun_sku,
source_warehouse_code,
warehouse_code
) tb4 ON tb5.bailun_sku = tb4.bailun_sku
AND tb5.source_warehouse_code = tb4.source_warehouse_code
AND tb5.warehouse_code = tb4.warehouse_code
WHERE
( tb5.count - IFNULL( tb4.count, 0 ) ) > 0
) t
GROUP BY
bailun_sku,
source_warehouse_code,
warehouse_code
</select> </select>
<insert id="calculateTransferTransitFrom"> <insert id="calculateTransferTransitFrom">
insert into dc_daily_transit_from(bailun_sku, warehouse_code, quantity_transfer,quantity_transfer_plan, record_time) insert into dc_daily_transit_from(bailun_sku, warehouse_code, quantity_transfer,quantity_transfer_plan, record_time, source_warehouse_code)
values values
<foreach collection="list" item="item" index="index" separator=","> <foreach collection="list" item="item" index="index" separator=",">
( (
#{item.bailunSku,jdbcType=VARCHAR}, #{item.warehouseCode,jdbcType=VARCHAR}, #{item.count,jdbcType=INTEGER},#{item.countplan,jdbcType=INTEGER}, #{localDate} #{item.bailunSku,jdbcType=VARCHAR}, #{item.warehouseCode,jdbcType=VARCHAR}, #{item.count,jdbcType=INTEGER},#{item.countplan,jdbcType=INTEGER}, #{localDate}, #{item.sourceWarehouseCode,jdbcType=VARCHAR}
) )
</foreach> </foreach>
</insert> </insert>
<select id="selectQuantityTransferComplete" resultType="com.bailuntec.domain.dto.TransferTransitQuantity"> <select id="selectQuantityTransferComplete" resultType="com.bailuntec.domain.dto.TransferTransitQuantity">
select bailun_sku, source_warehouse_code as warehouse_code, sum(count) as count select bailun_sku, warehouse_code, source_warehouse_code, sum(count) as count
from dc_base_transfer_complete from dc_base_transfer_delivery
where create_time &gt;= date_sub(#{localDate}, INTERVAL 30 day) where create_time &gt;= date_sub(#{localDate}, INTERVAL 30 day)
and create_time &lt; #{localDate} and create_time &lt; #{localDate}
and deleted = 0 and deleted = 0
group by bailun_sku, source_warehouse_code group by bailun_sku, source_warehouse_code, warehouse_code
</select> </select>
<update id="updateSkuUnitPrice"> <update id="updateSkuUnitPrice">
......
...@@ -51,6 +51,7 @@ public class DailyTransferJob implements SimpleJob { ...@@ -51,6 +51,7 @@ public class DailyTransferJob implements SimpleJob {
dcDailyTransitFrom.setBailunSku(transferTransitQuantity.getBailunSku()); dcDailyTransitFrom.setBailunSku(transferTransitQuantity.getBailunSku());
dcDailyTransitFrom.setWarehouseCode(transferTransitQuantity.getWarehouseCode()); dcDailyTransitFrom.setWarehouseCode(transferTransitQuantity.getWarehouseCode());
dcDailyTransitFrom.setQuantityTransferInbound(transferTransitQuantity.getCount()); dcDailyTransitFrom.setQuantityTransferInbound(transferTransitQuantity.getCount());
dcDailyTransitFrom.setSourceWarehouseCode(transferTransitQuantity.getSourceWarehouseCode());
dcDailyTransitFrom.setRecordTime(lastLocalDate); dcDailyTransitFrom.setRecordTime(lastLocalDate);
int result = dcDailyTransitFromMapper.upsertSelective(dcDailyTransitFrom); int result = dcDailyTransitFromMapper.upsertSelective(dcDailyTransitFrom);
} }
......
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