Browse Source

调整代发入仓订单的快递归属计算规则

yijia
shanji 2 years ago
parent
commit
99e1c9e062
  1. 21
      BBWYB.Server.Business/Extensions/PurchaseExpressOrderExtension.cs
  2. 47
      BBWYB.Server.Business/Order/OrderBusiness.cs

21
BBWYB.Server.Business/Extensions/PurchaseExpressOrderExtension.cs

@ -10,10 +10,12 @@ namespace BBWYB.Server.Business.Extensions
/// 计算快递单归属
/// </summary>
/// <param name="purchaseExpressOrder">必须是经过与快递单关系表进行联合查询的结果 (ExpressOrderRelationInfo-PurchaseExpressOrder)</param>
/// <param name="intoStoreType"></param>
/// <param name="orderPurchaseInfoList"></param>
/// <param name="orderPurchaseRelationInfoList"></param>
/// <param name="orderPurchaseSkuInfoList"></param>
public static void CalculationBelongOrderSku(this PurchaseExpressOrderResponse purchaseExpressOrder,
Enums.IntoStoreType? intoStoreType,
IList<OrderPurchaseInfoResponse> orderPurchaseInfoList,
IList<OrderPurchaseRelationInfo> orderPurchaseRelationInfoList,
IList<OrderPurchaseSkuInfoResponse> orderPurchaseSkuInfoList)
@ -21,7 +23,7 @@ namespace BBWYB.Server.Business.Extensions
var purchaseOrder = orderPurchaseInfoList.FirstOrDefault(po => po.PurchaseOrderId == purchaseExpressOrder.PurchaseOrderId);
if (purchaseOrder == null)
return;
if (purchaseOrder.PurchasePlatform == Enums.Platform.)
if (purchaseOrder.PurchasePlatform == Enums.Platform. && intoStoreType != Enums.IntoStoreType.)
{
var purchaseSkuIds = orderPurchaseSkuInfoList.Where(posku => posku.WaybillNo == purchaseExpressOrder.WaybillNo &&
posku.PurchaseOrderId == purchaseOrder.PurchaseOrderId)
@ -32,27 +34,10 @@ namespace BBWYB.Server.Business.Extensions
.Distinct()
.ToList();
purchaseExpressOrder.BelongSkuIds = string.Join(",", orderSkuIds);
//var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == purchaseOrder.OrderId &&
// orderSkuIds.Contains(osku.SkuId)).ToList();
//foreach (var osku in currentOrderSkuList)
//{
// if (osku.PurchaseExpressOrderList.Any(peo => peo.WaybillNo == purchaseExpressOrder.WaybillNo))
// continue;
// osku.PurchaseExpressOrderList.Add(purchaseExpressOrder);
//}
}
else
{
purchaseExpressOrder.BelongSkuIds = purchaseOrder.BelongSkuIds;
//var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == purchaseOrder.OrderId &&
// purchaseOrder.BelongSkuIds.Contains(osku.SkuId)).ToList();
//foreach (var osku in currentOrderSkuList)
//{
// if (osku.PurchaseExpressOrderList.Any(peo => peo.WaybillNo == purchaseExpressOrder.WaybillNo))
// continue;
// osku.PurchaseExpressOrderList.Add(purchaseExpressOrder);
//}
}
}
}

47
BBWYB.Server.Business/Order/OrderBusiness.cs

