Commit e92f4cc9 by 泽锋 李

fix

parent 57cf9af2
......@@ -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>() {
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>()},
......@@ -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_ocean = result_ocean.advised_details.ToObj<List<decimal>>();
var btime = DateTime.Now.AddDays(-30);
var etime = DateTime.Now.AddDays(sales_details.Count - 7);
var etime = DateTime.Now;
var this_time = btime;
var now = DateTime.Now.ToDayHome();
var index = -23;
while (this_time.ToDayHome() <= etime.ToDayEnd())
while (this_time.ToDayHome() <= etime.ToDayHome())
{
var this_time_end = this_time.ToDayEnd();
// 预测未来
......@@ -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
{
warehouse_code = result.warehouse_code,
......@@ -1305,15 +1312,15 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime
date = this_time,
val = modalData.freight_unit_price
});
modalData.freight_price = modalData.freight_unit_price * modalData.purchase_quantity;
datas.FirstOrDefault(s => s.name == "实际周转建议运费").days.Add(new transfer_profit_dto.day_dto
modalData.freight_price = modalData.freight_unit_price * modalData.turnover;
datas.FirstOrDefault(s => s.name == "实际周转运费").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
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
{
date = this_time,
......@@ -1332,7 +1339,7 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime
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
{
date = this_time,
......@@ -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
{
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,
bailun_sku = result.bailun_sku,
......@@ -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
{
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,
bailun_sku = result.bailun_sku,
......@@ -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
{
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,
bailun_sku = result.bailun_sku,
......@@ -1440,7 +1447,7 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime
val = modalData.freight_unit_price
});
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,
val = modalData.freight_price
......@@ -1575,6 +1582,11 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime
internal decimal? quantity_final_advise;
/// <summary>
/// 实际周转数
/// </summary>
internal int? turnover;
/// <summary>
/// 实际建议周转金额
/// </summary>
internal decimal? quantity_final_advise_amount;
......@@ -1590,7 +1602,7 @@ from dc_auto_turnover_air where gmt_modified>=@btime and gmt_modified<=@etime
internal decimal? freight_unit_price;
/// <summary>
/// 实际周转建议运费
/// 实际周转运费
/// </summary>
internal decimal? freight_price;
/// <summary>
......
......@@ -83,6 +83,11 @@ namespace AutoTurnOver.Models
/// </summary>
public decimal quantity_safe_inventory { get; set; }
/// <summary>
/// 日均加权销量
/// </summary>
public decimal daily_weighted_sales { get; set; }
/// <summary>
/// 备注
......
......@@ -23,7 +23,7 @@ namespace AutoTurnOver.Purchase.AverageTarget
Console.WriteLine("采购平均值计算任务启动...");
try
{
//report.ResetTransExpectArrivaltime();
report.ResetTransExpectArrivaltime();
//PurchaseAverageTargetServices.CalculationTransfer("LM-EO-007", days: (360 * 3));
}
catch (Exception ex)
......
......@@ -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>();
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 - 开始生成文件");
var memory = new PurchaseAdviseServices().Export(search_data);
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