Commit 84c8192b by guanzhenshan

是否合理报表增加是否aims下单的字段,增加百伦简单分类,增加加权日均字段,可用库存为0时,为合理

parent 1b868f9d
...@@ -90,6 +90,11 @@ namespace Bailun.DC.Models ...@@ -90,6 +90,11 @@ namespace Bailun.DC.Models
public decimal avg_thirtyday_sales { get; set; } public decimal avg_thirtyday_sales { get; set; }
/// <summary> /// <summary>
/// 加权日均销量
/// </summary>
public decimal avg_weighting_day_sales { get; set; }
/// <summary>
/// 平均日均销量 /// 平均日均销量
/// </summary> /// </summary>
public decimal avg_sales { get; set; } public decimal avg_sales { get; set; }
......
...@@ -24,9 +24,9 @@ namespace Bailun.DC.MonthSalePutin ...@@ -24,9 +24,9 @@ namespace Bailun.DC.MonthSalePutin
// Services _service = new Services(); // Services _service = new Services();
// //_service.Init(DateTime.Parse("2019-12-01")); // //_service.Init(DateTime.Parse("2020-01-01"));
// //_service.UnReasonable("2019-12"); // _service.UnReasonable("2020-01");
// //_service.Analyze("2019-12"); // _service.Analyze("2020-01");
//} //}
} }
} }
...@@ -160,12 +160,12 @@ namespace Bailun.DC.MonthSalePutin ...@@ -160,12 +160,12 @@ namespace Bailun.DC.MonthSalePutin
{ {
var sql = ""; var sql = "";
var sql_head = "insert dc_mid_month_sale_putin_report (sale_putin_id,count_usable_stock,avg_sevenday_sales,avg_fourteenday_sales,avg_thirtyday_sales,avg_sales,type,createtime) values "; var sql_head = "insert dc_mid_month_sale_putin_report (sale_putin_id,count_usable_stock,avg_sevenday_sales,avg_fourteenday_sales,avg_thirtyday_sales,avg_sales,type,createtime,avg_weighting_day_sales) values ";
var str = ""; var str = "";
var total = 0; var total = 0;
//FBA 不合理数据,消耗天数>69 or 30天内没销量 //FBA 不合理数据,消耗天数>69 or 30天内没销量
sql = $@"select tb.*,(tb.count_usable_stock/((tb.avg_sevenday_sales+tb.avg_fourteenday_sales+tb.avg_thirtyday_sales)/3)) avg_sales from ( sql = $@"select tb.*,(tb.count_usable_stock/((tb.avg_sevenday_sales+tb.avg_fourteenday_sales+tb.avg_thirtyday_sales)/3)) avg_sales,((tb.avg_sevenday_sales+tb.avg_fourteenday_sales+tb.avg_thirtyday_sales)/3) avg_weighting_day_sales from (
select t1.id as sale_putin_id,if(t3.usable_stock is null,0,t3.usable_stock) count_usable_stock,if(t4.sevenday_average_sales is null,0,t4.sevenday_average_sales) avg_sevenday_sales,if(t4.fourteenday_average_sales is null,0,t4.fourteenday_average_sales) avg_fourteenday_sales,if(t4.thirtyday_average_sales is null,0,thirtyday_average_sales) avg_thirtyday_sales from (select t1.* from dc_mid_month_sale_putin t1 select t1.id as sale_putin_id,if(t3.usable_stock is null,0,t3.usable_stock) count_usable_stock,if(t4.sevenday_average_sales is null,0,t4.sevenday_average_sales) avg_sevenday_sales,if(t4.fourteenday_average_sales is null,0,t4.fourteenday_average_sales) avg_fourteenday_sales,if(t4.thirtyday_average_sales is null,0,thirtyday_average_sales) avg_thirtyday_sales from (select t1.* from dc_mid_month_sale_putin t1
join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code and t2.hq_type='FBA仓' join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code and t2.hq_type='FBA仓'
where t1.`month`='{month}' and t1.warehouse_type='FBA仓' where t1.`month`='{month}' and t1.warehouse_type='FBA仓'
...@@ -173,7 +173,7 @@ namespace Bailun.DC.MonthSalePutin ...@@ -173,7 +173,7 @@ namespace Bailun.DC.MonthSalePutin
left join dc_daily_stock t3 on t1.warehouse_code=t3.warehouse_code and t1.bailun_sku=t3.bailun_sku and t3.record_time='{DateTime.Parse(month+"-1").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd")}' left join dc_daily_stock t3 on t1.warehouse_code=t3.warehouse_code and t1.bailun_sku=t3.bailun_sku and t3.record_time='{DateTime.Parse(month+"-1").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd")}'
left join dc_daily_sales t4 on t1.warehouse_code=t4.warehouse_code and t1.bailun_sku=t4.bailun_sku and t4.record_date='{DateTime.Parse(month + "-1").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd")}' left join dc_daily_sales t4 on t1.warehouse_code=t4.warehouse_code and t1.bailun_sku=t4.bailun_sku and t4.record_date='{DateTime.Parse(month + "-1").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd")}'
) tb ) tb
where tb.count_usable_stock/((tb.avg_sevenday_sales+tb.avg_fourteenday_sales+tb.avg_thirtyday_sales)/3)>69 or tb.avg_thirtyday_sales=0"; where tb.count_usable_stock>0 and (tb.count_usable_stock/((tb.avg_sevenday_sales+tb.avg_fourteenday_sales+tb.avg_thirtyday_sales)/3)>69 or tb.avg_thirtyday_sales=0)";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString)) using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{ {
...@@ -189,7 +189,7 @@ namespace Bailun.DC.MonthSalePutin ...@@ -189,7 +189,7 @@ namespace Bailun.DC.MonthSalePutin
foreach (var item in list) foreach (var item in list)
{ {
str += $" ({item.sale_putin_id},{item.count_usable_stock},{item.avg_sevenday_sales},{item.avg_fourteenday_sales},{item.avg_thirtyday_sales},{item.avg_sales},1,'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'),"; str += $" ({item.sale_putin_id},{item.count_usable_stock},{item.avg_sevenday_sales},{item.avg_fourteenday_sales},{item.avg_thirtyday_sales},{item.avg_sales},1,'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}',{item.avg_weighting_day_sales}),";
if ((total != 0 && total % 5000 == 0) || (total + 1) == list.Count) if ((total != 0 && total % 5000 == 0) || (total + 1) == list.Count)
{ {
...@@ -217,7 +217,7 @@ namespace Bailun.DC.MonthSalePutin ...@@ -217,7 +217,7 @@ namespace Bailun.DC.MonthSalePutin
//第三方仓不合理数据,消耗天数>45 or 30天内没销量 //第三方仓不合理数据,消耗天数>45 or 30天内没销量
total = 0; total = 0;
str = ""; str = "";
sql = $@"select tb.*,(tb.count_usable_stock/((tb.avg_sevenday_sales+tb.avg_fourteenday_sales+tb.avg_thirtyday_sales)/3)) avg_sales from ( sql = $@"select tb.*,(tb.count_usable_stock/((tb.avg_sevenday_sales+tb.avg_fourteenday_sales+tb.avg_thirtyday_sales)/3)) avg_sales,((tb.avg_sevenday_sales+tb.avg_fourteenday_sales+tb.avg_thirtyday_sales)/3) avg_weighting_day_sales from (
select t1.id as sale_putin_id,if(t3.usable_stock is null,0,t3.usable_stock) count_usable_stock,if(t4.sevenday_average_sales is null,0,t4.sevenday_average_sales) avg_sevenday_sales,if(t4.fourteenday_average_sales is null,0,t4.fourteenday_average_sales) avg_fourteenday_sales,if(t4.thirtyday_average_sales is null,0,thirtyday_average_sales) avg_thirtyday_sales from (select t1.* from dc_mid_month_sale_putin t1 select t1.id as sale_putin_id,if(t3.usable_stock is null,0,t3.usable_stock) count_usable_stock,if(t4.sevenday_average_sales is null,0,t4.sevenday_average_sales) avg_sevenday_sales,if(t4.fourteenday_average_sales is null,0,t4.fourteenday_average_sales) avg_fourteenday_sales,if(t4.thirtyday_average_sales is null,0,thirtyday_average_sales) avg_thirtyday_sales from (select t1.* from dc_mid_month_sale_putin t1
join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code and t2.hq_type='第三方仓库' join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code and t2.hq_type='第三方仓库'
where t1.`month`='{month}' and t1.warehouse_type='第三方仓库' where t1.`month`='{month}' and t1.warehouse_type='第三方仓库'
...@@ -225,7 +225,7 @@ namespace Bailun.DC.MonthSalePutin ...@@ -225,7 +225,7 @@ namespace Bailun.DC.MonthSalePutin
left join dc_daily_stock t3 on t1.warehouse_code=t3.warehouse_code and t1.bailun_sku=t3.bailun_sku and t3.record_time='{DateTime.Parse(month + "-1").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd")}' left join dc_daily_stock t3 on t1.warehouse_code=t3.warehouse_code and t1.bailun_sku=t3.bailun_sku and t3.record_time='{DateTime.Parse(month + "-1").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd")}'
left join dc_daily_sales t4 on t1.warehouse_code=t4.warehouse_code and t1.bailun_sku=t4.bailun_sku and t4.record_date='{DateTime.Parse(month + "-1").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd")}' left join dc_daily_sales t4 on t1.warehouse_code=t4.warehouse_code and t1.bailun_sku=t4.bailun_sku and t4.record_date='{DateTime.Parse(month + "-1").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd")}'
) tb ) tb
where tb.count_usable_stock/((tb.avg_sevenday_sales+tb.avg_fourteenday_sales+tb.avg_thirtyday_sales)/3)>45 or tb.avg_thirtyday_sales=0"; where tb.count_usable_stock>0 and (tb.count_usable_stock/((tb.avg_sevenday_sales+tb.avg_fourteenday_sales+tb.avg_thirtyday_sales)/3)>45 or tb.avg_thirtyday_sales=0) ";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString)) using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{ {
...@@ -241,7 +241,7 @@ namespace Bailun.DC.MonthSalePutin ...@@ -241,7 +241,7 @@ namespace Bailun.DC.MonthSalePutin
foreach (var item in list) foreach (var item in list)
{ {
str += $" ({item.sale_putin_id},{item.count_usable_stock},{item.avg_sevenday_sales},{item.avg_fourteenday_sales},{item.avg_thirtyday_sales},{item.avg_sales},1,'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'),"; str += $" ({item.sale_putin_id},{item.count_usable_stock},{item.avg_sevenday_sales},{item.avg_fourteenday_sales},{item.avg_thirtyday_sales},{item.avg_sales},1,'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}',{item.avg_weighting_day_sales}),";
if ((total != 0 && total % 5000 == 0) || (total + 1) == list.Count) if ((total != 0 && total % 5000 == 0) || (total + 1) == list.Count)
{ {
...@@ -269,7 +269,7 @@ namespace Bailun.DC.MonthSalePutin ...@@ -269,7 +269,7 @@ namespace Bailun.DC.MonthSalePutin
//国内仓不合理数据,消耗天数>14 or 30天内没销量 //国内仓不合理数据,消耗天数>14 or 30天内没销量
total = 0; total = 0;
str = ""; str = "";
sql = $@"select tb.*,(tb.count_usable_stock/((tb.avg_sevenday_sales+tb.avg_fourteenday_sales+tb.avg_thirtyday_sales)/3)) avg_sales from ( sql = $@"select tb.*,(tb.count_usable_stock/((tb.avg_sevenday_sales+tb.avg_fourteenday_sales+tb.avg_thirtyday_sales)/3)) avg_sales,((tb.avg_sevenday_sales+tb.avg_fourteenday_sales+tb.avg_thirtyday_sales)/3) avg_weighting_day_sales from (
select t1.id as sale_putin_id,if(t3.usable_stock is null,0,t3.usable_stock) count_usable_stock,if(t4.sevenday_average_sales is null,0,t4.sevenday_average_sales) avg_sevenday_sales,if(t4.fourteenday_average_sales is null,0,t4.fourteenday_average_sales) avg_fourteenday_sales,if(t4.thirtyday_average_sales is null,0,thirtyday_average_sales) avg_thirtyday_sales from (select t1.* from dc_mid_month_sale_putin t1 select t1.id as sale_putin_id,if(t3.usable_stock is null,0,t3.usable_stock) count_usable_stock,if(t4.sevenday_average_sales is null,0,t4.sevenday_average_sales) avg_sevenday_sales,if(t4.fourteenday_average_sales is null,0,t4.fourteenday_average_sales) avg_fourteenday_sales,if(t4.thirtyday_average_sales is null,0,thirtyday_average_sales) avg_thirtyday_sales from (select t1.* from dc_mid_month_sale_putin t1
join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code and t2.hq_type='国内仓' join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code and t2.hq_type='国内仓'
where t1.`month`='{month}' and t1.warehouse_type='国内仓' where t1.`month`='{month}' and t1.warehouse_type='国内仓'
...@@ -277,7 +277,7 @@ namespace Bailun.DC.MonthSalePutin ...@@ -277,7 +277,7 @@ namespace Bailun.DC.MonthSalePutin
left join dc_daily_stock t3 on t1.warehouse_code=t3.warehouse_code and t1.bailun_sku=t3.bailun_sku and t3.record_time='{DateTime.Parse(month + "-1").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd")}' left join dc_daily_stock t3 on t1.warehouse_code=t3.warehouse_code and t1.bailun_sku=t3.bailun_sku and t3.record_time='{DateTime.Parse(month + "-1").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd")}'
left join dc_daily_sales t4 on t1.warehouse_code=t4.warehouse_code and t1.bailun_sku=t4.bailun_sku and t4.record_date='{DateTime.Parse(month + "-1").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd")}' left join dc_daily_sales t4 on t1.warehouse_code=t4.warehouse_code and t1.bailun_sku=t4.bailun_sku and t4.record_date='{DateTime.Parse(month + "-1").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd")}'
) tb ) tb
where tb.count_usable_stock/((tb.avg_sevenday_sales+tb.avg_fourteenday_sales+tb.avg_thirtyday_sales)/3)>14 or tb.avg_thirtyday_sales=0"; where tb.count_usable_stock>0 and (tb.count_usable_stock/((tb.avg_sevenday_sales+tb.avg_fourteenday_sales+tb.avg_thirtyday_sales)/3)>14 or tb.avg_thirtyday_sales=0)";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString + "Allow User Variables=True;")) using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString + "Allow User Variables=True;"))
{ {
...@@ -294,7 +294,7 @@ namespace Bailun.DC.MonthSalePutin ...@@ -294,7 +294,7 @@ namespace Bailun.DC.MonthSalePutin
foreach (var item in list) foreach (var item in list)
{ {
str += $" ({item.sale_putin_id},{item.count_usable_stock},{item.avg_sevenday_sales},{item.avg_fourteenday_sales},{item.avg_thirtyday_sales},{item.avg_sales},1,'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'),"; str += $" ({item.sale_putin_id},{item.count_usable_stock},{item.avg_sevenday_sales},{item.avg_fourteenday_sales},{item.avg_thirtyday_sales},{item.avg_sales},1,'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}',{item.avg_weighting_day_sales}),";
if ((total != 0 && total % 5000 == 0) || (total + 1) == list.Count) if ((total != 0 && total % 5000 == 0) || (total + 1) == list.Count)
{ {
...@@ -367,8 +367,52 @@ namespace Bailun.DC.MonthSalePutin ...@@ -367,8 +367,52 @@ namespace Bailun.DC.MonthSalePutin
cn.Execute("update dc_mid_month_sale_putin_report set is_new=1 where id in (" + string.Join(",", list) + ")"); cn.Execute("update dc_mid_month_sale_putin_report set is_new=1 where id in (" + string.Join(",", list) + ")");
} }
//是否aims下单 //是否aims下单 AIMS(机器下单)(1、FBA仓,托管仓,15天前2个月内AIMS下单总数;2、国内仓3天前,一个月内AIMS下单总数) BI创建(手工单)(1、FBA仓,托管仓,15天前2个月内BI手工下单总数;2、国内仓3天前,一个月内BI手工下单总数)
//优先判断 aims下单
//国内仓
sql = $@"select DISTINCT t1.id from dc_mid_month_sale_putin_report t1
join dc_mid_month_sale_putin t2 on t1.sale_putin_id = t2.id and t2.warehouse_type='国内仓'
join dc_base_purchase_details t3 on t2.bailun_sku=t3.bailun_sku and t3.warehouse_from_code=t2.warehouse_code and t3.isallot=0 and t3.isaims=1 and t3.status!=-1 and t3.create_time>='{DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd HH:mm:ss")}' and t3.create_time<'{DateTime.Now.AddDays(-3).ToString("yyyy-MM-dd HH:mm:ss")}'
where t2.month='{month}'
union all
select DISTINCT t1.id from dc_mid_month_sale_putin_report t1
join dc_mid_month_sale_putin t2 on t1.sale_putin_id = t2.id and t2.warehouse_type='国内仓'
join dc_base_purchase_details t3 on t2.bailun_sku=t3.bailun_sku and t3.warehouse_into_code=t2.warehouse_code and t3.isallot=1 and t3.isaims=1 and t3.status!=-1 and t3.create_time>='{DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd HH:mm:ss")}' and t3.create_time<'{DateTime.Now.AddDays(-3).ToString("yyyy-MM-dd HH:mm:ss")}'
where t2.month='{month}'";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString + "Allow User Variables=True;"))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
var list = cn.Query<int>(sql, null, null, true, 10 * 60).AsList();
cn.Execute("update dc_mid_month_sale_putin_report set is_aimsorder=1 where id in (" + string.Join(",", list) + ")");
}
//非国内仓
sql = $@"select DISTINCT t1.id from dc_mid_month_sale_putin_report t1
join dc_mid_month_sale_putin t2 on t1.sale_putin_id = t2.id and t2.warehouse_type!='国内仓'
join dc_base_purchase_details t3 on t2.bailun_sku=t3.bailun_sku and t3.warehouse_from_code=t2.warehouse_code and t3.isallot=0 and t3.isaims=1 and t3.status!=-1 and t3.create_time>='{DateTime.Now.AddMonths(-2).ToString("yyyy-MM-dd HH:mm:ss")}' and t3.create_time<'{DateTime.Now.AddDays(-15).ToString("yyyy-MM-dd HH:mm:ss")}'
where t2.month='{month}'
union all
select DISTINCT t1.id from dc_mid_month_sale_putin_report t1
join dc_mid_month_sale_putin t2 on t1.sale_putin_id = t2.id and t2.warehouse_type!='国内仓'
join dc_base_purchase_details t3 on t2.bailun_sku=t3.bailun_sku and t3.warehouse_into_code=t2.warehouse_code and t3.isallot=1 and t3.isaims=1 and t3.status!=-1 and t3.create_time>='{DateTime.Now.AddMonths(-2).ToString("yyyy-MM-dd HH:mm:ss")}' and t3.create_time<'{DateTime.Now.AddDays(-15).ToString("yyyy-MM-dd HH:mm:ss")}'
where t2.month='{month}'";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString + "Allow User Variables=True;"))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
var list = cn.Query<int>(sql, null, null, true, 10 * 60).AsList();
cn.Execute("update dc_mid_month_sale_putin_report set is_aimsorder=1 where id in (" + string.Join(",", list) + ")");
}
} }
......
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