Commit fc5a3e01 by guanzhenshan

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

parent 1e07e0b5
...@@ -9,17 +9,17 @@ namespace Bailun.DC.SyncSemiStock ...@@ -9,17 +9,17 @@ namespace Bailun.DC.SyncSemiStock
{ {
static async Task Main(string[] args) static async Task Main(string[] args)
{ {
//Console.WriteLine("进入 保存半成品库存服务"); Console.WriteLine("进入 保存半成品库存服务");
//var builder = new HostBuilder().ConfigureServices((hostContext, services) => var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
//{ {
// services.AddHostedService<Services>(); services.AddHostedService<Services>();
//}); });
//await builder.RunConsoleAsync(); await builder.RunConsoleAsync();
//new Services().SyncSupplierPrice(); //new Services().SyncSupplierPrice();
new Services().SyncStockLog(); //new Services().SyncStockLog();
......
...@@ -41,6 +41,21 @@ namespace Bailun.DC.SyncSemiStock ...@@ -41,6 +41,21 @@ namespace Bailun.DC.SyncSemiStock
Console.WriteLine("任务结束 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); 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) catch (Exception ex)
{ {
...@@ -154,6 +169,9 @@ namespace Bailun.DC.SyncSemiStock ...@@ -154,6 +169,9 @@ namespace Bailun.DC.SyncSemiStock
} }
/// <summary>
/// 同步供应商最新报价
/// </summary>
public void SyncSupplierPrice() public void SyncSupplierPrice()
{ {
var start = DateTime.Parse("2017-01-01"); var start = DateTime.Parse("2017-01-01");
...@@ -168,24 +186,30 @@ namespace Bailun.DC.SyncSemiStock ...@@ -168,24 +186,30 @@ namespace Bailun.DC.SyncSemiStock
cn.Open(); 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) if (obj != null)
{ {
start = obj.update_time; start = obj.update_time;
end = start.AddDays(1); 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)) if (!string.IsNullOrEmpty(result))
{ {
var json = Newtonsoft.Json.JsonConvert.DeserializeObject<response_SupplierPrice>(result); var json = Newtonsoft.Json.JsonConvert.DeserializeObject<response_SupplierPrice>(result);
if(json.success) 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); SaveSupplierPrice(json.data);
start = end; start = end;
end = end.AddDays(1); end = end.AddDays(1);
...@@ -281,7 +305,7 @@ namespace Bailun.DC.SyncSemiStock ...@@ -281,7 +305,7 @@ namespace Bailun.DC.SyncSemiStock
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")}&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 page = 1;
//var pagesize = 100; //var pagesize = 100;
...@@ -293,7 +317,7 @@ namespace Bailun.DC.SyncSemiStock ...@@ -293,7 +317,7 @@ namespace Bailun.DC.SyncSemiStock
if (json.success) 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); SaveStockLog(json.data.Items);
...@@ -302,15 +326,22 @@ namespace Bailun.DC.SyncSemiStock ...@@ -302,15 +326,22 @@ namespace Bailun.DC.SyncSemiStock
page = json.data.CurrentPage; page = json.data.CurrentPage;
totalpage = json.data.TotalPages; totalpage = json.data.TotalPages;
while(page<totalpage) while(page<totalpage)
{ {
page++; page++;
result = Common.HttpHelper.NetHelper.Request(url + $"btime={start.ToString("yyyy-MM-dd")}&etime={end.ToString("yyyy-MM-dd")}&page={page}&rows=100"); 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))
{
json = Newtonsoft.Json.JsonConvert.DeserializeObject<response_StockLog>(result); json = Newtonsoft.Json.JsonConvert.DeserializeObject<response_StockLog>(result);
if (json.success) if (json.success)
{ {
Console.WriteLine(url + $"btime={start.ToString("yyyy-MM-dd")}&etime={end.ToString("yyyy-MM-dd")}" + "::page"+page+"::获取数据成功!" + DateTime.Now); 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);
...@@ -318,6 +349,11 @@ namespace Bailun.DC.SyncSemiStock ...@@ -318,6 +349,11 @@ namespace Bailun.DC.SyncSemiStock
page = json.data.CurrentPage; page = json.data.CurrentPage;
totalpage = json.data.TotalPages; totalpage = json.data.TotalPages;
} }
}
else
{
goto reRead;
}
} }
...@@ -385,5 +421,36 @@ namespace Bailun.DC.SyncSemiStock ...@@ -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