Commit 1ab55881 by 泽锋 李

新增半成品库存数据的同步

parent 86d19877
using AutoTurnOver.Models;
using AutoTurnOver.Models.Report;
using Dapper;
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using AutoTurnOver.Models.Base;
using AutoTurnOver.DB.Base;
using AutoTurnOver.Utility;
using AutoTurnOver.Models.ApiDto;
using AutoTurnOver.Models.stock;
namespace AutoTurnOver.DB
{
/// <summary>
/// 半成品仓库存
/// </summary>
public class wip_stock_dao : connectionHelper
{
/// <summary>
/// 同步数据
/// </summary>
public static void Synchronization()
{
var conn = _connection;
int page = 0;
int rows = 5000;
var dc_base_wip_warehouse_list = new List<dc_base_wip_warehouse>();
while (true)
{
page++;
var datas = GetPageData(page, rows);
if (datas.Count <= 0)
{
break;
}
dc_base_wip_warehouse_list.AddRange(datas.GroupBy(s=>new { s.warehouse_id}).Select(s=>new dc_base_wip_warehouse { warehouse_code = s.Key.warehouse_id.ToString(),warehouse_name = s.Max(v=>v.warehouse_name)}));
foreach (var item in datas)
{
var new_data = new dc_base_wip_stock
{
bailun_sku = item.material_code,
quantity_safe_inventory = item.safe_inventory,
sku_name = item.material_name,
unit_price = item.new_price ?? 0,
usable_stock = item.stock,
warehouse_code = item.warehouse_id.ToString()
};
var old_data = conn.QuerySingleOrDefault<dc_base_wip_stock>(" select * from dc_base_wip_stock where warehouse_code=@warehouse_code and bailun_sku=@bailun_sku ", new { warehouse_code = new_data.warehouse_code, bailun_sku = new_data.bailun_sku });
if (old_data != null)
{
new_data.id = old_data.id;
conn.Update(new_data);
}
else
{
conn.Insert(new_data);
}
}
}
if (dc_base_wip_warehouse_list != null)
{
foreach (var item in dc_base_wip_warehouse_list)
{
// 检查是否存在
var old_data = conn.QuerySingleOrDefault<dc_base_wip_warehouse>(" select * from dc_base_wip_warehouse where warehouse_code=@warehouse_code ",new { warehouse_code = item.warehouse_code });
if (old_data != null)
{
item.id = old_data.id;
conn.Update(item);
}
else
{
conn.Insert(item);
}
}
}
}
/// <summary>
/// 账号列表
/// </summary>
public static List<wip_material_full_stock_dto> GetPageData(int page,int rows)
{
string url = ConfigHelper.GetValue("WipStockUrl");
string resultStr = HttpHelper.Request(url, RequestType.POST, new {page = page,rows =rows }.ToJson(), timeout: 1000 * 60 * 60 * 24,entype:"application/json");
var result = resultStr.ToObj<wip_sys_api_dto>();
if (result == null)
{
throw new Exception("账号系统异常: 未获取到数据");
}
if (!result.success)
{
throw new Exception("账号系统异常: " + result.message);
}
return result.data.items;
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace AutoTurnOver.Models.ApiDto
{
/// <summary>
/// 半成品库存
/// </summary>
public class wip_material_full_stock_dto
{
public int material_id { get; set; }
public int warehouse_id { get; set; }
/// <summary>
/// 安全库存
/// </summary>
public decimal safe_inventory { get; set; }
/// <summary>
/// 总库存
/// </summary>
public decimal stock { get; set; }
public string sup_name { get; set; }
public decimal jit_stock { get; set; }
public decimal plan_stock { get; set; }
public string warehouse_name { get; set; }
public string material_code { get; set; }
public string material_name { get; set; }
/// <summary>
/// 最新报价
/// </summary>
public decimal? new_price { get; set; }
public string material_category { get; set; }
public string order_detail { get; set; }
}
public class wip_sys_api_dto
{
public bool success { get; set; }
public string message { get; set; }
public page_dto data { get; set; }
public class page_dto
{
public List<wip_material_full_stock_dto> items { get; set; }
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace AutoTurnOver.Models.stock
{
public class dc_base_wip_stock
{
public int id { get; set; }
public string warehouse_code { get; set; }
public string bailun_sku { get; set; }
public decimal usable_stock { get; set; }
public decimal quantity_safe_inventory { get; set; }
public string sku_name { get; set; }
public decimal unit_price { get; set; }
}
public class dc_base_wip_warehouse
{
public int id { get; set; }
public string warehouse_code { get; set; }
public string warehouse_name { get; set; }
}
}
...@@ -13,6 +13,7 @@ namespace ResetOutofstock ...@@ -13,6 +13,7 @@ namespace ResetOutofstock
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<ResetOutofstockBackgrounService>(); services.AddHostedService<ResetOutofstockBackgrounService>();
......
...@@ -19,6 +19,25 @@ namespace ResetOutofstock ...@@ -19,6 +19,25 @@ namespace ResetOutofstock
{ {
try try
{ {
Console.WriteLine($"开始 同步半成品库存数据,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
wip_stock_dao.Synchronization();
Console.WriteLine($"结束 同步半成品库存数据,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Thread.Sleep(60 * 60 * 1000);
}
});
Task.Factory.StartNew(() => {
while (true)
{
try
{
Console.WriteLine($"开始刷新缺货明细数据,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}"); Console.WriteLine($"开始刷新缺货明细数据,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
report.ResetOutofstock(); report.ResetOutofstock();
Console.WriteLine($"结束刷新缺货明细数据任务,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}"); Console.WriteLine($"结束刷新缺货明细数据任务,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
......
...@@ -8,5 +8,6 @@ ...@@ -8,5 +8,6 @@
"Port": "6379", "Port": "6379",
"Password": "SpaceHorse1", "Password": "SpaceHorse1",
"Defaultdatabase": "0" "Defaultdatabase": "0"
} },
"WipStockUrl": "http://mjzz.bailuntec.com/api/FullStockPageList"
} }
...@@ -9,5 +9,6 @@ ...@@ -9,5 +9,6 @@
"Password": "", "Password": "",
"Defaultdatabase": "0" "Defaultdatabase": "0"
}, },
"PPS_ShortagePush": "http://bltpro.bailuntec.com/api/EbayTask/PushSkuEditQtyTask" "PPS_ShortagePush": "http://bltpro.bailuntec.com/api/EbayTask/PushSkuEditQtyTask",
"WipStockUrl": "http://mjzz.bailuntec.com/api/FullStockPageList"
} }
...@@ -2,5 +2,6 @@ ...@@ -2,5 +2,6 @@
"ConnectionStrings": { "ConnectionStrings": {
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;" "Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
}, },
"PPS_ShortagePush": "http://10.0.6.8:8002/api/EbayTask/PushSkuEditQtyTask" "PPS_ShortagePush": "http://10.0.6.8:8002/api/EbayTask/PushSkuEditQtyTask",
"WipStockUrl": "http://mjzz.bailuntec.com/api/FullStockPageList"
} }
\ No newline at end of file
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