diff --git a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index cc93656f..a309612b 100644 --- a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -232,6 +232,27 @@ namespace BBWY.Server.Business if (dbOrder.OrderState != Model.Enums.OrderState.等待采购) throw new BusinessException("只能为等待采购的订单进行采购"); + #region 合并重复的采购sku + var repeatPurchaseSkuGroups = createOnlinePurchaseOrderRequest.CargoParamList.GroupBy(p => p.SkuId).ToList(); + foreach (var group in repeatPurchaseSkuGroups) + { + if (group.Count() > 1) + { + var repeatSkus = group.ToList(); + foreach (var repeatSku in repeatSkus) + createOnlinePurchaseOrderRequest.CargoParamList.Remove(repeatSku); + createOnlinePurchaseOrderRequest.CargoParamList.Add(new CargoParamRequest() + { + BelongSkuId = repeatSkus[0].BelongSkuId, + ProductId = repeatSkus[0].ProductId, + SkuId = repeatSkus[0].SkuId, + SpecId = repeatSkus[0].SpecId, + Quantity = repeatSkus.Sum(s => s.Quantity) + }); + } + } + #endregion + var orderSkus = fsql.Select().Where(osku => osku.OrderId == createOnlinePurchaseOrderRequest.OrderId).ToList(); var createOrderResponse = platformSDKBusinessList.FirstOrDefault(p => p.Platform == createOnlinePurchaseOrderRequest.Platform)