Commit 48c717b3 by guanzhenshan

数据仓增加更新调拨在途数据服务

parent 42b4331d
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.SkuDataWareHouse.Models
{
public class mAllotOnWay
{
public string bailun_sku { get; set; }
public string warehouse_code { get; set; }
public int count { get; set; }
public decimal unit_price { get; set; }
}
}
......@@ -7,21 +7,23 @@ namespace Bailun.DC.SkuDataWareHouse
{
class Program
{
//static async Task Main(string[] args)
static async Task Main(string[] args)
{
Console.WriteLine("进入 数据仓生成服务");
var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Services>();
});
await builder.RunConsoleAsync();
}
//static void Main(string[] args)
//{
// Console.WriteLine("进入 数据仓生成服务");
// var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
// {
// services.AddHostedService<Services>();
// });
// Console.WriteLine("运行成功!");
// //new Services().Save();
// await builder.RunConsoleAsync();
// new Services().UpdateAllotOnWay();
//}
static void Main(string[] args)
{
Console.WriteLine("运行成功!");
new Services().Save();
}
}
}
\ No newline at end of file
......@@ -32,6 +32,11 @@ namespace Bailun.DC.SkuDataWareHouse
Save();
}
if (now.Minute % 20==0) //每20分钟更新一次
{
UpdateAllotOnWay();
}
}
catch (Exception ex)
{
......@@ -76,7 +81,7 @@ namespace Bailun.DC.SkuDataWareHouse
";
var liststock = cn.Query<Models.dc_datawarehouse>(sql, null, null, true, 30 * 60);
var liststock = cn.Query<dc_datawarehouse>(sql, null, null, true, 30 * 60);
resultcount = liststock.AsList().Count;
......@@ -112,5 +117,74 @@ namespace Bailun.DC.SkuDataWareHouse
}
/// <summary>
/// 更新调拨在途数据
/// </summary>
public void UpdateAllotOnWay()
{
Console.WriteLine("启动更新在途数 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
var sql = @"select t1.*,t2.unit_price from (SELECT bailun_sku,warehouse_code,sum(count+countplan) as `count` FROM (
SELECT t1.targetwareno as warehouse_code,
t2.sku as bailun_sku,
t1.transporttype as transport_type,
if(t2.deliverycount - t2.storagecount < 0, 0, t2.deliverycount - t2.storagecount) as `count`,
0 as countplan
FROM dc_base_transfer_info t1
LEFT JOIN dc_base_transfer_info_skus t2 on t1.dataid = t2.dataid
where t1.stateid < 5
and t1.isdeleted = 0
and t1.isexception = 0
UNION ALL
SELECT bailun_sku,
warehouse_code,
`count`,
`count` AS countplan,
transport_type
FROM dc_base_transfer_plan
WHERE STATUS = 1
AND deleted = 0
) t
where t.bailun_sku is not null
GROUP BY bailun_sku, warehouse_code) t1
left join dc_base_sku t2 on t1.bailun_sku=t2.bailun_sku";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
cn.Execute("update dc_datawarehouse set is_update_allot_onway=0 where is_update_allot_onway=1");
var list = cn.Query<Models.mAllotOnWay>(sql).AsList();
var s = "";
int count = 0;
foreach (var item in list)
{
s += "update dc_datawarehouse set is_update_allot_onway=1,update_allot_onway_time='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',quantity_transfer=" + item.count + ",amount_transit=" + (item.count * item.unit_price) + " where sku='" + item.bailun_sku + "' and warehouse_code='" + item.warehouse_code + "';";
count++;
//Console.WriteLine("sku:" + item.bailun_sku + ",warehousecode:" + item.warehouse_code);
if ((count != 0 && count % 1000 == 0) || count == list.Count)
{
Console.WriteLine("执行更新数据库操作 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 总记录数:" + list.Count + " 本次索引为:" + count);
cn.Execute(s);
s = "";
}
}
cn.Execute("update dc_datawarehouse set is_update_allot_onway=0,quantity_transfer=0,amount_transit=0 where quantity_transfer>0 and is_update_allot_onway=0");
cn.Execute("update dc_datawarehouse set is_update_allot_onway=0 where is_update_allot_onway=1");
}
Console.WriteLine("更新在途数完成!"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
}
}
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