|
|
@ -317,7 +317,7 @@ namespace BBWYB.Server.Business |
|
|
|
List<OrderCostDetail> insertOrderCostDetails = new List<OrderCostDetail>(); |
|
|
|
List<OrderPurchaseInfo> insertOrderPurchaseInfos = new List<OrderPurchaseInfo>(); |
|
|
|
List<OrderPurchaseSkuInfo> insertOrderPurchaseSkuInfos = new List<OrderPurchaseSkuInfo>(); |
|
|
|
List<long> updatePurchaseTimeSchemeIdList = new List<long>(); |
|
|
|
List<IUpdate<PurchaseScheme>> updatePurchaseSchemeList = new List<IUpdate<PurchaseScheme>>(); |
|
|
|
List<OrderPurchaseRelationInfo> insertOrderPurchaseRelationInfoList = new List<OrderPurchaseRelationInfo>(); |
|
|
|
List<string> updatePurchaseTimeLimitTaskOrderSkuList = new List<string>(); |
|
|
|
List<QiKuPackTaskSkuPurchaseSchemeIdRequest> notifyQikuPackSchemeParamList = null; |
|
|
@ -328,6 +328,7 @@ namespace BBWYB.Server.Business |
|
|
|
IUpdate<OrderCost> updateOrderCost = null; |
|
|
|
List<OrderSkuCost> insertOrderSkuCostList = new List<OrderSkuCost>(); |
|
|
|
IList<IUpdate<OrderSkuCost>> updateOrderSkuCostList = new List<IUpdate<OrderSkuCost>>(); |
|
|
|
List<PP_QueryOrderDetailSkuResponse> createdPurchaseOrderItemList = new List<PP_QueryOrderDetailSkuResponse>(); |
|
|
|
|
|
|
|
foreach (var cargoParamGroup in request.CargoParamGroupList) |
|
|
|
{ |
|
|
@ -338,8 +339,6 @@ namespace BBWYB.Server.Business |
|
|
|
var client = ppPlatformClientFactory.GetClient((AdapterEnums.PlatformType)cargoParamGroup.PurchasePlatform); |
|
|
|
var extJson = extJArray.FirstOrDefault(j => j.Value<string>("PurchaserId") == cargoParamGroup.PurchaserId); |
|
|
|
|
|
|
|
updatePurchaseTimeSchemeIdList.AddRange(cargoParamGroup.CargoParamList.Select(p => p.SchemeId).Distinct()); |
|
|
|
|
|
|
|
var orderProductParamList = CombineRepeatPurchaseSku(cargoParamGroup.CargoParamList); |
|
|
|
|
|
|
|
var createOrderResponse = client.CreateOrder(new PP_CreateOrderRequest() |
|
|
@ -372,15 +371,15 @@ namespace BBWYB.Server.Business |
|
|
|
AppToken = purchaseAccount.AppToken, |
|
|
|
OrderId = createOrderResponse.OrderId |
|
|
|
}); |
|
|
|
createdPurchaseOrderItemList.AddRange(purchaseOrderSimpleInfo.ItemList); |
|
|
|
|
|
|
|
//totalPurchaseProductAmount += purchaseOrderSimpleInfo.ProductAmount;
|
|
|
|
//totalPurchaseFreight += purchaseOrderSimpleInfo.FreightAmount;
|
|
|
|
|
|
|
|
#region 创建订单采购关系
|
|
|
|
foreach (var cargoParam in cargoParamGroup.CargoParamList) |
|
|
|
{ |
|
|
|
var orderSku = orderSkus.FirstOrDefault(osku => osku.SkuId == cargoParam.BelongSkuId); |
|
|
|
|
|
|
|
#region 创建订单采购关系
|
|
|
|
insertOrderPurchaseRelationInfoList.Add(new OrderPurchaseRelationInfo() |
|
|
|
{ |
|
|
|
Id = idGenerator.NewLong(), |
|
|
@ -395,8 +394,8 @@ namespace BBWYB.Server.Business |
|
|
|
SchemeId = cargoParam.SchemeId, |
|
|
|
SourceSkuId = orderSku?.BelongSkuId |
|
|
|
}); |
|
|
|
#endregion
|
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 等比计算采购成本
|
|
|
|
var proportionalCalculationResultList = ProportionalCalculationCost(cargoParamGroup.CargoParamList, purchaseOrderSimpleInfo); |
|
|
@ -497,6 +496,27 @@ namespace BBWYB.Server.Business |
|
|
|
#endregion
|
|
|
|
} |
|
|
|
|
|
|
|
#region 更新采购方案最近采购价格
|
|
|
|
{ |
|
|
|
var allCargoParamList = new List<CargoParamRequest>(); |
|
|
|
|
|
|
|
request.CargoParamGroupList.ForEach(x => allCargoParamList.AddRange(x.CargoParamList)); |
|
|
|
|
|
|
|
var cargoParamGroupsBySchemeList = allCargoParamList.GroupBy(c => c.SchemeId); |
|
|
|
foreach (var cargoParamGroupsByScheme in cargoParamGroupsBySchemeList) |
|
|
|
{ |
|
|
|
var defalutCost = 0M; |
|
|
|
var schemeId = cargoParamGroupsByScheme.Key; |
|
|
|
|
|
|
|
defalutCost = cargoParamGroupsByScheme.Sum(cargoParam => createdPurchaseOrderItemList.Where(x => x.SkuId == cargoParam.SkuId) |
|
|
|
.Select(x => x.Price * (cargoParam.PurchaseRatio ?? 1)).DefaultIfEmpty(0M).First()); |
|
|
|
var update = fsql.Update<PurchaseScheme>(schemeId).Set(ps => ps.LastPurchaseTime, DateTime.Now) |
|
|
|
.Set(ps => ps.LastPurchasePriceCost, defalutCost); |
|
|
|
updatePurchaseSchemeList.Add(update); |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 订单Sku成本
|
|
|
|
var allOrderCostDetail = orderCostDetailList.Union(insertOrderCostDetails).ToList(); |
|
|
|
foreach (var orderSku in orderSkus) |
|
|
@ -590,8 +610,11 @@ namespace BBWYB.Server.Business |
|
|
|
fsql.Insert(insertOrderPurchaseRelationInfoList).ExecuteAffrows(); |
|
|
|
updateOrderCost?.ExecuteAffrows(); |
|
|
|
insertOrderCost?.ExecuteAffrows(); |
|
|
|
if (updatePurchaseTimeSchemeIdList.Count() > 0) |
|
|
|
fsql.Update<PurchaseScheme>(updatePurchaseTimeSchemeIdList).Set(p => p.LastPurchaseTime, DateTime.Now).ExecuteAffrows(); |
|
|
|
if (updatePurchaseSchemeList.Count() > 0) |
|
|
|
{ |
|
|
|
foreach (var update in updatePurchaseSchemeList) |
|
|
|
update.ExecuteAffrows(); |
|
|
|
} |
|
|
|
fsql.Update<Order>(request.OrderId).Set(o => o.OrderState, dbOrder.OrderState) |
|
|
|
.SetIf(!string.IsNullOrEmpty(request.Remark), o => o.PurchaseRemark, request.Remark) |
|
|
|
.Set(o => o.IsPurchased, true) |
|
|
|