Commit fc5a3e01 by guanzhenshan

保存半成品库存服务增加保存每日库存;调整启动方式;

parent 1e07e0b5
......@@ -9,17 +9,17 @@ namespace Bailun.DC.SyncSemiStock
{
static async Task Main(string[] args)
{
//Console.WriteLine("进入 保存半成品库存服务");
//var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
//{
// services.AddHostedService<Services>();
//});
Console.WriteLine("进入 保存半成品库存服务");
var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Services>();
});
//await builder.RunConsoleAsync();
await builder.RunConsoleAsync();
//new Services().SyncSupplierPrice();
new Services().SyncStockLog();
//new Services().SyncStockLog();
......
......@@ -41,6 +41,21 @@ namespace Bailun.DC.SyncSemiStock
Console.WriteLine("任务结束 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
if(now.Hour==0 && now.Minute==30)
{
Console.WriteLine("启动获取供应商最新报价服务" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
SyncSupplierPrice();
Console.WriteLine("结束获取供应商最新报价服务" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
Console.WriteLine("启动获取半成品库存流水日志服务" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
SyncStockLog();
Console.WriteLine("结束获取半成品库存流水日志服务" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
Console.WriteLine("启动保存每日半成品库存服务" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
SaveDailySemiStock();
Console.WriteLine("启动结束每日半成品库存服务" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
}
catch (Exception ex)
{
......@@ -154,6 +169,9 @@ namespace Bailun.DC.SyncSemiStock
}
/// <summary>
/// 同步供应商最新报价
/// </summary>
public void SyncSupplierPrice()
{
var start = DateTime.Parse("2017-01-01");
......@@ -168,24 +186,30 @@ namespace Bailun.DC.SyncSemiStock
cn.Open();
}
var obj = cn.QueryFirstOrDefault<DC.Models.dc_semi_supplier_offer_log>("select * from dc_semi_supplier_offer_log_new order by update_time desc limit 1");
var obj = cn.QueryFirstOrDefault<DC.Models.dc_semi_supplier_offer_log>("select * from dc_semi_supplier_offer_log_new order by create_time desc limit 1");
if (obj != null)
{
start = obj.update_time;
end = start.AddDays(1);
}
if(end>DateTime.Now)
{
end = DateTime.Now;
}
}
while(end<DateTime.Now)
while(end<=DateTime.Now)
{
var result = Common.HttpHelper.NetHelper.Request(url + $"btime={start.ToString("yyyy-MM-dd")}&etime={end.ToString("yyyy-MM-dd")}");
var result = Common.HttpHelper.NetHelper.Request(url + $"btime={start.AddMinutes(-3).ToString("yyyy-MM-dd")}&etime={end.ToString("yyyy-MM-dd")}");
if (!string.IsNullOrEmpty(result))
{
var json = Newtonsoft.Json.JsonConvert.DeserializeObject<response_SupplierPrice>(result);
if(json.success)
{
Console.WriteLine(url + $"btime={start.ToString("yyyy-MM-dd")}&etime={end.ToString("yyyy-MM-dd")}" + "::获取数据成功!"+DateTime.Now);
Console.WriteLine(url + $"btime={start.AddMinutes(-3).ToString("yyyy-MM-dd")}&etime={end.ToString("yyyy-MM-dd")}" + "::获取数据成功!"+DateTime.Now);
SaveSupplierPrice(json.data);
start = end;
end = end.AddDays(1);
......@@ -281,7 +305,7 @@ namespace Bailun.DC.SyncSemiStock
while (end < DateTime.Now)
{
var result = Common.HttpHelper.NetHelper.Request(url + $"btime={start.ToString("yyyy-MM-dd")}&etime={end.ToString("yyyy-MM-dd")}&page=1&rows=100");
var result = Common.HttpHelper.NetHelper.Request(url + $"btime={start.AddMinutes(-3).ToString("yyyy-MM-dd")}&etime={end.ToString("yyyy-MM-dd")}&page=1&rows=100");
var page = 1;
//var pagesize = 100;
......@@ -293,7 +317,7 @@ namespace Bailun.DC.SyncSemiStock
if (json.success)
{
Console.WriteLine(url + $"btime={start.ToString("yyyy-MM-dd")}&etime={end.ToString("yyyy-MM-dd")}" + "::page1::获取数据成功!" + DateTime.Now);
Console.WriteLine(url + $"btime={start.AddMinutes(-3).ToString("yyyy-MM-dd")}&etime={end.ToString("yyyy-MM-dd")}" + "::page1::获取数据成功!" + DateTime.Now);
//保存第一页数据
SaveStockLog(json.data.Items);
......@@ -302,21 +326,33 @@ namespace Bailun.DC.SyncSemiStock
page = json.data.CurrentPage;
totalpage = json.data.TotalPages;
while(page<totalpage)
{
page++;
result = Common.HttpHelper.NetHelper.Request(url + $"btime={start.ToString("yyyy-MM-dd")}&etime={end.ToString("yyyy-MM-dd")}&page={page}&rows=100");
json = Newtonsoft.Json.JsonConvert.DeserializeObject<response_StockLog>(result);
if (json.success)
reRead: Console.Write("");
result = Common.HttpHelper.NetHelper.Request(url + $"btime={start.AddMinutes(-3).ToString("yyyy-MM-dd")}&etime={end.ToString("yyyy-MM-dd")}&page={page}&rows=100");
if (!string.IsNullOrEmpty(result))
{
Console.WriteLine(url + $"btime={start.ToString("yyyy-MM-dd")}&etime={end.ToString("yyyy-MM-dd")}" + "::page"+page+"::获取数据成功!" + DateTime.Now);
json = Newtonsoft.Json.JsonConvert.DeserializeObject<response_StockLog>(result);
if (json.success)
{
Console.WriteLine(url + $"btime={start.AddMinutes(-3).ToString("yyyy-MM-dd")}&etime={end.ToString("yyyy-MM-dd")}" + "::page" + page + "::获取数据成功!" + DateTime.Now);
//保存数据
SaveStockLog(json.data.Items);
//保存数据
SaveStockLog(json.data.Items);
page = json.data.CurrentPage;
totalpage = json.data.TotalPages;
page = json.data.CurrentPage;
totalpage = json.data.TotalPages;
}
}
else
{
goto reRead;
}
}
......@@ -385,5 +421,36 @@ namespace Bailun.DC.SyncSemiStock
}
public void SaveDailySemiStock()
{
try
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
var sql = $@"insert into dc_semi_daily_stock_new(day,inventory_amount,sku_code,sku_name,stock_quantity,price,warehouse_id,warehouse_name,redundancy_stock,product_category_id,product_category_id_name,type_id,type_name)
select {DateTime.Now.ToString("yyyy-MM-dd")},l.final_stock * ifnull(ol.price,0),l.sku_code,l.sku_name,l.final_stock,ifnull(ol.price,0),l.warehouse_id,l.warehouse_name,
(case when l.redundancy_stock is null then 0 when l.redundancy_stock < 0 then 0 else l.redundancy_stock end),l.product_category_id,l.product_category_id_name,l.type_id,l.type_name
from dc_semi_stock_log_new l left join dc_semi_supplier_offer_log_new ol on l.sku_code = ol.sku_code";
cn.Execute(sql);
}
}
catch (Exception ex)
{
Console.WriteLine("保存每日半成品库存异常,10秒后重试!");
System.Threading.Thread.Sleep(10 * 1000);
SaveDailySemiStock();
}
}
}
}
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