Commit 8d006876 by 泽锋 李

fix

parent 62b1ae50
......@@ -1219,35 +1219,37 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
/// 调拨利润
/// </summary>
/// <returns></returns>
public static List<transfer_profit_dto> TransferProfitList(string bailun_sku, string warehouse_code)
public static transfer_profit_result_dto TransferProfitList(string bailun_sku, string warehouse_code)
{
transfer_profit_result_dto result_data = new transfer_profit_result_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 = "历史值:历史跑出来的的周转数,预测值:预测建议数",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 ="安全库存数量",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="空运周转天数",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="海运周转天数",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="30天预测销量海运-实际金额汇总",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ name ="30天预测销量空运-实际金额汇总",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{ field_name ="unit_price", name ="采购单价",remarks = "历史值:历史采购订单的价格,预测值:当前sku资料的采购价格",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="quantity_final_advise", name ="实际建议周转数",remarks = "历史值:历史跑出来的的周转数,预测值:预测建议数",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="quantity_final_advise_amount", name ="实际建议周转金额",remarks="历史值:当天的历史采购金额,预测值:预测周转数*采购单价",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="turnover", name ="实际周转数",remarks = "(周转天数 * 日均销量)+ 安全库存 ",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="freight_price", name ="实际周转运费",remarks = "周转数 * 实际运费单价",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="freight_unit_price", name ="实际运费单价",remarks ="移动平均数算法算出来的历史平均调拨费用",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="quantity_final_advise_ocean", name ="海运周转数(推荐海运)",remarks = "(海运周转天数 * 日均销量)+ 安全库存",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="quantity_final_advise_ocean_amount", name ="海运周转金额",remarks = "海运周转数 * 采购价 ",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="freight_price_ocean", name ="海运周转运费",remarks = "海运周转数 * 最便宜的海运物流跑出来的运费单价 ",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="quantity_final_advise_air", name ="空运周转数(推荐空运)",remarks = "(空运运周转天数 * 日均销量)+ 安全库存",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="quantity_final_advise_air_amount", name ="空运周转金额",remarks = "空运周转数 * 采购价",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="freight_price_ocean", name ="空运周转运费",remarks="空运周转数 * 最便宜的空运物流跑出来的运费单价 ",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="freight_price_ocean_difference_amount", name ="实际-海运运费差值",remarks = "【实际周转运费】-【海运周转运费】",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="quantity_final_ocean_difference_amount", name ="实际-海运周转采购金额差值",remarks = "【实际建议周转金额】-【海运周转金额】",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="freight_price_ocean_difference_amount_radio", name ="差值(海运)-实际周转运费占比",remarks = "【实际-海运运费差值】/ 【实际周转运费】",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="freight_price_air_difference_amount", name ="实际-空运运费差值",remarks="【实际周转运费】-【空运周转运费】",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="quantity_final_air_difference_amount", name ="实际-空运周转采购金额差值",remarks = "【实际建议周转金额】-【空运周转金额】",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="freight_price_air_difference_amount_radio", name ="差值(空运)-实际周转运费占比",remarks = "【实际-空运运费差值】/ 【实际周转运费】",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="freight_price_ocean_air_difference", name ="海运-空运运费差值",remarks="【海运周转运费】-【空运运周转运费】",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="quantity_final__ocean_air_difference_amount", name ="海运-空运周转采购金额差值",remarks="【海运周转金额】-【空运周转金额】",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="freight_price_ocean_air_difference_radio", name ="差值(海运-空运)-实际周转运费占比",remarks ="【海运-空运周转运费】/【实际周转运费】 ",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="quantity_safe_inventory",remarks="安全库存数量" ,name ="安全库存数量",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="turnover_days_air", remarks ="空运周转天数", name ="空运周转天数",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="turnover_days_ocean", remarks="海运周转天数", name ="海运周转天数",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="freight_price_ocean_30_difference", remarks = "30天预测销量实际-海运金额汇总", name ="30天预测销量实际-海运金额汇总",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="freight_price_air_30_difference",remarks ="30天预测销量空运-实际金额汇总" ,name ="30天预测销量空运-实际金额汇总",days = new List<transfer_profit_dto.day_dto>()},
new transfer_profit_dto{field_name ="freight_price_air_ocean_30_difference", remarks = "30天预测销量空运-海运金额汇总", name ="30天预测销量空运-海运金额汇总",days = new List<transfer_profit_dto.day_dto>()},
};
......@@ -1318,11 +1320,14 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
modalData.freight_price_30 = sales30 * modalData.freight_unit_price;
modalData.freight_price_ocean_30 = sales30 * modalData.freight_unit_price_ocean;
modalData.freight_price_air_30 = sales30 * modalData.freight_unit_price_air;
modalData.freight_price_ocean_30_difference = modalData.freight_price_30 - modalData.freight_price_ocean_30;
modalData.freight_price_air_30_difference = modalData.freight_price_air_30 - modalData.freight_price_30;
modalData.freight_price_air_ocean_30_difference = modalData.freight_price_air_30 - modalData.freight_price_ocean_30;
datas.FirstOrDefault(s => s.name == "30天预测销量海运-实际金额汇总").days.Add(new transfer_profit_dto.day_dto
datas.FirstOrDefault(s => s.name == "30天预测销量实际-海运金额汇总").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
val = modalData.freight_price_ocean_30 - modalData.freight_price_30,
val = modalData.freight_price_ocean_30_difference,
formula = $@" 【30天预测销量海运-实际金额汇总】 = 预测30日销量( {sales30})* ( 海运运费单价({modalData.freight_unit_price_ocean}) - 历史平均运费单价({modalData.freight_unit_price}))
<br/>海运运费单价({modalData.freight_unit_price_ocean}) = (最近90天内发过的最便宜的海运物流 {logoCeanData.Line_Name} 运费单价 {logoCeanData.min_freight_unit_price / (logoCeanData.min_freight_unit_weight ?? 1) }/kg )* 产品重量 ({dc_base_sku_data.weight / 1000} kg )
"
......@@ -1331,18 +1336,34 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
datas.FirstOrDefault(s => s.name == "30天预测销量空运-实际金额汇总").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
val = modalData.freight_price_air_30 - modalData.freight_price_30,
val = modalData.freight_price_air_30_difference,
formula = $@" 【30天预测销量空运-实际金额汇总】 = 预测30日销量( {sales30})* ( 空运运费单价({modalData.freight_unit_price_air}) - 历史平均运费单价({modalData.freight_unit_price}))
<br/>空运运费单价({modalData.freight_unit_price_air}) = (最近90天内发过的最便宜的空运物流 {logoAirData.Line_Name} 运费单价 {logoAirData.min_freight_unit_price / (logoAirData.min_freight_unit_weight ?? 1) }/kg )* 产品重量 ({dc_base_sku_data.weight / 1000} kg )
"
});
datas.FirstOrDefault(s => s.name == "30天预测销量空运-海运金额汇总").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
val = modalData.freight_price_air_ocean_30_difference
});
modalData.quantity_safe_inventory = result.quantity_safe_inventory;
datas.FirstOrDefault(s => s.name == "安全库存数量").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
val = result.quantity_safe_inventory,
val = modalData.quantity_safe_inventory,
formula = " 安全库存数量 = aims 系统配置天数 * 日均销量 "
});
modalData.turnover_days_air = result_air.turnover_days;
modalData.purchase_create_order_days_air = result_air.purchase_create_order_days;
modalData.payment_before_delivery_air = result_air.payment_before_delivery;
modalData.supplier_delivery_air = result_air.supplier_delivery;
modalData.inspection_delivery_days_air = result_air.inspection_delivery;
modalData.transfer_delivery_air = result_air.transfer_delivery;
modalData.abroad_inbound_delivery_air = result_air.abroad_inbound_delivery;
modalData.transfer_bale_delivery_air = result_air.transfer_bale_delivery;
datas.FirstOrDefault(s => s.name == "空运周转天数").days.Add(new transfer_profit_dto.day_dto
{
has_int = true,
......@@ -1350,6 +1371,15 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
val = result_air.turnover_days,
formula = $" 【空运周转天数】 = 供应链长度( {result_air.turnover_days} ) = 下单天数( {result_air.purchase_create_order_days} ) + 财务付款时间( {result_air.payment_before_delivery} ) + 供应商交期( {result_air.supplier_delivery} ) + 质检入库天数( {result_air.inspection_delivery} ) + 调拨启航等待天数( 0 ) + 调拨头程天数( {result_air.transfer_delivery} ) + 海外仓入库天数( {result_air.abroad_inbound_delivery} ) + 调拨打包天数( {result_air.transfer_bale_delivery} )"
});
modalData.turnover_days_ocean = result_ocean.turnover_days;
modalData.purchase_create_order_days_ocean = result_ocean.purchase_create_order_days;
modalData.payment_before_delivery_ocean = result_ocean.payment_before_delivery;
modalData.supplier_delivery_ocean = result_ocean.supplier_delivery;
modalData.inspection_delivery_days_ocean = result_ocean.inspection_delivery;
modalData.transfer_delivery_ocean = result_ocean.transfer_delivery;
modalData.abroad_inbound_delivery_ocean = result_ocean.abroad_inbound_delivery;
modalData.transfer_bale_delivery_ocean = result_ocean.transfer_bale_delivery;
datas.FirstOrDefault(s => s.name == "海运周转天数").days.Add(new transfer_profit_dto.day_dto
{
has_int = true,
......@@ -1368,6 +1398,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
// 周转天数 * 加权日均
modalData.quantity_final_advise = null;
modalData.turnover_sales = result.turnover_sales;
if (result.turnover_sales > 0)
{
modalData.quantity_final_advise = (int)Math.Round(result.turnover_sales + result.quantity_safe_inventory);
......@@ -1389,6 +1420,8 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
// 在库+在途
modalData.turnover = dc_mid_transit_data + dc_stock_data;
modalData.dc_stock_data = dc_stock_data;
modalData.dc_mid_transit_data = dc_mid_transit_data ;
datas.FirstOrDefault(s => s.name == "实际周转数").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
......@@ -1405,18 +1438,19 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
});
// 实际建议周转运费
modalData.quantity_final_advise_freight = Math.Round((modalData.quantity_final_advise ?? 0) * (modalData.freight_unit_price ?? 0), 2); ;
//modalData.quantity_final_advise_freight = Math.Round((modalData.quantity_final_advise ?? 0) * (modalData.freight_unit_price ?? 0), 2); ;
//实际周转金额
modalData.turnover_amount = modalData.turnover * modalData.unit_price;
modalData.turnover_sales_ocean = result_ocean.turnover_sales;
modalData.quantity_final_advise_ocean = (int)Math.Round(result_ocean.turnover_sales + result_ocean.quantity_safe_inventory);
datas.FirstOrDefault(s => s.name == "海运周转数(推荐海运)").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
val = modalData.quantity_final_advise_ocean,
formula = $" 【海运周转数(推荐海运)】 = 海运供应链长度预测销量({result_ocean.turnover_sales}) + 安全库存({ result_ocean.quantity_safe_inventory}) "
formula = $" 【海运周转数(推荐海运)】 = 海运供应链长度预测销量({result_ocean.turnover_sales}) + 安全库存({ result.quantity_safe_inventory}) "
});
modalData.quantity_final_advise_ocean_amount = Math.Round((modalData.quantity_final_advise_ocean ?? 0) * (modalData.unit_price ?? 0), 2);
datas.FirstOrDefault(s => s.name == "海运周转金额").days.Add(new transfer_profit_dto.day_dto
......@@ -1426,6 +1460,9 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
formula = $" 【海运周转金额】 = 【海运周转数(推荐海运){modalData.quantity_final_advise_ocean}】* 【采购单价 {modalData.unit_price}】"
});
modalData.freight_price_ocean = Math.Round((modalData.quantity_final_advise_ocean ?? 0) * modalData.freight_unit_price_ocean, 2);
modalData.cean_line_name = logoCeanData.Line_Name;
modalData.cean_line_freight_unit_price = logoCeanData.min_freight_unit_price / (logoCeanData.min_freight_unit_weight ?? 1);
modalData.weight = dc_base_sku_data.weight / 1000;
datas.FirstOrDefault(s => s.name == "海运周转运费").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
......@@ -1434,6 +1471,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
});
modalData.quantity_final_advise_air = (int)Math.Round(result_air.turnover_sales + result_air.quantity_safe_inventory);
modalData.turnover_sales_air = result_air.turnover_sales;
datas.FirstOrDefault(s => s.name == "空运周转数(推荐空运)").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
......@@ -1448,6 +1486,8 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
formula = $" 【空运周转金额】 = 【空运周转数(推荐空运){modalData.quantity_final_advise_air}】* 【采购单价 {modalData.unit_price}】"
});
modalData.freight_price_air = Math.Round((modalData.quantity_final_advise_air ?? 0) * modalData.freight_unit_price_air, 2);
modalData.air_line_name = logoAirData.Line_Name;
modalData.air_line_freight_unit_price = logoAirData.min_freight_unit_price / (logoAirData.min_freight_unit_weight ?? 1);
datas.FirstOrDefault(s => s.name == "空运周转运费").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
......@@ -1456,36 +1496,37 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
});
modalData.freight_price_ocean_difference_amount = modalData.quantity_final_advise_freight - modalData.freight_price_ocean;
modalData.freight_price_ocean_difference_amount = modalData.freight_price - modalData.freight_price_ocean;
datas.FirstOrDefault(s => s.name == "实际-海运运费差值").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
val = modalData.freight_price_ocean_difference_amount,
formula = $"【实际-海运运费差值】= 【实际建议周转运费 {modalData.quantity_final_advise_freight }】 - 【海运周转运费 {modalData.freight_price_ocean}】"
formula = $"【实际-海运运费差值】= 【实际周转运费 {modalData.freight_price }】 - 【海运周转运费 {modalData.freight_price_ocean}】"
});
modalData.quantity_final_ocean_difference_amount = modalData.quantity_final_advise_ocean_amount - modalData.quantity_final_advise_amount ;
datas.FirstOrDefault(s => s.name == "海运-实际周转采购金额差值").days.Add(new transfer_profit_dto.day_dto
modalData.quantity_final_ocean_difference_amount = modalData.quantity_final_advise_amount - modalData.quantity_final_advise_ocean_amount;
datas.FirstOrDefault(s => s.name == "实际-海运周转采购金额差值").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
val = modalData.quantity_final_ocean_difference_amount,
formula = $"【海运-实际周转采购金额差值】= 【海运周转金额 {modalData.quantity_final_advise_ocean_amount}】-【实际建议周转金额 {modalData.quantity_final_advise_amount }"
formula = $"【实际-海运周转采购金额差值】= 【实际建议周转金额 {modalData.quantity_final_advise_amount }】 - 【海运周转金额 {modalData.quantity_final_advise_ocean_amount}"
});
datas.FirstOrDefault(s => s.name == "差值(实际-海运)周转运费占比").days.Add(new transfer_profit_dto.day_dto
modalData.freight_price_ocean_difference_amount_radio = (modalData.freight_price_ocean ?? 0) <= 0 ? 0M : (Math.Round((modalData.freight_price_ocean_difference_amount ?? 0) / modalData.freight_price.Value, 3));
datas.FirstOrDefault(s => s.name == "差值(海运)-实际周转运费占比").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
val = (modalData.quantity_final_advise_freight ?? 0) <= 0 ? 0M : (Math.Round((modalData.freight_price_ocean_difference_amount ?? 0) / modalData.quantity_final_advise_freight.Value, 3)),
formula = $"【差值(实际-海运)周转运费占比】 = 【实际-海运运费差值 {modalData.freight_price_ocean_difference_amount}】/ 【实际建议周转运费 {modalData.quantity_final_advise_freight}】 "
val = modalData.freight_price_ocean_difference_amount_radio,
formula = $"【差值(海运)-实际周转运费占比】 = 【实际-海运运费差值 {modalData.freight_price_ocean_difference_amount}】/ 【实际周转运费 {modalData.freight_price}】 "
});
modalData.freight_price_air_difference_amount = modalData.freight_price_air -modalData.quantity_final_advise_freight ;
modalData.freight_price_air_difference_amount = modalData.freight_price - modalData.freight_price_air;
datas.FirstOrDefault(s => s.name == "实际-空运运费差值").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
val = modalData.freight_price_air_difference_amount,
formula = $"【实际-空运运费差值】= 【空运运周转运费 {modalData.freight_price_air}】-【实际建议周转运费 {modalData.quantity_final_advise_freight }"
formula = $"【实际-空运运费差值】= 【实际周转运费 {modalData.freight_price }】 - 【空运运周转运费 {modalData.freight_price_air}"
});
modalData.quantity_final_air_difference_amount = modalData.quantity_final_advise_amount - modalData.quantity_final_advise_air_amount;
......@@ -1493,22 +1534,24 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
{
date = this_time,
val = modalData.quantity_final_air_difference_amount,
formula = $"【实际-空运周转采购金额差值】= 【实际建议周转金额 {modalData.quantity_final_advise_amount }】 - 【空运周转金额 {modalData.quantity_final_advise_air_amount}】"
formula = $"【实际-空运周转采购金额差值】= 【实际建议周转金额 {modalData.quantity_final_advise_amount }】 - 【空运周转金额 {modalData.quantity_final_advise_air_amount}】"
});
datas.FirstOrDefault(s => s.name == "差值(空运-实际)周转运费占比").days.Add(new transfer_profit_dto.day_dto
modalData.freight_price_air_difference_amount_radio = (modalData.freight_price ?? 0) <= 0 ? 0M : (Math.Round((modalData.freight_price_air_difference_amount ?? 0) / modalData.freight_price.Value, 3));
datas.FirstOrDefault(s => s.name == "差值(空运)-实际周转运费占比").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
val = (modalData.quantity_final_advise_freight ?? 0) <= 0 ? 0M : (Math.Round((modalData.freight_price_air_difference_amount ?? 0) / modalData.quantity_final_advise_freight.Value, 3)),
formula = $"【差值(空运-实际)周转运费占比】 = 【海运-实际运费差值 {modalData.freight_price_air_difference_amount}】/ 【实际建议周转运费 {modalData.quantity_final_advise_freight}】 "
val = modalData.freight_price_air_difference_amount_radio,
formula = $"【差值(空运)-实际周转运费占比】 = 【实际-空运周转运费差值 {modalData.freight_price_air_difference_amount}】/ 【实际建议周转金额 {modalData.freight_price}】 "
});
result_data.today_data = modalData;
}
else // 过去
{
datas.FirstOrDefault(s => s.name == "30天预测销量海运-实际金额汇总").days.Add(new transfer_profit_dto.day_dto
datas.FirstOrDefault(s => s.name == "30天预测销量实际-海运金额汇总").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
val = null
......@@ -1527,11 +1570,11 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
bailun_sku = result.bailun_sku,
date_str = this_time_end.ToString("yyyy-MM-dd")
}) ?? new dc_base_forecast_history();
var quantity_safe_inventory = dc_base_forecast_historydata.quantity_safe_inventory;
modalData.quantity_safe_inventory = dc_base_forecast_historydata.quantity_safe_inventory;
datas.FirstOrDefault(s => s.name == "安全库存数量").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
val = quantity_safe_inventory
val = modalData.quantity_safe_inventory
});
datas.FirstOrDefault(s => s.name == "空运周转天数").days.Add(new transfer_profit_dto.day_dto
......@@ -1604,7 +1647,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
val = modalData.freight_unit_price
});
modalData.quantity_final_advise_freight = modalData.quantity_final_advise * modalData.freight_unit_price;
//modalData.quantity_final_advise_freight = modalData.quantity_final_advise * modalData.freight_unit_price;
modalData.freight_price = modalData.purchase_quantity * modalData.freight_unit_price;
datas.FirstOrDefault(s => s.name == "实际周转运费").days.Add(new transfer_profit_dto.day_dto
{
......@@ -1671,27 +1714,27 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
date = this_time,
val = modalData.freight_price_air
});
modalData.freight_price_ocean_difference_amount = modalData.quantity_final_advise_freight - modalData.freight_price_ocean;
modalData.freight_price_ocean_difference_amount = modalData.freight_price - modalData.freight_price_ocean;
datas.FirstOrDefault(s => s.name == "实际-海运运费差值").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
val = modalData.freight_price_ocean_difference_amount
});
modalData.quantity_final_ocean_difference_amount = modalData.quantity_final_advise_ocean_amount -modalData.quantity_final_advise_amount ;
datas.FirstOrDefault(s => s.name == "海运-实际周转采购金额差值").days.Add(new transfer_profit_dto.day_dto
modalData.quantity_final_ocean_difference_amount = modalData.quantity_final_advise_amount - modalData.quantity_final_advise_ocean_amount;
datas.FirstOrDefault(s => s.name == "实际-海运周转采购金额差值").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
val = modalData.quantity_final_ocean_difference_amount
});
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.quantity_final_advise_freight ?? 0) <= 0 ? 0M : (Math.Round(modalData.freight_price_ocean_difference_amount ?? 0 / modalData.quantity_final_advise_freight.Value, 3))
val = (modalData.freight_price ?? 0) <= 0 ? 0M : (Math.Round(modalData.quantity_final_ocean_difference_amount ?? 0 / modalData.freight_price.Value, 3))
});
modalData.freight_price_air_difference_amount = modalData.quantity_final_advise_freight - modalData.freight_price_air;
datas.FirstOrDefault(s => s.name == "空运-实际运费差值").days.Add(new transfer_profit_dto.day_dto
modalData.freight_price_air_difference_amount = modalData.freight_price - modalData.freight_price_air;
datas.FirstOrDefault(s => s.name == "实际-空运运费差值").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
val = modalData.freight_price_air_difference_amount
......@@ -1703,10 +1746,10 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
val = modalData.quantity_final_air_difference_amount
});
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.quantity_final_advise_freight ?? 0) <= 0 ? 0M : (Math.Round(modalData.freight_price_air_difference_amount ?? 0 / modalData.quantity_final_advise_freight.Value, 3))
val = (modalData.freight_price_air ?? 0) <= 0 ? 0M : (Math.Round(modalData.freight_price_air_difference_amount ?? 0 / modalData.freight_price_air.Value, 3))
});
#endregion
......@@ -1732,11 +1775,12 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
formula = $"【海运-空运周转采购金额差值】= 【海运周转采购金额 {modalData.quantity_final_advise_ocean_amount }】 - 【空运运周转采购金额 {modalData.quantity_final_advise_air_amount}】"
});
datas.FirstOrDefault(s => s.name == "差值(海运-空运)-实际周转采购金额占比").days.Add(new transfer_profit_dto.day_dto
modalData.freight_price_ocean_air_difference_radio = (modalData.freight_price ?? 0) <= 0 ? 0M : (Math.Round((modalData.freight_price_ocean_air_difference ?? 0) / modalData.freight_price.Value, 3));
datas.FirstOrDefault(s => s.name == "差值(海运-空运)-实际周转运费占比").days.Add(new transfer_profit_dto.day_dto
{
date = this_time,
val = (modalData.quantity_final_advise_amount ?? 0) <= 0 ? 0M : (Math.Round((modalData.quantity_final__ocean_air_difference_amount ?? 0) / modalData.quantity_final_advise_amount.Value, 3)),
formula = $"【差值(海运-空运)-实际周转采购金额占比】 = 【海运-空运周转采购金额差值 {modalData.quantity_final__ocean_air_difference_amount}】/ 【空运周转采购金额差值 {modalData.quantity_final_advise_amount}】 "
val = modalData.freight_price_ocean_air_difference_radio,
formula = $"【差值(海运-空运)-实际周转运费占比】 = 【海运-空运周转运费差值 {modalData.freight_price_ocean_air_difference}】/ 【实际周转运费 {modalData.freight_price}】 "
});
......@@ -1745,7 +1789,8 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
this_time = this_time.AddDays(1);
}
return datas;
result_data.datas = datas;
return result_data;
}
/// <summary>
......@@ -1790,9 +1835,4 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
}
}
}
\ No newline at end of file
......@@ -20,6 +20,14 @@ namespace AutoTurnOver.Models.Report
/// 实际周转数
/// </summary>
public int? turnover;
/// <summary>
/// 调拨+采购在途
/// </summary>
public int? dc_mid_transit_data;
/// <summary>
/// 实际在库
/// </summary>
public int? dc_stock_data;
/// <summary>
/// 实际建议周转金额
......@@ -46,6 +54,11 @@ namespace AutoTurnOver.Models.Report
public decimal? freight_unit_price;
/// <summary>
/// 30天实际销量
/// </summary>
public decimal? sales30;
/// <summary>
/// 实际周转运费
/// </summary>
public decimal? freight_price;
......@@ -58,6 +71,10 @@ namespace AutoTurnOver.Models.Report
/// 海运周转数(推荐海运)
/// </summary>
public int? quantity_final_advise_ocean;
/// <summary>
/// 海运供应链长度销量
/// </summary>
public dynamic turnover_sales_ocean;
/// <summary>
......@@ -65,6 +82,31 @@ namespace AutoTurnOver.Models.Report
/// </summary>
public decimal? freight_price_ocean;
/// <summary>
/// 海运推荐物流
/// </summary>
public string cean_line_name;
/// <summary>
/// 空运推荐物流
/// </summary>
public string air_line_name;
/// <summary>
/// 海运推荐物流单价
/// </summary>
public decimal? cean_line_freight_unit_price;
/// <summary>
/// 空运推荐物流单价
/// </summary>
public decimal? air_line_freight_unit_price;
/// <summary>
/// 产品重量
/// </summary>
public decimal? weight;
/// <summary>
/// 30天海运周转运费 海运-实际差值
/// </summary>
public decimal? freight_price_ocean_30_difference;
public decimal? freight_price_air_30_difference;
/// <summary>
/// 30天海运周转运费
/// </summary>
public decimal? freight_price_ocean_30;
......@@ -84,9 +126,17 @@ namespace AutoTurnOver.Models.Report
/// </summary>
public decimal? quantity_final_advise_air;
/// <summary>
/// 空运供应链销量
/// </summary>
public decimal turnover_sales_air { get; set; }
/// <summary>
/// 实际-海运周转运费差值
/// </summary>
public decimal? freight_price_ocean_difference_amount;
/// <summary>
/// 实际-海运周转运费差值 占比
/// </summary>
public decimal? freight_price_ocean_difference_amount_radio;
/// <summary>
/// 空运周转金额
......@@ -121,10 +171,15 @@ namespace AutoTurnOver.Models.Report
/// </summary>
public decimal? quantity_final_air_difference_amount;
/// <summary>
/// 海运-空运运费差值
/// </summary>
public decimal? freight_price_ocean_air_difference;
/// <summary>
/// 海运-空运运费差值 占比
/// </summary>
public decimal? freight_price_ocean_air_difference_radio;
/// <summary>
/// 海运-空运周转采购金额差值
......@@ -135,15 +190,46 @@ namespace AutoTurnOver.Models.Report
/// 实际-空运运费差值
/// </summary>
public decimal? freight_price_air_difference_amount;
/// <summary>
/// 实际-空运运费差值 占比
/// </summary>
public decimal? freight_price_air_difference_amount_radio;
public int? purchase_create_order_days_air;
public int payment_before_delivery_air;
public int supplier_delivery_air;
public int inspection_delivery_days_air;
public int transfer_delivery_air;
public decimal abroad_inbound_delivery_air;
public decimal transfer_bale_delivery_air;
public int? purchase_create_order_days_ocean;
public int payment_before_delivery_ocean;
public int supplier_delivery_ocean;
public int inspection_delivery_days_ocean;
public int transfer_delivery_ocean;
public decimal abroad_inbound_delivery_ocean;
public decimal transfer_bale_delivery_ocean;
public decimal turnover_sales;
public int turnover_days_air;
public decimal? freight_price_air_ocean_30_difference;
/// <summary>
/// 实际建议周转运费
/// </summary>
public decimal? quantity_final_advise_freight;
//public decimal? quantity_final_advise_freight;
/// <summary>
/// 采购单价
/// </summary>
public decimal? unit_price { get; set; }
/// <summary>
/// 安全库存数量
/// </summary>
public decimal? quantity_safe_inventory { get; set; }
/// <summary>
/// 空运周转天数
/// </summary>
public decimal? turnover_days_ocean { get; set; }
}
}
......@@ -211,6 +211,7 @@ namespace AutoTurnOver.Models
/// 本次采购到货到货前
/// </summary>
public decimal turnover_sales { get; set; }
/// <summary>
/// 周转期内总入库
......
using System;
using AutoTurnOver.Models.Report;
using System;
using System.Collections.Generic;
using System.Text;
namespace AutoTurnOver.Models
{
public class transfer_profit_result_dto
{
public List<transfer_profit_dto> datas { get; set; }
/// <summary>
/// 今日数据
/// </summary>
public transfer_profit_modal_dto today_data { get; set; }
}
public class transfer_profit_dto
{
public string name { get; set; }
public string field_name { get; set; }
public string remarks { get; set; }
public List<day_dto> days { get; set; }
......
......@@ -681,7 +681,7 @@ namespace AutoTurnOver.Services
public string warehouse_code { get; set; }
}
public List<transfer_profit_dto> TransferProfitList(string bailun_sku, string warehouse_code) {
public transfer_profit_result_dto TransferProfitList(string bailun_sku, string warehouse_code) {
return DB.dc_auto_turnover.TransferProfitList(bailun_sku, warehouse_code);
}
......
......@@ -69,7 +69,7 @@ namespace AutoTurnOver.Controllers
return new JsonResult(new
{
rows = list
data = list
});
}
catch (Exception ex)
......
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