Commit 9bd0ba8b by 泽锋 李

fix

parent a0759264
...@@ -73,7 +73,33 @@ namespace AutoTurnOver.DB ...@@ -73,7 +73,33 @@ namespace AutoTurnOver.DB
task_data.error_stack_trace = "模拟计算销量"; task_data.error_stack_trace = "模拟计算销量";
conn.Update(task_data); conn.Update(task_data);
// 找出有销量的第一天
var f_date = turnover_list.Where(s => s.type == (int)invented_turnover_model.type_enum.销量 && s.val > 0).OrderBy(s => s.date).FirstOrDefault();
if (f_date!=null)
{
logs.Add(new dc_report_cash_flow_forecast_task_log()
{
warehouse_code = task_data.warehouse_code,
bailun_sku = task_data.bailun_sku,
data_type = (int)dc_report_cash_flow_log_data_type_enum.上架费,
is_delete = 0,
item = "",
item_no = $"虚拟销售单 - {task_data.id}-{f_date.date_str}",
no = $"虚拟销售单 - {task_data.id}-{f_date.date_str}",
occur_time = f_date.date,
pay_type = (int)dc_report_cash_flow_log_pay_type_enum.实时,
remarks = "模拟跑单",
task_id = task_data.id,
platform_type = task_data.platform_type,
val = task_data.pps_fee??0,
update_time = now,
web_site = task_data.web_site,
pay_time_year_month_no = "",
occur_time_year_month_no = "",
pay_time = report_cash_flow_dao.CalculationPayTime(configs, f_date.date, (int)dc_report_cash_flow_log_data_type_enum.销售金额, task_data.platform_type, task_data.web_site)
});
}
// 模拟销销售额 // 模拟销销售额
logs.AddRange(turnover_list.Where(s => s.type == (int)invented_turnover_model.type_enum.销量).Select((s, index) => new dc_report_cash_flow_forecast_task_log() logs.AddRange(turnover_list.Where(s => s.type == (int)invented_turnover_model.type_enum.销量).Select((s, index) => new dc_report_cash_flow_forecast_task_log()
{ {
...@@ -142,6 +168,29 @@ namespace AutoTurnOver.DB ...@@ -142,6 +168,29 @@ namespace AutoTurnOver.DB
occur_time_year_month_no = "", occur_time_year_month_no = "",
pay_time = report_cash_flow_dao.CalculationPayTime(configs, s.date, (int)dc_report_cash_flow_log_data_type_enum.销售数量, task_data.platform_type, task_data.web_site) pay_time = report_cash_flow_dao.CalculationPayTime(configs, s.date, (int)dc_report_cash_flow_log_data_type_enum.销售数量, task_data.platform_type, task_data.web_site)
})); }));
// 模拟广告费
logs.AddRange(turnover_list.Where(s => s.type == (int)invented_turnover_model.type_enum.销量).Select((s, index) => new dc_report_cash_flow_forecast_task_log()
{
warehouse_code = task_data.warehouse_code,
bailun_sku = task_data.bailun_sku,
data_type = (int)dc_report_cash_flow_log_data_type_enum.广告费,
is_delete = 0,
item = "",
item_no = $"虚拟销售单 - {task_data.id}-{s.date_str}-{index}",
no = $"虚拟销售单 - {task_data.id}-{s.date_str}-{index}",
occur_time = s.date,
pay_type = (int)dc_report_cash_flow_log_pay_type_enum.实时,
remarks = "模拟跑单",
task_id = task_data.id,
platform_type = task_data.platform_type,
val = s.val * task_data.sale_unit_price_cny * (task_data.ad_fee??0),
update_time = now,
web_site = task_data.web_site,
pay_time_year_month_no = "",
occur_time_year_month_no = "",
pay_time = report_cash_flow_dao.CalculationPayTime(configs, s.date, (int)dc_report_cash_flow_log_data_type_enum.销售数量, task_data.platform_type, task_data.web_site)
}));
// 模拟fba费 // 模拟fba费
logs.AddRange(turnover_list.Where(s => s.type == (int)invented_turnover_model.type_enum.销量).Select((s, index) => new dc_report_cash_flow_forecast_task_log() logs.AddRange(turnover_list.Where(s => s.type == (int)invented_turnover_model.type_enum.销量).Select((s, index) => new dc_report_cash_flow_forecast_task_log()
...@@ -692,6 +741,8 @@ namespace AutoTurnOver.DB ...@@ -692,6 +741,8 @@ namespace AutoTurnOver.DB
info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 5 }, date_type_str = "平台费", remarks = "平台费率 * 销售金额", dates = new List<report_cash_flow_view_dto.date_dto>() }); info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 5 }, date_type_str = "平台费", remarks = "平台费率 * 销售金额", dates = new List<report_cash_flow_view_dto.date_dto>() });
info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 11 }, date_type_str = "fba 费", remarks = "fba 费率 * 销售金额", dates = new List<report_cash_flow_view_dto.date_dto>() }); info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 11 }, date_type_str = "fba 费", remarks = "fba 费率 * 销售金额", dates = new List<report_cash_flow_view_dto.date_dto>() });
info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> {12 }, date_type_str = "pay pal 费", remarks = "paypal 费率 * 销售金额", dates = new List<report_cash_flow_view_dto.date_dto>() }); info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> {12 }, date_type_str = "pay pal 费", remarks = "paypal 费率 * 销售金额", dates = new List<report_cash_flow_view_dto.date_dto>() });
info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> {15 }, date_type_str = "广告费", remarks = "广告 费率 * 销售金额", dates = new List<report_cash_flow_view_dto.date_dto>() });
info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> {16 }, date_type_str = "上架费", remarks = "上架 费率 * 销售金额", dates = new List<report_cash_flow_view_dto.date_dto>() });
info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 6 }, date_type_str = "释放销售成本", remarks = "", dates = new List<report_cash_flow_view_dto.date_dto>() }); info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 6 }, date_type_str = "释放销售成本", remarks = "", dates = new List<report_cash_flow_view_dto.date_dto>() });
//info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 7 }, date_type_str = "释放头程费用", remarks = "", dates = new List<report_cash_flow_view_dto.date_dto>() }); //info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 7 }, date_type_str = "释放头程费用", remarks = "", dates = new List<report_cash_flow_view_dto.date_dto>() });
...@@ -700,8 +751,8 @@ namespace AutoTurnOver.DB ...@@ -700,8 +751,8 @@ namespace AutoTurnOver.DB
info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 13 }, date_type_str = "新增采购费用_首单", remarks = " ", dates = new List<report_cash_flow_view_dto.date_dto>() }); info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 13 }, date_type_str = "新增采购费用_首单", remarks = " ", dates = new List<report_cash_flow_view_dto.date_dto>() });
info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 10 }, date_type_str = "新增头程费用", remarks = " ", dates = new List<report_cash_flow_view_dto.date_dto>() }); info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 10 }, date_type_str = "新增头程费用", remarks = " ", dates = new List<report_cash_flow_view_dto.date_dto>() });
info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 14 }, date_type_str = "新增头程费用_首单", remarks = " ", dates = new List<report_cash_flow_view_dto.date_dto>() }); info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 14 }, date_type_str = "新增头程费用_首单", remarks = " ", dates = new List<report_cash_flow_view_dto.date_dto>() });
info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 2, 4, 3 }, date_type_str = "汇总利润", remarks = " (", dates = new List<report_cash_flow_view_dto.date_dto>() }); info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 2, 4, 3,5,11,12,15,16 }, date_type_str = "汇总利润", remarks = " (", dates = new List<report_cash_flow_view_dto.date_dto>() });
info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 2, 3, 5, 8, 9, 10, 11, 12, 13, 14 }, date_type_str = "现金流结余", remarks = " ", dates = new List<report_cash_flow_view_dto.date_dto>() }); info_data.views.Add(new report_cash_flow_view_dto { date_type = new List<int> { 2, 3, 5, 8, 9, 10, 11, 12, 13, 14,15,16 }, date_type_str = "现金流结余", remarks = " ", dates = new List<report_cash_flow_view_dto.date_dto>() });
info_data.turnovers.Add(new dc_report_cash_flow_forecast_task_info_dto.turnover_dto { types = new List<int> { (int)invented_turnover_model.type_enum.销量 }, item_title = "销量", dates = new List<dc_report_cash_flow_forecast_task_info_dto.turnover_dto.date_dto> { } }); info_data.turnovers.Add(new dc_report_cash_flow_forecast_task_info_dto.turnover_dto { types = new List<int> { (int)invented_turnover_model.type_enum.销量 }, item_title = "销量", dates = new List<dc_report_cash_flow_forecast_task_info_dto.turnover_dto.date_dto> { } });
info_data.turnovers.Add(new dc_report_cash_flow_forecast_task_info_dto.turnover_dto { types = new List<int> { (int)invented_turnover_model.type_enum.入库数量 }, item_title = "入库", dates = new List<dc_report_cash_flow_forecast_task_info_dto.turnover_dto.date_dto> { } }); info_data.turnovers.Add(new dc_report_cash_flow_forecast_task_info_dto.turnover_dto { types = new List<int> { (int)invented_turnover_model.type_enum.入库数量 }, item_title = "入库", dates = new List<dc_report_cash_flow_forecast_task_info_dto.turnover_dto.date_dto> { } });
......
...@@ -103,6 +103,16 @@ namespace AutoTurnOver.Models.Report ...@@ -103,6 +103,16 @@ namespace AutoTurnOver.Models.Report
/// </summary> /// </summary>
public decimal? fba_fee { get; set; } public decimal? fba_fee { get; set; }
/// <summary>
/// 广告费率
/// </summary>
public decimal? ad_fee { get; set; }
/// <summary>
/// 刊登费
/// </summary>
public decimal? pps_fee { get; set; }
} }
......
...@@ -17,6 +17,10 @@ namespace AutoTurnOver.Models ...@@ -17,6 +17,10 @@ namespace AutoTurnOver.Models
/// 建议单单号 /// 建议单单号
/// </summary> /// </summary>
public string purchase_advice_id { get; set; } public string purchase_advice_id { get; set; }
/// <summary>
/// 销量预测公式
/// </summary>
public string sales_details_formula { get; set; }
/// <summary> /// <summary>
/// SKU /// SKU
......
...@@ -50,6 +50,7 @@ namespace AutoTurnOver.Services ...@@ -50,6 +50,7 @@ namespace AutoTurnOver.Services
list.Add(sales != null ? sales.sales_details.ToObj<List<decimal>>().Select(s => (int)Math.Ceiling(s)).ToJson() : "[]"); list.Add(sales != null ? sales.sales_details.ToObj<List<decimal>>().Select(s => (int)Math.Ceiling(s)).ToJson() : "[]");
list.Add(sales != null&& (!string.IsNullOrWhiteSpace(sales.sales_details_formula)) ? sales.sales_details_formula.ToObj<List<string>>().Select(s => s).ToJson() : "[]");
list.Add(sales != null ? sales.sales_explain_details.Replace("[", "").Replace("]", "").Split(',').ToJson() : "[]"); list.Add(sales != null ? sales.sales_explain_details.Replace("[", "").Replace("]", "").Split(',').ToJson() : "[]");
//list.Add(buyputin != null ? buyputin.details : "[]"); //list.Add(buyputin != null ? buyputin.details : "[]");
//list.Add(allotputin != null ? allotputin.details : "[]"); //list.Add(allotputin != null ? allotputin.details : "[]");
......
...@@ -50,7 +50,7 @@ namespace AutoTurnOver.Controllers ...@@ -50,7 +50,7 @@ namespace AutoTurnOver.Controllers
date.Add(today.AddDays(i).ToString("MM/dd")); date.Add(today.AddDays(i).ToString("MM/dd"));
} }
var names = new List<string>() { "销量", "计算规则", "预计入库", "可用库存", "预计缺货数量", "特殊销量", "市场因素", "建议下单数量", "人工下单数量" }; var names = new List<string>() { "销量","计算公式", "计算规则", "预计入库", "可用库存", "预计缺货数量", "特殊销量", "市场因素", "建议下单数量", "人工下单数量" };
var turnoverData = new Services.SkuAutoTurnServices().GetModel(sku, warehousecode); var turnoverData = new Services.SkuAutoTurnServices().GetModel(sku, warehousecode);
var saleVolumeData = new Services.SaleVolumeServices().GetBySkuWarehouseCode(sku, warehousecode); var saleVolumeData = new Services.SaleVolumeServices().GetBySkuWarehouseCode(sku, warehousecode);
var averageTargets = PurchaseAverageTargetServices.GetListByWCode(sku, warehousecode); var averageTargets = PurchaseAverageTargetServices.GetListByWCode(sku, warehousecode);
...@@ -68,7 +68,7 @@ namespace AutoTurnOver.Controllers ...@@ -68,7 +68,7 @@ namespace AutoTurnOver.Controllers
// 累计预计到货 // 累计预计到货
decimal turnoverDatepurchase = 0; decimal turnoverDatepurchase = 0;
var purchaseList = result[2].ToObj<List<decimal>>(); var purchaseList = result[3].ToObj<List<decimal>>();
for (int i = 7; i < turnoverData.turnover_days + 7; i++) for (int i = 7; i < turnoverData.turnover_days + 7; i++)
{ {
turnoverDatepurchase += purchaseList[i]; turnoverDatepurchase += purchaseList[i];
...@@ -80,14 +80,14 @@ namespace AutoTurnOver.Controllers ...@@ -80,14 +80,14 @@ namespace AutoTurnOver.Controllers
{ {
turnoverDateStr = turnoverDate.ToString("yyyy-MM-dd"), // 取值日期 turnoverDateStr = turnoverDate.ToString("yyyy-MM-dd"), // 取值日期
turnoverDateSales = turnoverDateSales, // 当日预测销量 turnoverDateSales = turnoverDateSales, // 当日预测销量
turnoverDateStock = (int)result[3].ToObj<List<decimal>>()[turnoverData.turnover_days + 7 - 1], // 当日预测库存, turnoverDateStock = (int)result[4].ToObj<List<decimal>>()[turnoverData.turnover_days + 7 - 1], // 当日预测库存,
turnoverDatecumulativeSales = (int)turnoverDatecumulativeSales, // 累计销量 turnoverDatecumulativeSales = (int)turnoverDatecumulativeSales, // 累计销量
nowStr = DateTime.Now.ToString("yyyy-MM-dd"), // 今天的日期 nowStr = DateTime.Now.ToString("yyyy-MM-dd"), // 今天的日期
nowShortage = (int)result[4].ToObj<List<decimal>>()[7], // 今天的实际缺货 nowShortage = (int)result[5].ToObj<List<decimal>>()[7], // 今天的实际缺货
cumulativeShortageDate = turnoverDate.AddDays(-1).ToString("yyyy-MM-dd"),// 一直到周转期前一天的日期 cumulativeShortageDate = turnoverDate.AddDays(-1).ToString("yyyy-MM-dd"),// 一直到周转期前一天的日期
cumulativeShortage = (int)result[4].ToObj<List<decimal>>()[turnoverData.turnover_days + 7 - 1], // 一直到周转期前一天的累计缺货 cumulativeShortage = (int)result[5].ToObj<List<decimal>>()[turnoverData.turnover_days + 7 - 1], // 一直到周转期前一天的累计缺货
average_overdue = Math.Max(0, turnoverData.average_overdue), average_overdue = Math.Max(0, turnoverData.average_overdue),
nowDateStock = (int)result[3].ToObj<List<decimal>>()[7], // 今天的预测库存 nowDateStock = (int)result[4].ToObj<List<decimal>>()[7], // 今天的预测库存
turnoverDatepurchase = turnoverDatepurchase // 累计预计到货 turnoverDatepurchase = turnoverDatepurchase // 累计预计到货
}; };
return new JsonResult(new return new JsonResult(new
......
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