|
|
@ -1,23 +1,21 @@ |
|
|
|
using BBWYB.Common.Http; |
|
|
|
using BBWYB.Common.Log; |
|
|
|
using BBWYB.Common.Models; |
|
|
|
using BBWYB.Server.Business.Extensions; |
|
|
|
using BBWYB.Server.Model; |
|
|
|
using BBWYB.Server.Model.Db; |
|
|
|
using BBWYB.Server.Model.Db.Mds; |
|
|
|
using BBWYB.Server.Model.Db.MDS; |
|
|
|
using BBWYB.Server.Model.Dto; |
|
|
|
using FreeSql; |
|
|
|
using Microsoft.Extensions.DependencyInjection; |
|
|
|
using Newtonsoft.Json; |
|
|
|
using Newtonsoft.Json.Linq; |
|
|
|
using SDKAdapter; |
|
|
|
using SDKAdapter.OperationPlatform.Models; |
|
|
|
using SDKAdapter.PurchasePlatform.Client; |
|
|
|
using SDKAdapter.PurchasePlatform.Models; |
|
|
|
using System.Text; |
|
|
|
using Yitter.IdGenerator; |
|
|
|
using BBWYB.Server.Business.Extensions; |
|
|
|
using Microsoft.Extensions.DependencyInjection; |
|
|
|
using BBWYB.Server.Model.Db.Mds; |
|
|
|
using static BBWYB.Server.Model.Enums; |
|
|
|
|
|
|
|
namespace BBWYB.Server.Business |
|
|
|
{ |
|
|
@ -825,6 +823,64 @@ namespace BBWYB.Server.Business |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 预览关联订单信息
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="request"></param>
|
|
|
|
public void PreviewAssocationPurchaseOrder(AssocationPurchaseOrderPreviewRequest request) |
|
|
|
{ |
|
|
|
var client = ppPlatformClientFactory.GetClient((AdapterEnums.PlatformType)request.PurchasePlatform); |
|
|
|
var purchaseOrderSimpleInfo = client.QueryOrderDetail(new PP_QueryOrderDetailRequest() |
|
|
|
{ |
|
|
|
AppKey = request.PurchaseAccount.AppKey, |
|
|
|
AppSecret = request.PurchaseAccount.AppSecret, |
|
|
|
AppToken = request.PurchaseAccount.AppToken, |
|
|
|
OrderId = request.PurchaseOrderId |
|
|
|
}); |
|
|
|
|
|
|
|
#region 处理采购商Id
|
|
|
|
var purchaserId = purchaseOrderSimpleInfo.PurchaserId; |
|
|
|
if (string.IsNullOrEmpty(purchaserId)) |
|
|
|
throw new BusinessException($"采购单{request.PurchaseOrderId}缺少采购商Id"); |
|
|
|
purchaserId = purchaserId.Replace("b2b-", string.Empty); |
|
|
|
var purchaserId2 = purchaserId.Substring(0, purchaserId.Length - 5); |
|
|
|
var purchaserIds = new List<string>() { purchaserId, purchaserId2 }; |
|
|
|
var dbPurchaser = fsql.Select<Purchaser>().Where(p => p.Platform == Enums.Platform.阿里巴巴 && purchaserIds.Contains(p.Id)).ToOne(); |
|
|
|
if (dbPurchaser == null) |
|
|
|
throw new BusinessException($"采购单{request.PurchaseOrderId}缺少有效采购商"); |
|
|
|
purchaserId = dbPurchaser.Id; |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 查询订单Sku
|
|
|
|
var orderSkuList = fsql.Select<OrderSku>().Where(osku => osku.OrderId == request.OrderId).ToList(); |
|
|
|
if (orderSkuList.Count() == 0) |
|
|
|
throw new BusinessException("缺少订单sku信息"); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 匹配采购方案
|
|
|
|
var skuIds = orderSkuList.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) |
|
|
|
.Where((p, ps, pss) => p.Id == purchaserId) |
|
|
|
.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} 未匹配到采购方案"); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 设置历史采购单
|
|
|
|
/// </summary>
|
|
|
|