Commit c3ca7444 by yinyong

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

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