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

58
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))
pss.Id, // .ToList((p, ps, pss) => new
pss.SkuId, // {
pss.ProductId, // pss.Id,
pss.PurchaseProductId, // pss.SkuId,
pss.PurchaseSkuId, // pss.ProductId,
pss.PurchaseSkuSpecId, // pss.PurchaseProductId,
pss.SkuPurchaseSchemeId // pss.PurchaseSkuId,
}); // pss.PurchaseSkuSpecId,
if (purchaseSchemeSkuList.Count() == 0) // pss.SkuPurchaseSchemeId
throw new BusinessException($"采购单{request.PurchaseOrderId} 采购商Id{purchaserId} 未匹配到采购方案"); // });
//if (purchaseSchemeSkuList.Count() == 0)
// throw new BusinessException($"采购单{request.PurchaseOrderId} 采购商Id{purchaserId} 未匹配到采购方案");
var purchaseSchemeList = purchaseSchemeBusiness.GetPurchaseSchemeList(new QuerySchemeRequest()
{
ShopId = order.ShopId,
SkuIdList = skuIds
});
if (purchaseSchemeList.Count() == 0)
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);
@ -2611,7 +2627,7 @@ namespace BBWYB.Server.Business
if (order.IntoStoreType == Enums.IntoStoreType. && if (order.IntoStoreType == Enums.IntoStoreType. &&
state == "QianShou" && state == "QianShou" &&
order.OrderState == Enums.OrderState. && order.OrderState == Enums.OrderState. &&
inStoreOrderCheckTaskList != null && inStoreOrderCheckTaskList != null &&
!inStoreOrderCheckTaskList.Any(x => x.OrderId == order.Id)) !inStoreOrderCheckTaskList.Any(x => x.OrderId == order.Id))
{ {
insertInStoreOrderCheckTaskList.Add(new InStoreOrderCheckTask() insertInStoreOrderCheckTaskList.Add(new InStoreOrderCheckTask()

Loading…
Cancel
Save