Commit 48b2711b by 泽锋 李

fix

parent 6b2c27ac
......@@ -4157,8 +4157,8 @@ t2.sku_title_cn as 'product_title',
t2.product_type_desc as 'product_type',
t1.warehouse_code as 'warehouse_code',
t3.warehouse_name as 'warehouse_name',
t4.stock as 'stock',
t5.stock as 'on_the_way_quantity',
ifnull(t4.stock,0) as 'stock',
ifnull(t5.stock,0) as 'on_the_way_quantity',
t2.unit_price as 'unit_price',
t2.weight as 'weight',
t2.buyer_name as 'buyer_name',
......@@ -4174,8 +4174,8 @@ sum( case when t1.paid_time>=@b30 and t1.paid_time<=@e1 then t1.amount_sales * t
from dc_base_oms_sku_30 as t1
left join dc_base_sku as t2 on t1.bailun_sku = t2.bailun_sku
left join dc_base_warehouse as t3 on t1.warehouse_code = t3.warehouse_code
left join ( select t4_2.product_code,sum(t4_1.usable_stock) as 'stock' from dc_base_stock as t4_1 left join dc_base_sku as t4_2 on t4_1.bailun_sku = t4_2.bailun_sku GROUP BY t4_2.product_code ) as t4 on t2.product_code = t4.product_code
left join ( select t5_2.product_code,sum(t5_1.quantity_purchase+t5_1.quantity_transfer) as 'stock' from dc_mid_transit as t5_1 left join dc_base_sku as t5_2 on t5_1.bailun_sku = t5_2.bailun_sku GROUP BY t5_2.product_code ) as t5 on t2.product_code = t5.product_code
left join ( select t4_2.product_code,t4_1.warehouse_code,sum(t4_1.usable_stock) as 'stock' from dc_base_stock as t4_1 left join dc_base_sku as t4_2 on t4_1.bailun_sku = t4_2.bailun_sku GROUP BY t4_2.product_code ) as t4 on t2.product_code = t4.product_code and t1.warehouse_code = t4.warehouse_code
left join ( select t5_2.product_code,t5_1.warehouse_code,sum(t5_1.quantity_purchase+t5_1.quantity_transfer) as 'stock' from dc_mid_transit as t5_1 left join dc_base_sku as t5_2 on t5_1.bailun_sku = t5_2.bailun_sku GROUP BY t5_2.product_code ) as t5 on t2.product_code = t5.product_code and t1.warehouse_code = t4.warehouse_code
where t1.paid_time>=@b30
GROUP BY t2.product_code
", new {
......@@ -4198,6 +4198,84 @@ truncate table dc_report_goods_temp;
");
}
public class SynchroReportGoodsStockDataDto
{
public string product_code { get; set; }
public string warehouse_code { get; set; }
}
/// <summary>
/// 刷新商品报表的库存字段
/// </summary>
public static void SynchroReportGoodsStockData()
{
if (DateTime.Now.Hour < 1)
{
return;
}
var task_name = "SynchroReportGoodsStockData_v1";
var conn = _connection;
// 查询最后一次成功抓取的记录
var last_task_synchro_log = conn.QuerySingleOrDefault<task_synchro_log>(" select * from task_synchro_log where task_name=@task_name and status=1 order by end_time desc limit 1 ", new { task_name = task_name });
var new_task_synchro_log = new task_synchro_log
{
create_date = DateTime.Now,
end_time = DateTime.Now.AddMinutes(-3),
status = 0,
task_name = task_name
};
if (last_task_synchro_log != null)
{
new_task_synchro_log.start_time = last_task_synchro_log.end_time.AddMinutes(-1);
}
else
{
new_task_synchro_log.start_time = DateTime.Now.ToDayHome();
}
new_task_synchro_log.id = conn.Insert(new_task_synchro_log) ?? 0;
int count = 0;
var page = 1;
var rows = 1000;
while (true)
{
var datas = _connection.Query<SynchroReportGoodsStockDataDto>($" select t2.product_code,t1.warehouse_code from dc_base_stock where as t1 left join dc_base_sku as t2 where t1.bailun_sku = t2.bailun_sku where t1.gmt_modified>=@start_time and t1.gmt_modified<=@end_time limit {(page-1)*rows},{rows} ").ToList();
if (datas == null || datas.Count <= 0)
{
break;
}
page++;
foreach (var item in datas)
{
var dc_report_goods_data = _connection.QuerySingleOrDefault<dc_report_goods>(" select * from dc_report_goods where product_code=@product_code and warehouse_code=@warehouse_code ",new {
product_code = item.product_code,
warehouse_code = item.warehouse_code
});
if (dc_report_goods_data != null)
{
// 查询商品库存
dc_report_goods_data.stock = _connection.QuerySingleOrDefault<int?>(@" select sum(usable_stock) from dc_base_stock as t1 left join dc_base_sku as t2 on t1.bailun_sku = t2.bailun_sku where t2.product_code=@product_code and t1.warehouse_code=@warehouse_code ", new
{
product_code = item.product_code,
warehouse_code = item.warehouse_code
}) ?? 0;
_connection.Update<dc_report_goods>(dc_report_goods_data);
}
count++;
}
}
new_task_synchro_log.count = count;
new_task_synchro_log.status = 1;
conn.Update(new_task_synchro_log);
}
}
}
......
......@@ -28,4 +28,9 @@ namespace AutoTurnOver.Models
public int sales_yesterday_30 { get; set; }
public decimal sales_yesterday_amount_usd_30 { get; set; }
}
public class dc_report_goods : dc_report_goods_temp
{
}
}
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