shanji 2 years ago
parent
commit
1f2f43b981
  1. 52
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

52
BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -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.,
@ -1113,6 +1117,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,24 +1151,34 @@ 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>()
.InnerJoin((p, ps, pss) => p.Id == ps.PurchaserId)
.InnerJoin((p, ps, pss) => ps.Id == pss.SkuPurchaseSchemeId) //var purchaseSchemeSkuList = fsql.Select<Purchaser, PurchaseScheme, PurchaseSchemeProductSku>()
.Where((p, ps, pss) => p.Id == purchaserId) // .InnerJoin((p, ps, pss) => p.Id == ps.PurchaserId)
.Where((p, ps, pss) => ps.PurchasePlatform == Enums.Platform.) // .InnerJoin((p, ps, pss) => ps.Id == pss.SkuPurchaseSchemeId)
.Where((p, ps, pss) => skuIds.Contains(pss.SkuId)) // .Where((p, ps, pss) => p.Id == purchaserId)
.ToList((p, ps, pss) => new // .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)
// throw new BusinessException($"采购单{request.PurchaseOrderId} 采购商Id{purchaserId} 未匹配到采购方案");
var purchaseSchemeList = purchaseSchemeBusiness.GetPurchaseSchemeList(new QuerySchemeRequest()
{ {
pss.Id, ShopId = order.ShopId,
pss.SkuId, SkuIdList = skuIds
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 匹配采购单所使用到的采购方案
@ -1199,8 +1217,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);

Loading…
Cancel
Save