@ -245,7 +245,10 @@ namespace BBWYB.Server.Business
#region 处理SKU的快递单
foreach (var purchaseExpressOrder in purchaseExpressOrderList)
{
purchaseExpressOrder.CalculationBelongOrderSku(orderPurchaseInfoList, orderPurchaseRelationInfoList, orderPurchaseSkuInfoList);
var order = orderList.FirstOrDefault(o => o.Id == purchaseExpressOrder.OrderId);
if (order == null)
continue;
purchaseExpressOrder.CalculationBelongOrderSku(order.IntoStoreType, orderPurchaseInfoList, orderPurchaseRelationInfoList, orderPurchaseSkuInfoList);
var currentOrderSkuList = orderSkuList.Where(osku => !string.IsNullOrEmpty(purchaseExpressOrder.BelongSkuIds) &&
osku.OrderId == purchaseExpressOrder.OrderId &&
purchaseExpressOrder.BelongSkuIds.Contains(osku.SkuId)).ToList();
@ -310,7 +313,7 @@ namespace BBWYB.Server.Business
TargetExpressName = peo.TargetExpressName,
WaybillNo = peo.WaybillNo
});
var order = fsql.Select<Order>(request.OrderId).ToOne();
var orderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(op => op.OrderId == request.OrderId && op.IsEnabled == true).ToList<OrderPurchaseInfoResponse>();
var orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>().Where(opri => opri.OrderId == request.OrderId && opri.SourceSkuId == request.SourceSkuId).ToList();
var orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(posku => posku.OrderId == request.OrderId).ToList<OrderPurchaseSkuInfoResponse>();
@ -320,7 +323,7 @@ namespace BBWYB.Server.Business
#region 处理SKU的快递单
foreach (var purchaseExpressOrder in purchaseExpressOrderList)
{
purchaseExpressOrder.CalculationBelongOrderSku(orderPurchaseInfoList, orderPurchaseRelationList, orderPurchaseSkuList);
purchaseExpressOrder.CalculationBelongOrderSku(order.IntoStoreType, orderPurchaseInfoList, orderPurchaseRelationList, orderPurchaseSkuList);
if (!string.IsNullOrEmpty(purchaseExpressOrder.BelongSkuIds))
{
if (purchaseExpressOrder.BelongSkuIds.Contains(orderSku.SkuId))
@ -330,37 +333,6 @@ namespace BBWYB.Server.Business
}
}
}
//foreach (var purchaseOrder in orderPurchaseInfoList)
//{
// if (purchaseOrder.PurchasePlatform == Enums.Platform.阿里巴巴)
// {
// var currentRelationList = orderPurchaseRelationList.Where(ori => ori.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList();
// var waybillNos = orderPurchaseSkuList.Where(posku => posku.PurchaseOrderId == purchaseOrder.PurchaseOrderId &&
// currentRelationList.Any(opri => opri.PurchaseSkuId == posku.PurchaseSkuId))
// .Select(x => x.WaybillNo)
// .ToList();
// foreach (var waybillNo in waybillNos)
// {
// var peo = purchaseExpressOrderList.FirstOrDefault(x => x.WaybillNo == waybillNo);
// if (peo != null && !list.Any(x => x.WaybillNo == waybillNo && x.PurchaseOrderId == purchaseOrder.PurchaseOrderId))
// list.Add(peo);
// }
// }
// else
// {
// var currentSkuList = orderSkuList.Where(osku => purchaseOrder.BelongSkuIds.Contains(osku.SkuId)).Select(osku => osku.BelongSkuId).Distinct().ToList();
// if (currentSkuList.Contains(request.SourceSkuId))
// {
// var peoList = purchaseExpressOrderList.Where(x => x.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList();
// foreach (var peo in peoList)
// {
// if (!list.Any(x => x.WaybillNo == peo.WaybillNo && x.PurchaseOrderId == purchaseOrder.PurchaseOrderId))
// list.Add(peo);
// }
// }
// }
//}
#endregion
return list;
}
@ -385,7 +357,7 @@ namespace BBWYB.Server.Business
TargetExpressName = peo.TargetExpressName,
WaybillNo = peo.WaybillNo
});
var orderList = fsql.Select<Order>(orderIds).ToList();
var orderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(op => orderIds.Contains(op.OrderId) && op.IsEnabled == true).ToList<OrderPurchaseInfoResponse>();
var orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>().Where(opri => orderIds.Contains(opri.OrderId)).ToList();
var orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(posku => orderIds.Contains(posku.OrderId)).ToList<OrderPurchaseSkuInfoResponse>();
@ -393,7 +365,10 @@ namespace BBWYB.Server.Business
#region 处理SKU的快递单
foreach (var purchaseExpressOrder in purchaseExpressOrderList)
{
purchaseExpressOrder.CalculationBelongOrderSku(orderPurchaseInfoList, orderPurchaseRelationList, orderPurchaseSkuList);
var order = orderList.FirstOrDefault(o => o.Id == purchaseExpressOrder.OrderId);
if (order == null)
continue;
purchaseExpressOrder.CalculationBelongOrderSku(order.IntoStoreType, orderPurchaseInfoList, orderPurchaseRelationList, orderPurchaseSkuList);
}
#endregion
return purchaseExpressOrderList;

Loading…
Cancel
Save