Commit e92f4cc9 by 泽锋 李

fix

parent 57cf9af2
...@@ -1194,21 +1194,21 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime ...@@ -1194,21 +1194,21 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime
{ {
List<transfer_profit_dto> datas = new List<transfer_profit_dto>() { List<transfer_profit_dto> datas = new List<transfer_profit_dto>() {
new transfer_profit_dto{ name ="采购单价",remarks = "历史值:历史采购订单的价格,预测值:当前sku资料的采购价格",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="采购单价",remarks = "历史值:历史采购订单的价格,预测值:当前sku资料的采购价格",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="实际建议周转数",remarks = "历史值:历史跑出来的的周转建议数,预测值:预测建议数",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="实际建议周转数",remarks = "历史值:历史跑出来的的周转数,预测值:预测建议数",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="实际建议周转金额",remarks="历史值:当天的历史采购金额,预测值:预测周转建议数*采购单价",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="实际建议周转金额",remarks="历史值:当天的历史采购金额,预测值:预测周转数*采购单价",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="实际周转数",remarks = "实际采购的数量",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="实际周转数",remarks = "(周转天数 * 日均销量)+ 安全库存 ",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="实际周转建议运费",remarks = "周转建议数 * 实际运费单价",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="实际周转运费",remarks = "周转数 * 实际运费单价",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="实际运费单价",remarks ="移动平均数算法算出来的历史平均调拨费用",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="实际运费单价",remarks ="移动平均数算法算出来的历史平均调拨费用",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="海运周转数(推荐海运)",remarks = "使用海运平均交期跑出来的周转建议数",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="海运周转数(推荐海运)",remarks = "(海运周转天数 * 日均销量)+ 安全库存",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="海运周转金额",remarks = "海运周转建议数 * 采购价 ",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="海运周转金额",remarks = "海运周转数 * 采购价 ",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="海运周转运费",remarks = "海运周转建议数 * 最便宜的海运物流跑出来的运费单价 ",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="海运周转运费",remarks = "海运周转数 * 最便宜的海运物流跑出来的运费单价 ",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="空运周转数(推荐空运)",remarks = "使用海运平均交期跑出来的周转建议数",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="空运周转数(推荐空运)",remarks = "(空运运周转天数 * 日均销量)+ 安全库存",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="空运周转金额",remarks = "空运周转建议数 * 采购价",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="空运周转金额",remarks = "空运周转数 * 采购价",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="空运周转运费",remarks="空运周转建议数 * 最便宜的空运物流跑出来的运费单价 ",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="空运周转运费",remarks="空运周转数 * 最便宜的空运物流跑出来的运费单价 ",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="实际-海运运费差值",remarks = "【实际周转建议运费】-【海运周转运费】",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="实际-海运运费差值",remarks = "【实际周转运费】-【海运周转运费】",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="实际-海运周转采购金额差值",remarks = "【实际建议周转金额】-【海运周转金额】",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="实际-海运周转采购金额差值",remarks = "【实际建议周转金额】-【海运周转金额】",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="差值(海运)-实际周转采购金额占比",remarks = "【实际-海运运费差值】/ 【实际建议周转金额】",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="差值(海运)-实际周转采购金额占比",remarks = "【实际-海运运费差值】/ 【实际建议周转金额】",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="实际-空运运费差值",remarks="【实际周转建议运费】-【空运周转运费】",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="实际-空运运费差值",remarks="【实际周转运费】-【空运周转运费】",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="实际-空运周转采购金额差值",remarks = "【实际建议周转金额】-【空运周转金额】",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="实际-空运周转采购金额差值",remarks = "【实际建议周转金额】-【空运周转金额】",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="差值(空运)-实际周转采购金额占比",remarks = "【实际-空运运费差值】/ 【实际建议周转金额】",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="差值(空运)-实际周转采购金额占比",remarks = "【实际-空运运费差值】/ 【实际建议周转金额】",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="海运-空运运费差值",remarks="【海运周转运费】-【空运运周转运费】",days = new List<transfer_profit_dto.day_dto>()}, new transfer_profit_dto{ name ="海运-空运运费差值",remarks="【海运周转运费】-【空运运周转运费】",days = new List<transfer_profit_dto.day_dto>()},
...@@ -1246,11 +1246,11 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime ...@@ -1246,11 +1246,11 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime
var advised_details_air = result_air.advised_details.ToObj<List<decimal>>(); var advised_details_air = result_air.advised_details.ToObj<List<decimal>>();
var advised_details_ocean = result_ocean.advised_details.ToObj<List<decimal>>(); var advised_details_ocean = result_ocean.advised_details.ToObj<List<decimal>>();
var btime = DateTime.Now.AddDays(-30); var btime = DateTime.Now.AddDays(-30);
var etime = DateTime.Now.AddDays(sales_details.Count - 7); var etime = DateTime.Now;
var this_time = btime; var this_time = btime;
var now = DateTime.Now.ToDayHome(); var now = DateTime.Now.ToDayHome();
var index = -23; var index = -23;
while (this_time.ToDayHome() <= etime.ToDayEnd()) while (this_time.ToDayHome() <= etime.ToDayHome())
{ {
var this_time_end = this_time.ToDayEnd(); var this_time_end = this_time.ToDayEnd();
// 预测未来 // 预测未来
...@@ -1295,6 +1295,13 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime ...@@ -1295,6 +1295,13 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime
{ {
} }
// 周转天数 * 加权日均
modalData.turnover = (int)Math.Round( result.quantity_safe_inventory + ( result.daily_weighted_sales * result.turnover_days ));
datas.FirstOrDefault(s => s.name == "实际周转数").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
val = modalData.turnover
});
modalData.freight_unit_price = _connection.QueryFirstOrDefault<decimal?>(" select freight_unit_price from dc_base_transfer_freight where warehouse_code=@warehouse_code and bailun_sku=@bailun_sku limit 1 ", new modalData.freight_unit_price = _connection.QueryFirstOrDefault<decimal?>(" select freight_unit_price from dc_base_transfer_freight where warehouse_code=@warehouse_code and bailun_sku=@bailun_sku limit 1 ", new
{ {
warehouse_code = result.warehouse_code, warehouse_code = result.warehouse_code,
...@@ -1305,15 +1312,15 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime ...@@ -1305,15 +1312,15 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime
date = this_time, date = this_time,
val = modalData.freight_unit_price val = modalData.freight_unit_price
}); });
modalData.freight_price = modalData.freight_unit_price * modalData.purchase_quantity; modalData.freight_price = modalData.freight_unit_price * modalData.turnover;
datas.FirstOrDefault(s => s.name == "实际周转建议运费").days.Add(new transfer_profit_dto.day_dto datas.FirstOrDefault(s => s.name == "实际周转运费").days.Add(new transfer_profit_dto.day_dto
{ {
date = this_time, date = this_time,
val = modalData.freight_price val = modalData.freight_price
}); });
modalData.quantity_final_advise_ocean = (advised_details_ocean.Count-1<index?0 :advised_details_ocean[index]); modalData.quantity_final_advise_ocean = (int)Math.Round(result_ocean.quantity_safe_inventory + (result_ocean.daily_weighted_sales * result_ocean.turnover_days));
datas.FirstOrDefault(s => s.name == "海运周转数(推荐海运)").days.Add(new transfer_profit_dto.day_dto datas.FirstOrDefault(s => s.name == "海运周转数(推荐海运)").days.Add(new transfer_profit_dto.day_dto
{ {
date = this_time, date = this_time,
...@@ -1332,7 +1339,7 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime ...@@ -1332,7 +1339,7 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime
val = modalData.freight_price_ocean val = modalData.freight_price_ocean
}); });
modalData.quantity_final_advise_air = (advised_details_air.Count - 1 < index ? 0 : advised_details_air[index]); modalData.quantity_final_advise_air = (int)Math.Round(result_air.quantity_safe_inventory + (result_air.daily_weighted_sales * result_air.turnover_days));
datas.FirstOrDefault(s => s.name == "空运周转数(推荐空运)").days.Add(new transfer_profit_dto.day_dto datas.FirstOrDefault(s => s.name == "空运周转数(推荐空运)").days.Add(new transfer_profit_dto.day_dto
{ {
date = this_time, date = this_time,
...@@ -1358,7 +1365,7 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime ...@@ -1358,7 +1365,7 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime
datas.FirstOrDefault(s => s.name == "安全库存数量").days.Add(new transfer_profit_dto.day_dto datas.FirstOrDefault(s => s.name == "安全库存数量").days.Add(new transfer_profit_dto.day_dto
{ {
date = this_time, date = this_time,
val = _connection.QueryFirstOrDefault<decimal?>(" select quantity_safe_inventory from dc_base_forecast_history where warehouse_code=@warehouse_code and bailun_sku=@bailun_sku and date_str<=@date_str limit 1 ", new val = _connection.QueryFirstOrDefault<int?>(" select quantity_safe_inventory from dc_base_forecast_history where warehouse_code=@warehouse_code and bailun_sku=@bailun_sku and date_str<=@date_str limit 1 ", new
{ {
warehouse_code = result.warehouse_code, warehouse_code = result.warehouse_code,
bailun_sku = result.bailun_sku, bailun_sku = result.bailun_sku,
...@@ -1369,7 +1376,7 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime ...@@ -1369,7 +1376,7 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime
datas.FirstOrDefault(s => s.name == "空运周转天数").days.Add(new transfer_profit_dto.day_dto datas.FirstOrDefault(s => s.name == "空运周转天数").days.Add(new transfer_profit_dto.day_dto
{ {
date = this_time, date = this_time,
val = _connection.QueryFirstOrDefault<decimal?>(" select turnover_days from dc_base_forecast_history_air where warehouse_code=@warehouse_code and bailun_sku=@bailun_sku and date_str<=@date_str limit 1 ", new val = _connection.QueryFirstOrDefault<int?>(" select turnover_days from dc_base_forecast_history_air where warehouse_code=@warehouse_code and bailun_sku=@bailun_sku and date_str<=@date_str limit 1 ", new
{ {
warehouse_code = result.warehouse_code, warehouse_code = result.warehouse_code,
bailun_sku = result.bailun_sku, bailun_sku = result.bailun_sku,
...@@ -1380,7 +1387,7 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime ...@@ -1380,7 +1387,7 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime
datas.FirstOrDefault(s => s.name == "海运周转天数").days.Add(new transfer_profit_dto.day_dto datas.FirstOrDefault(s => s.name == "海运周转天数").days.Add(new transfer_profit_dto.day_dto
{ {
date = this_time, date = this_time,
val = _connection.QueryFirstOrDefault<decimal?>(" select turnover_days from dc_base_forecast_history_ocean where warehouse_code=@warehouse_code and bailun_sku=@bailun_sku and date_str<=@date_str limit 1 ", new val = _connection.QueryFirstOrDefault<int?>(" select turnover_days from dc_base_forecast_history_ocean where warehouse_code=@warehouse_code and bailun_sku=@bailun_sku and date_str<=@date_str limit 1 ", new
{ {
warehouse_code = result.warehouse_code, warehouse_code = result.warehouse_code,
bailun_sku = result.bailun_sku, bailun_sku = result.bailun_sku,
...@@ -1440,7 +1447,7 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime ...@@ -1440,7 +1447,7 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime
val = modalData.freight_unit_price val = modalData.freight_unit_price
}); });
modalData.freight_price = modalData.freight_unit_price * modalData.purchase_quantity; modalData.freight_price = modalData.freight_unit_price * modalData.purchase_quantity;
datas.FirstOrDefault(s => s.name == "实际周转建议运费").days.Add(new transfer_profit_dto.day_dto datas.FirstOrDefault(s => s.name == "实际周转运费").days.Add(new transfer_profit_dto.day_dto
{ {
date = this_time, date = this_time,
val = modalData.freight_price val = modalData.freight_price
...@@ -1575,6 +1582,11 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime ...@@ -1575,6 +1582,11 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime
internal decimal? quantity_final_advise; internal decimal? quantity_final_advise;
/// <summary> /// <summary>
/// 实际周转数
/// </summary>
internal int? turnover;
/// <summary>
/// 实际建议周转金额 /// 实际建议周转金额
/// </summary> /// </summary>
internal decimal? quantity_final_advise_amount; internal decimal? quantity_final_advise_amount;
...@@ -1590,7 +1602,7 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime ...@@ -1590,7 +1602,7 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime
internal decimal? freight_unit_price; internal decimal? freight_unit_price;
/// <summary> /// <summary>
/// 实际周转建议运费 /// 实际周转运费
/// </summary> /// </summary>
internal decimal? freight_price; internal decimal? freight_price;
/// <summary> /// <summary>
......
...@@ -83,6 +83,11 @@ namespace AutoTurnOver.Models ...@@ -83,6 +83,11 @@ namespace AutoTurnOver.Models
/// </summary> /// </summary>
public decimal quantity_safe_inventory { get; set; } public decimal quantity_safe_inventory { get; set; }
/// <summary>
/// 日均加权销量
/// </summary>
public decimal daily_weighted_sales { get; set; }
/// <summary> /// <summary>
/// 备注 /// 备注
......
...@@ -23,7 +23,7 @@ namespace AutoTurnOver.Purchase.AverageTarget ...@@ -23,7 +23,7 @@ namespace AutoTurnOver.Purchase.AverageTarget
Console.WriteLine("采购平均值计算任务启动..."); Console.WriteLine("采购平均值计算任务启动...");
try try
{ {
//report.ResetTransExpectArrivaltime(); report.ResetTransExpectArrivaltime();
//PurchaseAverageTargetServices.CalculationTransfer("LM-EO-007", days: (360 * 3)); //PurchaseAverageTargetServices.CalculationTransfer("LM-EO-007", days: (360 * 3));
} }
catch (Exception ex) catch (Exception ex)
......
...@@ -186,6 +186,30 @@ namespace AutoTurnOver.Services ...@@ -186,6 +186,30 @@ namespace AutoTurnOver.Services
{ {
dc_auto_purchase_advise_detailed_search_dto search_data = par_json.ToObject<dc_auto_purchase_advise_detailed_search_dto>(); dc_auto_purchase_advise_detailed_search_dto search_data = par_json.ToObject<dc_auto_purchase_advise_detailed_search_dto>();
if (search_data.is_delete != 0)
{
if(search_data.end_date==null || search_data.start_date==null)
{
throw new Exception("导已过期的数据务必带上时间范围");
}
double days = 31;
try
{
days = (search_data.end_date.Value - search_data.start_date.Value).TotalDays;
}
catch (Exception)
{
}
if (days >= 30)
{
throw new Exception("已经过期的数据时间范围不可超过30天");
}
}
Console.WriteLine("DownloadStock - 开始生成文件"); Console.WriteLine("DownloadStock - 开始生成文件");
var memory = new PurchaseAdviseServices().Export(search_data); var memory = new PurchaseAdviseServices().Export(search_data);
Console.WriteLine("DownloadStock - 开始生成上传文件"); Console.WriteLine("DownloadStock - 开始生成上传文件");
......
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