Commit a3c9d405 by 泽锋 李

fix

parent 7173c908
...@@ -1312,7 +1312,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime ...@@ -1312,7 +1312,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
{ {
warehouse_code = result.warehouse_code, warehouse_code = result.warehouse_code,
bailun_sku = result.bailun_sku bailun_sku = result.bailun_sku
})??0; }) ?? 0;
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,
...@@ -1354,7 +1354,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime ...@@ -1354,7 +1354,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
modalData.quantity_safe_inventory = result.quantity_safe_inventory; modalData.quantity_safe_inventory = result.quantity_safe_inventory;
modalData.daily_weighted_sales = result.daily_weighted_sales; modalData.daily_weighted_sales = result.daily_weighted_sales;
modalData.quantity_safe_inventory_days = result.daily_weighted_sales<=0?14: (Math.Ceiling(result.quantity_safe_inventory * 1.0M / result.daily_weighted_sales)); modalData.quantity_safe_inventory_days = result.daily_weighted_sales <= 0 ? 14 : (Math.Ceiling(result.quantity_safe_inventory * 1.0M / result.daily_weighted_sales));
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,
...@@ -1364,7 +1364,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime ...@@ -1364,7 +1364,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
modalData.turnover_days = result.turnover_days; modalData.turnover_days = result.turnover_days;
modalData.purchase_create_order_days = result.purchase_create_order_days??0; modalData.purchase_create_order_days = result.purchase_create_order_days ?? 0;
modalData.payment_before_delivery = result.payment_before_delivery; modalData.payment_before_delivery = result.payment_before_delivery;
modalData.supplier_delivery = result.supplier_delivery; modalData.supplier_delivery = result.supplier_delivery;
modalData.inspection_delivery_days = result.inspection_delivery; modalData.inspection_delivery_days = result.inspection_delivery;
...@@ -1373,7 +1373,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime ...@@ -1373,7 +1373,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
modalData.transfer_bale_delivery = result.transfer_bale_delivery; modalData.transfer_bale_delivery = result.transfer_bale_delivery;
modalData.turnover_days_air = result_air.turnover_days; modalData.turnover_days_air = result_air.turnover_days;
modalData.purchase_create_order_days_air = result_air.purchase_create_order_days??0; modalData.purchase_create_order_days_air = result_air.purchase_create_order_days ?? 0;
modalData.payment_before_delivery_air = result_air.payment_before_delivery; modalData.payment_before_delivery_air = result_air.payment_before_delivery;
modalData.supplier_delivery_air = result_air.supplier_delivery; modalData.supplier_delivery_air = result_air.supplier_delivery;
modalData.inspection_delivery_days_air = result_air.inspection_delivery; modalData.inspection_delivery_days_air = result_air.inspection_delivery;
...@@ -1389,7 +1389,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime ...@@ -1389,7 +1389,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
}); });
modalData.turnover_days_ocean = result_ocean.turnover_days; modalData.turnover_days_ocean = result_ocean.turnover_days;
modalData.purchase_create_order_days_ocean = result_ocean.purchase_create_order_days??0; modalData.purchase_create_order_days_ocean = result_ocean.purchase_create_order_days ?? 0;
modalData.payment_before_delivery_ocean = result_ocean.payment_before_delivery; modalData.payment_before_delivery_ocean = result_ocean.payment_before_delivery;
modalData.supplier_delivery_ocean = result_ocean.supplier_delivery; modalData.supplier_delivery_ocean = result_ocean.supplier_delivery;
modalData.inspection_delivery_days_ocean = result_ocean.inspection_delivery; modalData.inspection_delivery_days_ocean = result_ocean.inspection_delivery;
...@@ -1408,7 +1408,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime ...@@ -1408,7 +1408,7 @@ where t1.gmt_modified>=@btime and t1.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 = Math.Round(modalData.unit_price , 1), val = Math.Round(modalData.unit_price, 1),
formula = " 【采购单价】从产品库读取配置" formula = " 【采购单价】从产品库读取配置"
}); });
...@@ -1425,7 +1425,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime ...@@ -1425,7 +1425,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
val = modalData.quantity_final_advise, val = modalData.quantity_final_advise,
formula = $" 【实际建议周转数】= 供应链长度预测销量({result.turnover_sales}) + 安全库存({ result.quantity_safe_inventory}) " formula = $" 【实际建议周转数】= 供应链长度预测销量({result.turnover_sales}) + 安全库存({ result.quantity_safe_inventory}) "
}); });
modalData.quantity_final_advise_amount = Math.Round((modalData.quantity_final_advise ) * (modalData.unit_price ), 2); modalData.quantity_final_advise_amount = Math.Round((modalData.quantity_final_advise) * (modalData.unit_price), 2);
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
{ {
...@@ -1469,16 +1469,16 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime ...@@ -1469,16 +1469,16 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
val = modalData.quantity_final_advise_ocean, val = modalData.quantity_final_advise_ocean,
formula = $" 【海运周转数(推荐海运)】 = 海运供应链长度预测销量({result_ocean.turnover_sales}) + 安全库存({ result.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 ) * (modalData.unit_price ), 2); modalData.quantity_final_advise_ocean_amount = Math.Round((modalData.quantity_final_advise_ocean) * (modalData.unit_price), 2);
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.quantity_final_advise_ocean_amount, val = modalData.quantity_final_advise_ocean_amount,
formula = $" 【海运周转金额】 = 【海运周转数(推荐海运){modalData.quantity_final_advise_ocean}】* 【采购单价 {modalData.unit_price}】" formula = $" 【海运周转金额】 = 【海运周转数(推荐海运){modalData.quantity_final_advise_ocean}】* 【采购单价 {modalData.unit_price}】"
}); });
modalData.freight_price_ocean = Math.Round((modalData.quantity_final_advise_ocean ) * modalData.freight_unit_price_ocean, 2); modalData.freight_price_ocean = Math.Round((modalData.quantity_final_advise_ocean) * modalData.freight_unit_price_ocean, 2);
modalData.cean_line_name = logoCeanData.Line_Name; modalData.cean_line_name = logoCeanData.Line_Name;
modalData.cean_line_freight_unit_price = ( logoCeanData.min_freight_unit_price??0) / (logoCeanData.min_freight_unit_weight ?? 1); modalData.cean_line_freight_unit_price = (logoCeanData.min_freight_unit_price ?? 0) / (logoCeanData.min_freight_unit_weight ?? 1);
modalData.weight = dc_base_sku_data.weight / 1000; modalData.weight = dc_base_sku_data.weight / 1000;
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
{ {
...@@ -1495,16 +1495,16 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime ...@@ -1495,16 +1495,16 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
val = modalData.quantity_final_advise_air, val = modalData.quantity_final_advise_air,
formula = $" 【空运周转数(推荐空运)】 = 空运供应链长度预测销量({result_air.turnover_sales}) + 安全库存({ result_air.quantity_safe_inventory})" formula = $" 【空运周转数(推荐空运)】 = 空运供应链长度预测销量({result_air.turnover_sales}) + 安全库存({ result_air.quantity_safe_inventory})"
}); });
modalData.quantity_final_advise_air_amount = Math.Round(modalData.quantity_final_advise_air * modalData.unit_price , 2); modalData.quantity_final_advise_air_amount = Math.Round(modalData.quantity_final_advise_air * modalData.unit_price, 2);
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.quantity_final_advise_air_amount, val = modalData.quantity_final_advise_air_amount,
formula = $" 【空运周转金额】 = 【空运周转数(推荐空运){modalData.quantity_final_advise_air}】* 【采购单价 {modalData.unit_price}】" formula = $" 【空运周转金额】 = 【空运周转数(推荐空运){modalData.quantity_final_advise_air}】* 【采购单价 {modalData.unit_price}】"
}); });
modalData.freight_price_air = Math.Round((modalData.quantity_final_advise_air ) * modalData.freight_unit_price_air, 2); modalData.freight_price_air = Math.Round((modalData.quantity_final_advise_air) * modalData.freight_unit_price_air, 2);
modalData.air_line_name = logoAirData.Line_Name; modalData.air_line_name = logoAirData.Line_Name;
modalData.air_line_freight_unit_price = (logoAirData.min_freight_unit_price??0) / (logoAirData.min_freight_unit_weight ?? 1); modalData.air_line_freight_unit_price = (logoAirData.min_freight_unit_price ?? 0) / (logoAirData.min_freight_unit_weight ?? 1);
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,
...@@ -1529,7 +1529,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime ...@@ -1529,7 +1529,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
formula = $"【实际-海运周转采购金额差值】= 【实际建议周转金额 {modalData.quantity_final_advise_amount }】 - 【海运周转金额 {modalData.quantity_final_advise_ocean_amount}】" formula = $"【实际-海运周转采购金额差值】= 【实际建议周转金额 {modalData.quantity_final_advise_amount }】 - 【海运周转金额 {modalData.quantity_final_advise_ocean_amount}】"
}); });
modalData.freight_price_ocean_difference_amount_radio = (modalData.turnover_amount ) <= 0 ? 0M : (Math.Round((modalData.quantity_final_ocean_difference_amount ) / modalData.turnover_amount, 3)); modalData.freight_price_ocean_difference_amount_radio = (modalData.turnover_amount) <= 0 ? 0M : (Math.Round((modalData.quantity_final_ocean_difference_amount) / modalData.turnover_amount, 3));
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,
...@@ -1554,7 +1554,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime ...@@ -1554,7 +1554,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
formula = $"【实际-空运运周转采购金额差值】= 【实际建议周转金额 {modalData.quantity_final_advise_amount }】 - 【空运周转金额 {modalData.quantity_final_advise_air_amount}】" formula = $"【实际-空运运周转采购金额差值】= 【实际建议周转金额 {modalData.quantity_final_advise_amount }】 - 【空运周转金额 {modalData.quantity_final_advise_air_amount}】"
}); });
modalData.freight_price_air_difference_amount_radio = (modalData.turnover_amount) <= 0 ? 0M : (Math.Round((modalData.quantity_final_air_difference_amount ) / modalData.turnover_amount, 3)); modalData.freight_price_air_difference_amount_radio = (modalData.turnover_amount) <= 0 ? 0M : (Math.Round((modalData.quantity_final_air_difference_amount) / modalData.turnover_amount, 3));
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,
...@@ -1628,11 +1628,11 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime ...@@ -1628,11 +1628,11 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
warehouse_into_code = result.warehouse_code, warehouse_into_code = result.warehouse_code,
bailun_sku = result.bailun_sku, bailun_sku = result.bailun_sku,
btime = this_time_end btime = this_time_end
})??0; }) ?? 0;
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 = Math.Round(modalData.unit_price , 1) val = Math.Round(modalData.unit_price, 1)
}); });
modalData.quantity_final_advise = 0; modalData.quantity_final_advise = 0;
if (dc_base_forecast_historydata.turnover_sales > 0) if (dc_base_forecast_historydata.turnover_sales > 0)
...@@ -1662,7 +1662,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime ...@@ -1662,7 +1662,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
warehouse_code = result.warehouse_code, warehouse_code = result.warehouse_code,
bailun_sku = result.bailun_sku, bailun_sku = result.bailun_sku,
action_date = this_time_end action_date = this_time_end
})??0; }) ?? 0;
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,
...@@ -1752,7 +1752,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime ...@@ -1752,7 +1752,7 @@ where t1.gmt_modified>=@btime and t1.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 = (modalData.turnover_amount ) <= 0 ? 0M : (Math.Round(modalData.quantity_final_ocean_difference_amount / modalData.turnover_amount, 3)) val = (modalData.turnover_amount) <= 0 ? 0M : (Math.Round(modalData.quantity_final_ocean_difference_amount / modalData.turnover_amount, 3))
}); });
modalData.freight_price_air_difference_amount = modalData.freight_price - modalData.freight_price_air; modalData.freight_price_air_difference_amount = modalData.freight_price - modalData.freight_price_air;
...@@ -1771,7 +1771,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime ...@@ -1771,7 +1771,7 @@ where t1.gmt_modified>=@btime and t1.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 = (modalData.turnover_amount ) <= 0 ? 0M : (Math.Round(modalData.freight_price_air_difference_amount / modalData.turnover_amount, 3)) val = (modalData.turnover_amount) <= 0 ? 0M : (Math.Round(modalData.freight_price_air_difference_amount / modalData.turnover_amount, 3))
}); });
#endregion #endregion
...@@ -1797,7 +1797,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime ...@@ -1797,7 +1797,7 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
formula = $"【海运-空运周转采购金额差值】= 【海运周转采购金额 {modalData.quantity_final_advise_ocean_amount }】 - 【空运运周转采购金额 {modalData.quantity_final_advise_air_amount}】" formula = $"【海运-空运周转采购金额差值】= 【海运周转采购金额 {modalData.quantity_final_advise_ocean_amount }】 - 【空运运周转采购金额 {modalData.quantity_final_advise_air_amount}】"
}); });
modalData.freight_price_ocean_air_difference_radio = (modalData.turnover_amount ) <= 0 ? 0M : (Math.Round((modalData.quantity_final__ocean_air_difference_amount) / modalData.turnover_amount, 3)); modalData.freight_price_ocean_air_difference_radio = (modalData.turnover_amount) <= 0 ? 0M : (Math.Round((modalData.quantity_final__ocean_air_difference_amount) / modalData.turnover_amount, 3));
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,
...@@ -1881,22 +1881,23 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime ...@@ -1881,22 +1881,23 @@ where t1.gmt_modified>=@btime and t1.gmt_modified<=@etime
bailun_sku = bailun_sku, bailun_sku = bailun_sku,
warehouse_code = warehouse_code warehouse_code = warehouse_code
}) ?? new dc_base_head_transport_config { }; }) ?? new dc_base_head_transport_config { };
data.transport_type = dc_base_head_transport_config_data.head_transport??""; data.transport_type = dc_base_head_transport_config_data.head_transport ?? "";
dc_report_profit_analysis sales_data = _connection.QueryFirstOrDefault<dc_report_profit_analysis>(@" select dc_report_profit_analysis sales_data = _connection.QueryFirstOrDefault<dc_report_profit_analysis>(@" select
sum( case when paid_time>=@btime2 and paid_time<=@etime1 then bailun_sku_quantity_ordered else 0 end ) as 'sales_avg_7', sum( case when paid_time>=@btime2 and paid_time<=@etime1 then bailun_sku_quantity_ordered else 0 end ) as 'sales_avg_7',
sum( case when paid_time>=@btime3 and paid_time<=@etime1 then bailun_sku_quantity_ordered else 0 end ) as 'sales_avg_30', sum( case when paid_time>=@btime3 and paid_time<=@etime1 then bailun_sku_quantity_ordered else 0 end ) as 'sales_avg_30',
sum( bailun_sku_quantity_ordered ) as 'sales_avg_90' sum( bailun_sku_quantity_ordered ) as 'sales_avg_90'
from dc_base_oms_sku_30 where bailun_sku=@bailun_sku and warehouse_code=@warehouse_code and paid_time>=@btime1 and paid_time<=@etime1 ", new { from dc_base_oms_sku_30 where bailun_sku=@bailun_sku and warehouse_code=@warehouse_code and paid_time>=@btime1 and paid_time<=@etime1 ", new
{
bailun_sku = bailun_sku, bailun_sku = bailun_sku,
warehouse_code = warehouse_code, warehouse_code = warehouse_code,
btime1 = DateTime.Now.AddDays(-91).ToDayHome(), btime1 = DateTime.Now.AddDays(-91).ToDayHome(),
btime2 = DateTime.Now.AddDays(-8).ToDayHome(), btime2 = DateTime.Now.AddDays(-8).ToDayHome(),
btime3 = DateTime.Now.AddDays(-30).ToDayHome(), btime3 = DateTime.Now.AddDays(-30).ToDayHome(),
etime1 = DateTime.Now.AddDays(-1).ToDayEnd(), etime1 = DateTime.Now.AddDays(-1).ToDayEnd(),
}, commandTimeout: 0) ??new dc_report_profit_analysis { }; }, commandTimeout: 0) ?? new dc_report_profit_analysis { };
data.sales_avg_7 = sales_data.sales_avg_7/7; data.sales_avg_7 = sales_data.sales_avg_7 / 7;
data.sales_avg_30 = sales_data.sales_avg_30/30; data.sales_avg_30 = sales_data.sales_avg_30 / 30;
data.sales_avg_90 = sales_data.sales_avg_90/90; data.sales_avg_90 = sales_data.sales_avg_90 / 90;
data.sales_avg_180 = (_connection.QueryFirstOrDefault<int?>(@" select data.sales_avg_180 = (_connection.QueryFirstOrDefault<int?>(@" select
sum( bailun_sku_quantity_ordered ) as 'sales_avg_180' sum( bailun_sku_quantity_ordered ) as 'sales_avg_180'
from dc_base_oms_sku where bailun_sku=@bailun_sku and warehouse_code=@warehouse_code and paid_time>=@btime1 and paid_time<=@etime1 ", new from dc_base_oms_sku where bailun_sku=@bailun_sku and warehouse_code=@warehouse_code and paid_time>=@btime1 and paid_time<=@etime1 ", new
...@@ -1905,18 +1906,19 @@ from dc_base_oms_sku where bailun_sku=@bailun_sku and warehouse_code=@warehouse_ ...@@ -1905,18 +1906,19 @@ from dc_base_oms_sku where bailun_sku=@bailun_sku and warehouse_code=@warehouse_
warehouse_code = warehouse_code, warehouse_code = warehouse_code,
btime1 = DateTime.Now.AddDays(-181).ToDayHome(), btime1 = DateTime.Now.AddDays(-181).ToDayHome(),
etime1 = DateTime.Now.AddDays(-1).ToDayEnd(), etime1 = DateTime.Now.AddDays(-1).ToDayEnd(),
},commandTimeout:0) ?? 0)/180; }, commandTimeout: 0) ?? 0) / 180;
data.freight_stock_amount_ocean = data.quantity_final_ocean_difference_amount <= 0?0:((data.freight_price_ocean_difference_amount) / (data.quantity_final_ocean_difference_amount)); data.freight_stock_amount_ocean = data.quantity_final_ocean_difference_amount <= 0 ? 0 : ((data.freight_price_ocean_difference_amount) / (data.quantity_final_ocean_difference_amount));
data.freight_stock_amount_air = data.quantity_final_air_difference_amount <= 0?0:((data.freight_price_air_difference_amount) / (data.quantity_final_air_difference_amount)); data.freight_stock_amount_air = data.quantity_final_air_difference_amount <= 0 ? 0 : ((data.freight_price_air_difference_amount) / (data.quantity_final_air_difference_amount));
data.freight_stock_amount_ocean_30 = data.quantity_final_advise_amount <= 0 ? 0 : ( Math.Abs( data.freight_price_ocean_30_difference) / data.quantity_final_advise_amount); data.freight_stock_amount_ocean_30 = data.quantity_final_advise_amount <= 0 ? 0 : (Math.Abs(data.freight_price_ocean_30_difference) / data.quantity_final_advise_amount);
data.freight_stock_amount_air_30 = data.quantity_final_advise_amount<=0?0:(Math.Abs( data.freight_price_air_30_difference) / data.quantity_final_advise_amount); data.freight_stock_amount_air_30 = data.quantity_final_advise_amount <= 0 ? 0 : (Math.Abs(data.freight_price_air_30_difference) / data.quantity_final_advise_amount);
data.id = _connection.QueryFirstOrDefault<int?>(" select id from dc_report_profit_analysis where bailun_sku=@bailun_sku and warehouse_code=@warehouse_code ",new { data.id = _connection.QueryFirstOrDefault<int?>(" select id from dc_report_profit_analysis where bailun_sku=@bailun_sku and warehouse_code=@warehouse_code ", new
bailun_sku= bailun_sku, {
bailun_sku = bailun_sku,
warehouse_code = warehouse_code warehouse_code = warehouse_code
}) ??0; }) ?? 0;
data.ocean_purchase = Math.Max(0,(int)Math.Ceiling(data.quantity_final_advise_ocean -data.turnover)); data.ocean_purchase = Math.Max(0, (int)Math.Ceiling(data.quantity_final_advise_ocean - data.turnover));
data.ocean_purchase_amount = data.ocean_purchase * data.unit_price; data.ocean_purchase_amount = data.ocean_purchase * data.unit_price;
data.update_time = DateTime.Now; data.update_time = DateTime.Now;
if (data.id > 0) if (data.id > 0)
...@@ -1972,7 +1974,7 @@ order by t1.gmt_modified asc ...@@ -1972,7 +1974,7 @@ order by t1.gmt_modified asc
{ {
try try
{ {
CalculationProfitAnalysis(orderItem.bailun_sku,orderItem.warehouse_code); CalculationProfitAnalysis(orderItem.bailun_sku, orderItem.warehouse_code);
count++; count++;
} }
catch (Exception ex) catch (Exception ex)
...@@ -2108,6 +2110,58 @@ where 1=1 ...@@ -2108,6 +2110,58 @@ where 1=1
var obj = _connection.Query<dc_report_profit_analysis>(sql, parameters, buffered: false, commandTimeout: 0).AsList(); var obj = _connection.Query<dc_report_profit_analysis>(sql, parameters, buffered: false, commandTimeout: 0).AsList();
return obj; return obj;
} }
/// <summary>
/// 生成采购建议
/// </summary>
public static void BatchPushPurchaseAdvise(string ids, UserData user)
{
var idInts = ids.Split(',').Select(s => int.Parse(s)).ToList();
var anas = _connection.Query<dc_report_profit_analysis>(" select * from dc_report_profit_analysis where id in @ids ", new
{
ids = idInts
}).ToList();
if (anas != null && anas.Count >= 1)
{
var mainID = purchase_advise.Add(new dc_auto_purchase_advise { create_time = DateTime.Now, no = purchase_advise.GenerateOrderNo(), buy_sys_plan_no = "补海运", title = $" {user.UserName} 补海运 {DateTime.Now.ToString("HH:mm")}" }) ?? 0;
var datas = new List<dc_auto_purchase_advise_detailed>();
foreach (var item in anas)
{
if (item.ocean_purchase > 0)
{
var item_data = new dc_auto_purchase_advise_detailed
{
main_id = mainID,
auto_replace_logistics_task_id = null,
bailun_order_ids = "",
bailun_sku = item.bailun_sku,
bailun_sku_warehouse_code = $"{item.bailun_sku}{item.warehouse_code}",
warehouse_code = item.warehouse_code,
create_time = DateTime.Now,
push_date = null,
fit_forecast_formula = "",
fixed_daily_weighted_sales = null,
fixed_dc_auto_sales_forecast_title = "",
quantity_init_advise = item.ocean_purchase,
quantity_actual = item.ocean_purchase,
turnover_days = (int)Math.Ceiling(item.turnover_days_ocean),
supplier_delivery = 0,
inspection_delivery = 0,
type = (int)purchase_type_jit_enum.补海运,
product_inner_code = "",
goods_quantity_init_advise = item.ocean_purchase,
good_sku_codes = item.bailun_sku,
purchase_type_jit = (int)purchase_advise_type_enum.补海运
};
datas.Add(item_data);
_connection.Insert(item_data);
}
}
}
}
} }
} }
\ No newline at end of file
...@@ -304,14 +304,16 @@ namespace AutoTurnOver.Models ...@@ -304,14 +304,16 @@ namespace AutoTurnOver.Models
其他 = 0, 其他 = 0,
备安全库存 = 1, 备安全库存 = 1,
补缺货 = 2, 补缺货 = 2,
下首单 =3 下首单 =3,
补海运 = 5
} }
public enum purchase_advise_type_enum public enum purchase_advise_type_enum
{ {
预计缺货 = 1, 预计缺货 = 1,
实际缺货 = 2, 实际缺货 = 2,
补货 = 3, 补货 = 3,
下首单 = 4 下首单 = 4,
补海运 =5
} }
public class dc_auto_purchase_advise_detailed_buy_dto : dc_auto_purchase_advise_detailed public class dc_auto_purchase_advise_detailed_buy_dto : dc_auto_purchase_advise_detailed
......
...@@ -693,6 +693,10 @@ namespace AutoTurnOver.Services ...@@ -693,6 +693,10 @@ namespace AutoTurnOver.Services
{ {
return DB.dc_auto_turnover.ProfitAnalysis(search_data, ref total); return DB.dc_auto_turnover.ProfitAnalysis(search_data, ref total);
} }
public void BatchPushPurchaseAdvise(string ids, UserData user)
{
DB.dc_auto_turnover.BatchPushPurchaseAdvise(ids,user);
}
public string ProfitAnalysisExport(dc_base_stock_search_dto search_data) public string ProfitAnalysisExport(dc_base_stock_search_dto search_data)
......
...@@ -623,5 +623,23 @@ namespace AutoTurnOver.Controllers ...@@ -623,5 +623,23 @@ namespace AutoTurnOver.Controllers
} }
[HttpGet]
[BrowseLog("Bailun_aims", "触发【百伦自动周转系统】->【自动下单管理】->【利润最大化分析】->【推送采购建议】操作", 3)]
public JsonResult BatchPushPurchaseAdvise(string ids)
{
try
{
var user = AutoUtility.GetUser();
if (user == null) return null;
new Services.SkuAutoTurnServices().BatchPushPurchaseAdvise(ids, user);
return new JsonResult("");
}
catch (Exception ex)
{
return new JsonResult(ex.Message);
}
}
} }
} }
\ No newline at end of file
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