Commit 117bb060 by guanzhenshan

修复同步仓库冗余数据的问题

parent ae87d8cd
...@@ -15,8 +15,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Windows Console", "Windows ...@@ -15,8 +15,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Windows Console", "Windows
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.SaveSkuDeliverWeighDiff", "Bailun.DC.SaveSkuDeliverWeighDiff\Bailun.DC.SaveSkuDeliverWeighDiff.csproj", "{75536DAE-6ADD-463C-954E-55C95A991293}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.SaveSkuDeliverWeighDiff", "Bailun.DC.SaveSkuDeliverWeighDiff\Bailun.DC.SaveSkuDeliverWeighDiff.csproj", "{75536DAE-6ADD-463C-954E-55C95A991293}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "consoleService", "consoleService", "{CBED94A6-5000-41F3-BB28-19675A118131}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkuWHRedundancyService", "SkuWHRedundancyService\SkuWHRedundancyService.csproj", "{070FDDD3-6461-4A06-B8E2-4E099B51D11B}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkuWHRedundancyService", "SkuWHRedundancyService\SkuWHRedundancyService.csproj", "{070FDDD3-6461-4A06-B8E2-4E099B51D11B}"
EndProject EndProject
Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{4D94867E-FE5E-41EF-A6DD-EAA47A96269F}" Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{4D94867E-FE5E-41EF-A6DD-EAA47A96269F}"
...@@ -67,7 +65,7 @@ Global ...@@ -67,7 +65,7 @@ Global
EndGlobalSection EndGlobalSection
GlobalSection(NestedProjects) = preSolution GlobalSection(NestedProjects) = preSolution
{75536DAE-6ADD-463C-954E-55C95A991293} = {AE2CE86A-8538-4142-920F-684DCF47C064} {75536DAE-6ADD-463C-954E-55C95A991293} = {AE2CE86A-8538-4142-920F-684DCF47C064}
{070FDDD3-6461-4A06-B8E2-4E099B51D11B} = {CBED94A6-5000-41F3-BB28-19675A118131} {070FDDD3-6461-4A06-B8E2-4E099B51D11B} = {AE2CE86A-8538-4142-920F-684DCF47C064}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {6E53AF28-A282-4FB0-A769-EAEA9769C02A} SolutionGuid = {6E53AF28-A282-4FB0-A769-EAEA9769C02A}
......
...@@ -7,22 +7,22 @@ namespace SkuWHRedundancyService ...@@ -7,22 +7,22 @@ namespace SkuWHRedundancyService
{ {
class Program 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>();
});
await builder.RunConsoleAsync(); var service = new Services();
service.SaveRedundancy(DateTime.Now.AddDays(-1));
} }
//static void Main(string[] args)
//{
// var service = new Services();
// service.SaveRedundancy(DateTime.Now.AddDays(-1));
//}
} }
} }
...@@ -27,7 +27,7 @@ namespace SkuWHRedundancyService ...@@ -27,7 +27,7 @@ namespace SkuWHRedundancyService
{ {
var now = DateTime.Now; var now = DateTime.Now;
if (now.Hour == 10 && now.Minute == 10) if (now.Hour == 5 && now.Minute == 20)
{ {
SaveRedundancy(DateTime.Now.AddDays(-1)); SaveRedundancy(DateTime.Now.AddDays(-1));
} }
...@@ -56,26 +56,27 @@ namespace SkuWHRedundancyService ...@@ -56,26 +56,27 @@ namespace SkuWHRedundancyService
cn.Execute("delete from dc_mid_skuwarehouse_redundancy where `day`='" + date.ToString("yyyy-MM-dd") + "'",2*60); cn.Execute("delete from dc_mid_skuwarehouse_redundancy where `day`='" + date.ToString("yyyy-MM-dd") + "'",2*60);
var page = 1; var page = 1;
var pagesize = 4000; var pagesize = 5000;
var listcount = cn.QueryFirstOrDefault<int>("select count(id) from dc_base_stock"); var listcount = cn.QueryFirstOrDefault<int>("select count(id) from dc_base_stock");
var resultcount = 0; var resultcount = 0;
while (page == 1 || (resultcount == pagesize && resultcount != 0)) while (page == 1 || (resultcount == pagesize && resultcount != 0))
{ {
var strlimit = (((page - 1) * pagesize) + "," + pagesize); var strlimit = (((page - 1) * pagesize) + "," + pagesize);
var liststock = cn.Query<mWarehouseRedundancy>($@"select t1.bailun_sku,t1.warehouse_code,t1.usable_stock,t2.sku_title_cn,t2.unit_price,t3.warehouse_name,t4.quantity,t5.quantity_out_stock,t6.oneday_total_sales,t6.threeday_total_sales,t6.sevenday_total_sales,t6.fourteenday_total_sales,t6.thirtyday_total_sales,t6.threeday_average_sales,t6.sevenday_average_sales,t6.fourteenday_average_sales,t6.thirtyday_average_sales,t5.quantity_purchase,t5.quantity_transfer,t2.product_code,t2.bailun_category_id,t2.bailun_category_name,t7.status as 'monitorstatus',t8.tortstatus var liststock = cn.Query<mWarehouseRedundancy>($@"select t1.bailun_sku,t1.warehouse_code,t1.usable_stock,t1.sku_title_cn,t1.unit_price,t3.warehouse_name,t4.quantity,t5.quantity_out_stock,t6.oneday_total_sales,t6.threeday_total_sales,t6.sevenday_total_sales,t6.fourteenday_total_sales,t6.thirtyday_total_sales,t6.threeday_average_sales,t6.sevenday_average_sales,t6.fourteenday_average_sales,t6.thirtyday_average_sales,t5.quantity_purchase,t5.quantity_transfer,t1.product_code,t1.bailun_category_id,t1.bailun_category_name,t7.status as 'monitorstatus',t8.tortstatus
from dc_base_stock t1 from (select t01.bailun_sku,t01.warehouse_code,t01.usable_stock,t02.sku_title_cn,t02.unit_price,t02.product_code,t02.bailun_category_id,t02.bailun_category_name from dc_base_stock t01
join dc_base_sku t2 on t1.bailun_sku=t2.bailun_sku join dc_base_sku t02 on t01.bailun_sku=t02.bailun_sku and t02.company_id=1
join dc_base_warehouse t3 on t1.warehouse_code=t3.warehouse_code limit {strlimit}) t1
left join dc_auto_daily_redundance t4 on t4.record_time='{DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")}' and t1.bailun_sku=t4.bailun_sku and t1.warehouse_code=t4.warehouse_code -- 仓库冗余 join dc_base_warehouse t3 on t1.warehouse_code=t3.warehouse_code
left join dc_mid_transit t5 on t1.bailun_sku=t5.bailun_sku and t1.warehouse_code=t5.warehouse_code left join dc_auto_daily_redundance t4 on t4.record_time='{DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")}' and t1.bailun_sku=t4.bailun_sku and t1.warehouse_code=t4.warehouse_code -- 仓库冗余
left join dc_daily_sales t6 on t1.bailun_sku=t6.bailun_sku and t6.record_date='{DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")}' and t1.warehouse_code=t6.warehouse_code left join dc_mid_transit t5 on t1.bailun_sku=t5.bailun_sku and t1.warehouse_code=t5.warehouse_code
left join dc_auto_config_sku_warehouse t7 on t7.bailun_sku=t1.bailun_sku and t7.warehouse_code=t1.warehouse_code left join dc_daily_sales t6 on t1.bailun_sku=t6.bailun_sku and t6.record_date='{DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")}' and t1.warehouse_code=t6.warehouse_code
left join dc_sku_monitor t8 on t8.sku=t1.bailun_sku and t8.warehousecode=t1.warehouse_code left join dc_auto_config_sku_warehouse t7 on t7.bailun_sku=t1.bailun_sku and t7.warehouse_code=t1.warehouse_code
limit {strlimit}", null, null, true, 30 * 60); left join dc_sku_monitor t8 on t8.sku=t1.bailun_sku and t8.warehousecode=t1.warehouse_code
", null, null, true, 30 * 60);
resultcount = liststock.AsList().Count; resultcount = liststock.AsList().Count;
page++;
var str = @"insert dc_mid_skuwarehouse_redundancy (bailun_sku,bailun_sku_name,warehouse_code,warehouse_name,productcount,amount_total,daily_productsale_count,dailysale_amount,productsale_rate,saleamount_rate,redundancy_product_count,redundancy_product_rate,redundancy_amount,redundancy_amount_rate,yesterdaysale_amount,yesterdaysale_count,sale_3d_avg,sale_7d_avg,sale_14d_avg,sale_30d_avg,day_turnover_rate,week_turnover_rate,month_turnover_rate,stockout,day,createtime,onway_count,sku_product_code,bailun_category_id,bailun_category_name,monitorstatus,tortstatus) values "; var str = @"insert dc_mid_skuwarehouse_redundancy (bailun_sku,bailun_sku_name,warehouse_code,warehouse_name,productcount,amount_total,daily_productsale_count,dailysale_amount,productsale_rate,saleamount_rate,redundancy_product_count,redundancy_product_rate,redundancy_amount,redundancy_amount_rate,yesterdaysale_amount,yesterdaysale_count,sale_3d_avg,sale_7d_avg,sale_14d_avg,sale_30d_avg,day_turnover_rate,week_turnover_rate,month_turnover_rate,stockout,day,createtime,onway_count,sku_product_code,bailun_category_id,bailun_category_name,monitorstatus,tortstatus) values ";
foreach (var item in liststock) foreach (var item in liststock)
...@@ -91,11 +92,17 @@ namespace SkuWHRedundancyService ...@@ -91,11 +92,17 @@ namespace SkuWHRedundancyService
str = str.Substring(0, str.Length - 1); str = str.Substring(0, str.Length - 1);
cn.Execute(str, null, null, 5 * 60); cn.Execute(str, null, null, 5 * 60);
Console.WriteLine("当前页:" + page + ",每页记录:" + pagesize+";"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
} }
page++;
} }
//生成仓库维度的冗余报告 //生成仓库维度的冗余报告
cn.Execute("call Proc_SaveWarehouseRedundancy", null, null, 6 * 60); cn.Execute($@"delete from dc_mid_warehouse_redundancy where `day`='{DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")}';
INSERT INTO dc_mid_warehouse_redundancy(warehouse_code, warehouse_name, skucount, productcount, amount_total, skusales_count, skusales_rate, daily_productsale_count, productsale_rate, dailysale_amount, saleamount_rate, redundancy_sku_count, redundancy_sku_rate, redundancy_product_count, redundancy_product_rate, redundancy_amount, redundancy_amount_rate,`day`, onway_count)
select warehouse_code, warehouse_name, SUM(productcount) as skucount, count(bailun_sku) as productcount, sum(amount_total) as amount_total, sum(daily_productsale_count) as skusales_count, (sum(daily_productsale_count) / sum(productcount)) as skusales_rate, Count(if (daily_productsale_count > 0,1,null)) as daily_productsale_count,(count(if (daily_productsale_count > 0,1,null))/ count(bailun_sku)) as productsale_rate,sum(dailysale_amount) as dailysale_amount,(sum(dailysale_amount) / sum(amount_total)) as saleamount_rate,sum(redundancy_product_count) as redundancy_sku_count,(sum(redundancy_product_count) / SUM(productcount)) as redundancy_sku_rate,count(if (redundancy_product_count > 0,1,null)) as redundancy_product_count,(count(if (redundancy_product_count > 0,1,null))/ count(bailun_sku)) as redundancy_product_rate,sum(redundancy_amount) as redundancy_amount,(sum(redundancy_amount) / sum(amount_total)) as redundancy_amount_rate,`day`,sum(onway_count) as onway_count
from dc_mid_skuwarehouse_redundancy where `day`= '{DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")}' group by warehouse_code; ", null, null, 6 * 60);
Console.WriteLine("运行成功,时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); 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