|
@ -36,6 +36,7 @@ namespace BBWYB.Server.Business |
|
|
private Lazy<JDBusiness> jdBusinessLazy; |
|
|
private Lazy<JDBusiness> jdBusinessLazy; |
|
|
private Lazy<OP_PlatformClientFactory> opPlatformClientFactoryLazy; |
|
|
private Lazy<OP_PlatformClientFactory> opPlatformClientFactoryLazy; |
|
|
private Lazy<VenderBusiness> venderBusinessLazy; |
|
|
private Lazy<VenderBusiness> venderBusinessLazy; |
|
|
|
|
|
private Lazy<PurchaseSchemeBusiness> purchaseSchemeBusinessLazy; |
|
|
|
|
|
|
|
|
private PP_PlatformClientFactory ppPlatformClientFactory => pplatformClientFactoryLazy.Value; |
|
|
private PP_PlatformClientFactory ppPlatformClientFactory => pplatformClientFactoryLazy.Value; |
|
|
private TaskSchedulerManager taskSchedulerManager => taskSchedulerManagerLazy.Value; |
|
|
private TaskSchedulerManager taskSchedulerManager => taskSchedulerManagerLazy.Value; |
|
@ -50,6 +51,8 @@ namespace BBWYB.Server.Business |
|
|
|
|
|
|
|
|
private JDBusiness jdBusiness => jdBusinessLazy.Value; |
|
|
private JDBusiness jdBusiness => jdBusinessLazy.Value; |
|
|
|
|
|
|
|
|
|
|
|
private PurchaseSchemeBusiness purchaseSchemeBusiness => purchaseSchemeBusinessLazy.Value; |
|
|
|
|
|
|
|
|
private IList<Enums.OrderState> cantPurchaseOrderStateList; |
|
|
private IList<Enums.OrderState> cantPurchaseOrderStateList; |
|
|
|
|
|
|
|
|
public PurchaseOrderBusiness(IFreeSql fsql, |
|
|
public PurchaseOrderBusiness(IFreeSql fsql, |
|
@ -68,6 +71,7 @@ namespace BBWYB.Server.Business |
|
|
jdBusinessLazy = new Lazy<JDBusiness>(() => serviceProvider.GetService<JDBusiness>()); |
|
|
jdBusinessLazy = new Lazy<JDBusiness>(() => serviceProvider.GetService<JDBusiness>()); |
|
|
opPlatformClientFactoryLazy = new Lazy<OP_PlatformClientFactory>(() => serviceProvider.GetService<OP_PlatformClientFactory>()); |
|
|
opPlatformClientFactoryLazy = new Lazy<OP_PlatformClientFactory>(() => serviceProvider.GetService<OP_PlatformClientFactory>()); |
|
|
venderBusinessLazy = new Lazy<VenderBusiness>(() => serviceProvider.GetService<VenderBusiness>()); |
|
|
venderBusinessLazy = new Lazy<VenderBusiness>(() => serviceProvider.GetService<VenderBusiness>()); |
|
|
|
|
|
purchaseSchemeBusinessLazy = new Lazy<PurchaseSchemeBusiness>(() => serviceProvider.GetService<PurchaseSchemeBusiness>()); |
|
|
cantPurchaseOrderStateList = new List<Enums.OrderState>() |
|
|
cantPurchaseOrderStateList = new List<Enums.OrderState>() |
|
|
{ |
|
|
{ |
|
|
Enums.OrderState.已取消, |
|
|
Enums.OrderState.已取消, |
|
@ -745,12 +749,13 @@ namespace BBWYB.Server.Business |
|
|
{ |
|
|
{ |
|
|
if (purchaseOrder.PurchasePlatform == Enums.Platform.阿里巴巴) |
|
|
if (purchaseOrder.PurchasePlatform == Enums.Platform.阿里巴巴) |
|
|
{ |
|
|
{ |
|
|
#region 补齐采购SKU
|
|
|
#region 补齐采购SKU和采购关系
|
|
|
var purchaseAccount = dbPurchaseAccountList.FirstOrDefault(pa => pa.Id == purchaseOrder.PurchaseAccountId || |
|
|
var purchaseAccount = dbPurchaseAccountList.FirstOrDefault(pa => pa.Id == purchaseOrder.PurchaseAccountId || |
|
|
pa.AccountName == purchaseOrder.PurchaseAccountName); |
|
|
pa.AccountName == purchaseOrder.PurchaseAccountName); |
|
|
if (purchaseAccount == null) |
|
|
if (purchaseAccount == null) |
|
|
throw new BusinessException($"采购单{purchaseOrder.PurchaseOrderId}缺少有效的采购账号"); |
|
|
throw new BusinessException($"采购单{purchaseOrder.PurchaseOrderId}缺少有效的采购账号"); |
|
|
|
|
|
|
|
|
|
|
|
#region 查询1688采购单
|
|
|
var client = ppPlatformClientFactory.GetClient((AdapterEnums.PlatformType)purchaseOrder.PurchasePlatform); |
|
|
var client = ppPlatformClientFactory.GetClient((AdapterEnums.PlatformType)purchaseOrder.PurchasePlatform); |
|
|
var purchaseOrderSimpleInfo = client.QueryOrderDetail(new PP_QueryOrderDetailRequest() |
|
|
var purchaseOrderSimpleInfo = client.QueryOrderDetail(new PP_QueryOrderDetailRequest() |
|
|
{ |
|
|
{ |
|
@ -759,6 +764,7 @@ namespace BBWYB.Server.Business |
|
|
AppToken = purchaseAccount.AppToken, |
|
|
AppToken = purchaseAccount.AppToken, |
|
|
OrderId = purchaseOrder.PurchaseOrderId |
|
|
OrderId = purchaseOrder.PurchaseOrderId |
|
|
}); |
|
|
}); |
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
#region 处理采购商Id
|
|
|
#region 处理采购商Id
|
|
|
var purchaserId = purchaseOrderSimpleInfo.PurchaserId; |
|
|
var purchaserId = purchaseOrderSimpleInfo.PurchaserId; |
|
@ -778,58 +784,29 @@ namespace BBWYB.Server.Business |
|
|
|
|
|
|
|
|
#region 匹配采购方案
|
|
|
#region 匹配采购方案
|
|
|
var skuIds = purchaseOrder.AssocationOrderCostDetailList.Select(ocd => ocd.SkuId).ToList(); |
|
|
var skuIds = purchaseOrder.AssocationOrderCostDetailList.Select(ocd => ocd.SkuId).ToList(); |
|
|
var purchaseSchemeSkuList = fsql.Select<Purchaser, PurchaseScheme, PurchaseSchemeProductSku>() |
|
|
var purchaseSchemeList = purchaseSchemeBusiness.GetPurchaseSchemeList(new QuerySchemeRequest() |
|
|
.InnerJoin((p, ps, pss) => p.Id == ps.PurchaserId) |
|
|
{ |
|
|
.InnerJoin((p, ps, pss) => ps.Id == pss.SkuPurchaseSchemeId) |
|
|
ShopId = dbOrder.ShopId, |
|
|
.Where((p, ps, pss) => p.Id == purchaserId) |
|
|
SkuIdList = skuIds |
|
|
.Where((p, ps, pss) => ps.PurchasePlatform == Enums.Platform.阿里巴巴) |
|
|
|
|
|
.Where((p, ps, pss) => skuIds.Contains(pss.SkuId)) |
|
|
|
|
|
.ToList((p, ps, pss) => new |
|
|
|
|
|
{ |
|
|
|
|
|
pss.Id, |
|
|
|
|
|
pss.SkuId, |
|
|
|
|
|
pss.ProductId, |
|
|
|
|
|
pss.PurchaseProductId, |
|
|
|
|
|
pss.PurchaseSkuId, |
|
|
|
|
|
pss.PurchaseSkuSpecId, |
|
|
|
|
|
pss.SkuPurchaseSchemeId |
|
|
|
|
|
}); |
|
|
}); |
|
|
if (purchaseSchemeSkuList.Count() == 0) |
|
|
if (purchaseSchemeList.Count() == 0) |
|
|
throw new BusinessException($"采购单{purchaseOrder.PurchaseOrderId} 采购商Id{purchaserId} 未匹配到采购方案"); |
|
|
throw new BusinessException($"采购单{purchaseOrder.PurchaseOrderId} 采购商Id{purchaserId} 未匹配到采购方案"); |
|
|
#endregion
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var purchaseOrderSku in purchaseOrderSimpleInfo.ItemList) |
|
|
|
|
|
{ |
|
|
|
|
|
var orderPurchaseSkuInfo = new OrderPurchaseSkuInfo() |
|
|
|
|
|
{ |
|
|
|
|
|
Id = purchaseOrderSku.OrderSkuId, |
|
|
|
|
|
CreateTime = DateTime.Now, |
|
|
|
|
|
OrderId = request.OrderId, |
|
|
|
|
|
PurchaseOrderId = purchaseOrder.PurchaseOrderId, |
|
|
|
|
|
PurchaseProductId = purchaseOrderSku.ProductId, |
|
|
|
|
|
PurchaseSkuId = purchaseOrderSku.SkuId, |
|
|
|
|
|
ShopId = request.ShopId |
|
|
|
|
|
}; |
|
|
|
|
|
insertOrderPurchaseSkuInfoList.Add(orderPurchaseSkuInfo); |
|
|
|
|
|
} |
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 补齐采购关系
|
|
|
#region 补齐采购关系
|
|
|
foreach (var assOrderCostDetail in purchaseOrder.AssocationOrderCostDetailList) |
|
|
foreach (var assOrderCostDetail in purchaseOrder.AssocationOrderCostDetailList) |
|
|
{ |
|
|
{ |
|
|
var currentPurchaseSchemeSkuList = purchaseSchemeSkuList.Where(x => x.SkuId == assOrderCostDetail.SkuId).ToList(); |
|
|
var matchResultList = MatchPurchaseScheme(assOrderCostDetail.SkuId, |
|
|
if (currentPurchaseSchemeSkuList == null || currentPurchaseSchemeSkuList.Count() == 0) |
|
|
assOrderCostDetail.PurchaseQuantity, |
|
|
|
|
|
purchaserId, |
|
|
|
|
|
purchaseSchemeList, |
|
|
|
|
|
purchaseOrderSimpleInfo); |
|
|
|
|
|
if (matchResultList.Count() == 0) |
|
|
throw new BusinessException($"采购单{purchaseOrder.PurchaseOrderId} 采购商Id {purchaserId} Sku{assOrderCostDetail.SkuId}缺少采购方案"); |
|
|
throw new BusinessException($"采购单{purchaseOrder.PurchaseOrderId} 采购商Id {purchaserId} Sku{assOrderCostDetail.SkuId}缺少采购方案"); |
|
|
|
|
|
|
|
|
var dbOrderSku = dbOrderSkuList.FirstOrDefault(osku => osku.SkuId == assOrderCostDetail.SkuId); |
|
|
foreach (var cargoParam in matchResultList) |
|
|
foreach (var currentPurchaseSchemeSku in currentPurchaseSchemeSkuList) |
|
|
|
|
|
{ |
|
|
|
|
|
var purchaseSkuFromApi = purchaseOrderSimpleInfo.ItemList.FirstOrDefault(x => x.SkuId == currentPurchaseSchemeSku.PurchaseSkuId); |
|
|
|
|
|
if (purchaseSkuFromApi == null) |
|
|
|
|
|
{ |
|
|
{ |
|
|
throw new BusinessException($"Sku{assOrderCostDetail.SkuId}使用了采购方案{currentPurchaseSchemeSku.SkuPurchaseSchemeId}下的采购Sku{currentPurchaseSchemeSku.PurchaseSkuId},而且在采购单{purchaseOrder.PurchaseOrderId}的商品明细中没有找到该采购sku"); |
|
|
var dbOrderSku = dbOrderSkuList.FirstOrDefault(osku => osku.SkuId == assOrderCostDetail.SkuId); |
|
|
} |
|
|
|
|
|
var orderPurchaseRelationInfo = new OrderPurchaseRelationInfo() |
|
|
var orderPurchaseRelationInfo = new OrderPurchaseRelationInfo() |
|
|
{ |
|
|
{ |
|
|
Id = idGenerator.NewLong(), |
|
|
Id = idGenerator.NewLong(), |
|
@ -837,16 +814,37 @@ namespace BBWYB.Server.Business |
|
|
CreateTime = DateTime.Now, |
|
|
CreateTime = DateTime.Now, |
|
|
OrderId = assOrderCostDetail.OrderId, |
|
|
OrderId = assOrderCostDetail.OrderId, |
|
|
PurchaseOrderId = purchaseOrder.PurchaseOrderId, |
|
|
PurchaseOrderId = purchaseOrder.PurchaseOrderId, |
|
|
PurchaseSkuId = currentPurchaseSchemeSku.PurchaseSkuId, |
|
|
PurchaseSkuId = cargoParam.SkuId, |
|
|
PurchaseProductId = currentPurchaseSchemeSku.PurchaseProductId, |
|
|
PurchaseProductId = cargoParam.ProductId, |
|
|
PurchaseSpecId = currentPurchaseSchemeSku.PurchaseSkuSpecId, |
|
|
PurchaseSpecId = cargoParam.SpecId, |
|
|
SchemeId = currentPurchaseSchemeSku.SkuPurchaseSchemeId, |
|
|
SchemeId = cargoParam.SchemeId, |
|
|
Quantity = assOrderCostDetail.PurchaseQuantity, |
|
|
Quantity = assOrderCostDetail.PurchaseQuantity, |
|
|
SourceSkuId = dbOrderSku.BelongSkuId |
|
|
SourceSkuId = dbOrderSku.BelongSkuId |
|
|
}; |
|
|
}; |
|
|
insertOrderPurchaseRelationInfoList.Add(orderPurchaseRelationInfo); |
|
|
insertOrderPurchaseRelationInfoList.Add(orderPurchaseRelationInfo); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#region 补齐采购SKU
|
|
|
|
|
|
foreach (var purchaseOrderSku in purchaseOrderSimpleInfo.ItemList) |
|
|
|
|
|
{ |
|
|
|
|
|
var orderPurchaseSkuInfo = new OrderPurchaseSkuInfo() |
|
|
|
|
|
{ |
|
|
|
|
|
Id = purchaseOrderSku.OrderSkuId, |
|
|
|
|
|
CreateTime = DateTime.Now, |
|
|
|
|
|
OrderId = request.OrderId, |
|
|
|
|
|
PurchaseOrderId = purchaseOrder.PurchaseOrderId, |
|
|
|
|
|
PurchaseProductId = purchaseOrderSku.ProductId, |
|
|
|
|
|
PurchaseSkuId = purchaseOrderSku.SkuId, |
|
|
|
|
|
ShopId = request.ShopId |
|
|
|
|
|
}; |
|
|
|
|
|
insertOrderPurchaseSkuInfoList.Add(orderPurchaseSkuInfo); |
|
|
|
|
|
} |
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
#endregion
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -1113,6 +1111,10 @@ namespace BBWYB.Server.Business |
|
|
if (request.PurchasePlatform != Enums.Platform.阿里巴巴) |
|
|
if (request.PurchasePlatform != Enums.Platform.阿里巴巴) |
|
|
return null; |
|
|
return null; |
|
|
|
|
|
|
|
|
|
|
|
var order = fsql.Select<Order>(request.OrderId).ToOne(); |
|
|
|
|
|
if (order == null) |
|
|
|
|
|
throw new BusinessException("订单不存在"); |
|
|
|
|
|
|
|
|
var client = ppPlatformClientFactory.GetClient((AdapterEnums.PlatformType)request.PurchasePlatform); |
|
|
var client = ppPlatformClientFactory.GetClient((AdapterEnums.PlatformType)request.PurchasePlatform); |
|
|
var purchaseOrderSimpleInfo = client.QueryOrderDetail(new PP_QueryOrderDetailRequest() |
|
|
var purchaseOrderSimpleInfo = client.QueryOrderDetail(new PP_QueryOrderDetailRequest() |
|
|
{ |
|
|
{ |
|
@ -1143,46 +1145,28 @@ namespace BBWYB.Server.Business |
|
|
|
|
|
|
|
|
#region 查询订单sku所有采购方案
|
|
|
#region 查询订单sku所有采购方案
|
|
|
var skuIds = dbOrderSkuList.Select(osku => osku.SkuId).ToList(); |
|
|
var skuIds = dbOrderSkuList.Select(osku => osku.SkuId).ToList(); |
|
|
var purchaseSchemeSkuList = fsql.Select<Purchaser, PurchaseScheme, PurchaseSchemeProductSku>() |
|
|
var purchaseSchemeList = purchaseSchemeBusiness.GetPurchaseSchemeList(new QuerySchemeRequest() |
|
|
.InnerJoin((p, ps, pss) => p.Id == ps.PurchaserId) |
|
|
{ |
|
|
.InnerJoin((p, ps, pss) => ps.Id == pss.SkuPurchaseSchemeId) |
|
|
ShopId = order.ShopId, |
|
|
.Where((p, ps, pss) => p.Id == purchaserId) |
|
|
SkuIdList = skuIds |
|
|
.Where((p, ps, pss) => ps.PurchasePlatform == Enums.Platform.阿里巴巴) |
|
|
|
|
|
.Where((p, ps, pss) => skuIds.Contains(pss.SkuId)) |
|
|
|
|
|
.ToList((p, ps, pss) => new |
|
|
|
|
|
{ |
|
|
|
|
|
pss.Id, |
|
|
|
|
|
pss.SkuId, |
|
|
|
|
|
pss.ProductId, |
|
|
|
|
|
pss.PurchaseProductId, |
|
|
|
|
|
pss.PurchaseSkuId, |
|
|
|
|
|
pss.PurchaseSkuSpecId, |
|
|
|
|
|
pss.SkuPurchaseSchemeId |
|
|
|
|
|
}); |
|
|
}); |
|
|
if (purchaseSchemeSkuList.Count() == 0) |
|
|
if (purchaseSchemeList.Count() == 0) |
|
|
throw new BusinessException($"采购单{request.PurchaseOrderId} 采购商Id{purchaserId} 未匹配到采购方案"); |
|
|
throw new BusinessException("未匹配到采购方案"); |
|
|
#endregion
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
#region 匹配采购单所使用到的采购方案
|
|
|
#region 匹配采购单所使用到的采购方案
|
|
|
var assocationOrderCostDetailList = new List<AssocationOrderCostDetailResponse>(); |
|
|
|
|
|
var purchaseSchemeGroups = purchaseSchemeSkuList.GroupBy(s => s.SkuPurchaseSchemeId); |
|
|
|
|
|
var cargoParamList = new List<CargoParamRequest>(); |
|
|
var cargoParamList = new List<CargoParamRequest>(); |
|
|
foreach (var schemeGroup in purchaseSchemeGroups) |
|
|
foreach (var orderSku in dbOrderSkuList) |
|
|
{ |
|
|
{ |
|
|
var schemePurchaseSkuList = schemeGroup.ToList(); |
|
|
var matchResultList = MatchPurchaseScheme(orderSku.SkuId, orderSku.ItemTotal ?? 1, purchaserId, purchaseSchemeList, purchaseOrderSimpleInfo); |
|
|
if (schemePurchaseSkuList.Any(psku => purchaseOrderSimpleInfo.ItemList.Count(x => x.SkuId == psku.PurchaseSkuId) == 0)) |
|
|
if (matchResultList.Count() > 0) |
|
|
continue; |
|
|
cargoParamList.AddRange(matchResultList); |
|
|
cargoParamList.AddRange(schemePurchaseSkuList.Select(x => new CargoParamRequest() |
|
|
|
|
|
{ |
|
|
|
|
|
BelongSkuId = x.SkuId, |
|
|
|
|
|
ProductId = x.PurchaseProductId, |
|
|
|
|
|
SkuId = x.PurchaseSkuId, |
|
|
|
|
|
Quantity = dbOrderSkuList.FirstOrDefault(s => s.SkuId == x.SkuId)?.ItemTotal ?? 1, |
|
|
|
|
|
SchemeId = x.SkuPurchaseSchemeId, |
|
|
|
|
|
SpecId = x.PurchaseSkuSpecId |
|
|
|
|
|
})); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (cargoParamList.Count() == 0) |
|
|
|
|
|
throw new BusinessException("未匹配到采购方案"); |
|
|
|
|
|
|
|
|
|
|
|
var assocationOrderCostDetailList = new List<AssocationOrderCostDetailResponse>(); |
|
|
var belongSkuGroups = cargoParamList.GroupBy(p => p.BelongSkuId); |
|
|
var belongSkuGroups = cargoParamList.GroupBy(p => p.BelongSkuId); |
|
|
var purchaseSkuTotalQuantity = cargoParamList.Sum(x => x.Quantity); |
|
|
var purchaseSkuTotalQuantity = cargoParamList.Sum(x => x.Quantity); |
|
|
foreach (var belongSkuGroup in belongSkuGroups) |
|
|
foreach (var belongSkuGroup in belongSkuGroups) |
|
@ -1199,8 +1183,6 @@ namespace BBWYB.Server.Business |
|
|
{ |
|
|
{ |
|
|
var currentPurchaseSkuProductAmount = purchaseOrderSimpleInfo.ItemList.Where(p => p.SkuId == currentOrderSkuCargo.SkuId) |
|
|
var currentPurchaseSkuProductAmount = purchaseOrderSimpleInfo.ItemList.Where(p => p.SkuId == currentOrderSkuCargo.SkuId) |
|
|
.Sum(p => p.ProductAmount); |
|
|
.Sum(p => p.ProductAmount); |
|
|
//var currentPurchaseSkuTotalQuantity = purchaseOrderSimpleInfo.ItemList.Where(p => p.SkuId == currentOrderSkuCargo.SkuId)
|
|
|
|
|
|
// .Sum(p => p.Quantity);
|
|
|
|
|
|
|
|
|
|
|
|
var currentPurchaseSkuTotalQuantity = cargoParamList.Where(p => p.SkuId == currentOrderSkuCargo.SkuId) |
|
|
var currentPurchaseSkuTotalQuantity = cargoParamList.Where(p => p.SkuId == currentOrderSkuCargo.SkuId) |
|
|
.Sum(p => p.Quantity); |
|
|
.Sum(p => p.Quantity); |
|
@ -2978,5 +2960,60 @@ namespace BBWYB.Server.Business |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 匹配采购方案
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="skuId"></param>
|
|
|
|
|
|
/// <param name="itemTotal"></param>
|
|
|
|
|
|
/// <param name="purchaserId"></param>
|
|
|
|
|
|
/// <param name="purchaseSchemeList"></param>
|
|
|
|
|
|
/// <param name="purchaseOrderSimpleInfo"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
private IList<CargoParamRequest> MatchPurchaseScheme(string skuId, |
|
|
|
|
|
int itemTotal, |
|
|
|
|
|
string purchaserId, |
|
|
|
|
|
IList<PurchaseSchemeResponse> purchaseSchemeList, |
|
|
|
|
|
PP_QueryOrderDetailResponse purchaseOrderSimpleInfo) |
|
|
|
|
|
{ |
|
|
|
|
|
List<CargoParamRequest> cargoParamList = new List<CargoParamRequest>(); |
|
|
|
|
|
var currentSkuSchemeList = purchaseSchemeList.Where(ps => ps.SkuId == skuId).ToList(); |
|
|
|
|
|
if (currentSkuSchemeList.Count() > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
foreach (var scheme in currentSkuSchemeList) |
|
|
|
|
|
{ |
|
|
|
|
|
var samePurchaserProductList = scheme.PurchaseSchemeProductList.Where(psp => psp.PurchaserId == purchaserId).ToList(); |
|
|
|
|
|
if (samePurchaserProductList.Count() == 0) |
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
|
|
bool isMatch = true; |
|
|
|
|
|
foreach (var schemeProduct in samePurchaserProductList) |
|
|
|
|
|
{ |
|
|
|
|
|
if (schemeProduct.PurchaseSchemeProductSkuList.Any(pss => purchaseOrderSimpleInfo.ItemList.Count(x => x.SkuId == pss.PurchaseSkuId) == 0)) |
|
|
|
|
|
{ |
|
|
|
|
|
isMatch = false; |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (isMatch) |
|
|
|
|
|
{ |
|
|
|
|
|
foreach (var schemeProduct in samePurchaserProductList) |
|
|
|
|
|
{ |
|
|
|
|
|
cargoParamList.AddRange(schemeProduct.PurchaseSchemeProductSkuList.Select(pss => new CargoParamRequest() |
|
|
|
|
|
{ |
|
|
|
|
|
BelongSkuId = pss.SkuId, |
|
|
|
|
|
ProductId = pss.PurchaseProductId, |
|
|
|
|
|
SkuId = pss.PurchaseSkuId, |
|
|
|
|
|
SchemeId = pss.SkuPurchaseSchemeId, |
|
|
|
|
|
SpecId = pss.PurchaseSkuSpecId, |
|
|
|
|
|
Quantity = (itemTotal * pss.PurchaseRatio) ?? 1 |
|
|
|
|
|
})); |
|
|
|
|
|
} |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return cargoParamList; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|