Commit 84c8192b by guanzhenshan

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

parent 1b868f9d
......@@ -90,6 +90,11 @@ namespace Bailun.DC.Models
public decimal avg_thirtyday_sales { get; set; }
/// <summary>
/// 加权日均销量
/// </summary>
public decimal avg_weighting_day_sales { get; set; }
/// <summary>
/// 平均日均销量
/// </summary>
public decimal avg_sales { get; set; }
......
......@@ -24,9 +24,9 @@ namespace Bailun.DC.MonthSalePutin
// Services _service = new Services();
// //_service.Init(DateTime.Parse("2019-12-01"));
// //_service.UnReasonable("2019-12");
// //_service.Analyze("2019-12");
// //_service.Init(DateTime.Parse("2020-01-01"));
// _service.UnReasonable("2020-01");
// _service.Analyze("2020-01");
//}
}
}
......@@ -160,12 +160,12 @@ namespace Bailun.DC.MonthSalePutin
{
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 total = 0;
//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
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仓'
......@@ -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_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
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))
{
......@@ -189,7 +189,7 @@ namespace Bailun.DC.MonthSalePutin
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)
{
......@@ -217,7 +217,7 @@ namespace Bailun.DC.MonthSalePutin
//第三方仓不合理数据,消耗天数>45 or 30天内没销量
total = 0;
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
join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code and t2.hq_type='第三方仓库'
where t1.`month`='{month}' and t1.warehouse_type='第三方仓库'
......@@ -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_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
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))
{
......@@ -241,7 +241,7 @@ namespace Bailun.DC.MonthSalePutin
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)
{
......@@ -269,7 +269,7 @@ namespace Bailun.DC.MonthSalePutin
//国内仓不合理数据,消耗天数>14 or 30天内没销量
total = 0;
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
join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code and t2.hq_type='国内仓'
where t1.`month`='{month}' and t1.warehouse_type='国内仓'
......@@ -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_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
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;"))
{
......@@ -294,7 +294,7 @@ namespace Bailun.DC.MonthSalePutin
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)
{
......@@ -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) + ")");
}
//是否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