From 9a42fb94df6d9a410a53de9915a8a7fb2ca673df Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Sun, 18 Jun 2023 18:16:52 +0800
Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E8=81=94=E9=A2=84=E8=A7=88=E6=8E=A5?=
=?UTF-8?q?=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/DataRepairController.cs | 11 ++++
.../DataRepair/DataRepairBusiness.cs | 9 +++-
.../PurchaseOrder/PurchaseOrderBusiness.cs | 52 ++++++++++++++++---
3 files changed, 64 insertions(+), 8 deletions(-)
diff --git a/BBWYB.Server.API/Controllers/DataRepairController.cs b/BBWYB.Server.API/Controllers/DataRepairController.cs
index bb8eb80..4581b91 100644
--- a/BBWYB.Server.API/Controllers/DataRepairController.cs
+++ b/BBWYB.Server.API/Controllers/DataRepairController.cs
@@ -19,5 +19,16 @@ namespace BBWYB.Server.API.Controllers
{
dataRepairBusiness.RepairPurchaseExpressOrder();
}
+
+ ///
+ /// 手动订阅快递100
+ ///
+ ///
+ ///
+ [HttpPost("{waybillNo}/{targetCompanyCode}")]
+ public void SubscribeKD100([FromRoute] string waybillNo, [FromRoute] string targetCompanyCode)
+ {
+ dataRepairBusiness.SubscribeKD100(waybillNo, targetCompanyCode);
+ }
}
}
diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
index 4710bef..b2a827f 100644
--- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
+++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
@@ -8,13 +8,20 @@ namespace BBWYB.Server.Business
{
public class DataRepairBusiness : BaseBusiness, IDenpendency
{
- public DataRepairBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator) : base(fsql, nLogManager, idGenerator)
+ private KuaiDi100Manager kuaiDi100Manager;
+ public DataRepairBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, KuaiDi100Manager kuaiDi100Manager) : base(fsql, nLogManager, idGenerator)
{
+ this.kuaiDi100Manager = kuaiDi100Manager;
}
public void RepairPurchaseExpressOrder()
{
}
+
+ public void SubscribeKD100(string waybillNo,string targetCompanyCode)
+ {
+ kuaiDi100Manager.SubscribeKuaiDi100(waybillNo, targetCompanyCode, "http://bbwyb.qiyue666.com/api/purchaseorder/kuaidi100publish");
+ }
}
}
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index f979837..21c1a1e 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -827,8 +827,11 @@ namespace BBWYB.Server.Business
/// 预览关联订单信息
///
///
- public void PreviewAssocationPurchaseOrder(AssocationPurchaseOrderPreviewRequest request)
+ public AssociationPurchaseOrderResponse PreviewAssocationPurchaseOrder(AssocationPurchaseOrderPreviewRequest request)
{
+ if (request.PurchasePlatform != Enums.Platform.阿里巴巴)
+ return null;
+
var client = ppPlatformClientFactory.GetClient((AdapterEnums.PlatformType)request.PurchasePlatform);
var purchaseOrderSimpleInfo = client.QueryOrderDetail(new PP_QueryOrderDetailRequest()
{
@@ -852,13 +855,13 @@ namespace BBWYB.Server.Business
#endregion
#region 查询订单Sku
- var orderSkuList = fsql.Select().Where(osku => osku.OrderId == request.OrderId).ToList();
- if (orderSkuList.Count() == 0)
+ var dbOrderSkuList = fsql.Select().Where(osku => osku.OrderId == request.OrderId).ToList();
+ if (dbOrderSkuList.Count() == 0)
throw new BusinessException("缺少订单sku信息");
#endregion
- #region 匹配采购方案
- var skuIds = orderSkuList.Select(osku => osku.SkuId).ToList();
+ #region 查询订单sku所有采购方案
+ var skuIds = dbOrderSkuList.Select(osku => osku.SkuId).ToList();
var purchaseSchemeSkuList = fsql.Select()
.InnerJoin((p, ps, pss) => p.Id == ps.PurchaserId)
.InnerJoin((p, ps, pss) => ps.Id == pss.SkuPurchaseSchemeId)
@@ -879,6 +882,43 @@ namespace BBWYB.Server.Business
throw new BusinessException($"采购单{request.PurchaseOrderId} 采购商Id{purchaserId} 未匹配到采购方案");
#endregion
+ #region 匹配采购单所使用到的采购方案
+ var assocationOrderCostDetailList = new List();
+ var purchaseSchemeGroups = purchaseSchemeSkuList.GroupBy(s => s.SkuPurchaseSchemeId);
+ var totalPurchaseCount = purchaseOrderSimpleInfo.ItemList.Sum(x => x.Quantity);
+ foreach (var schemeGroup in purchaseSchemeGroups)
+ {
+ var schemePurchaseSkuList = schemeGroup.ToList();
+ if (schemePurchaseSkuList.Any(psku => purchaseOrderSimpleInfo.ItemList.Count(x => x.SkuId == psku.PurchaseSkuId) == 0))
+ continue;
+
+ var orderPurchaseSkuOfCurrentSchemeList = purchaseOrderSimpleInfo.ItemList.Where(psku => schemePurchaseSkuList.Count(x => x.PurchaseSkuId == psku.SkuId) > 0);
+
+
+ var skuId = schemePurchaseSkuList.FirstOrDefault().SkuId;
+ var orderSku = dbOrderSkuList.FirstOrDefault(osku => osku.SkuId == skuId);
+ var assocationOrderCostDetail = new AssocationOrderCostDetailResponse()
+ {
+ Logo = orderSku.Logo,
+ Title = orderSku.Title,
+ SkuId = skuId,
+ OrderId = orderSku.OrderId,
+ SkuAmount = orderPurchaseSkuOfCurrentSchemeList.Sum(psku => psku.ProductAmount),
+ PurchaseQuantity = orderSku.ItemTotal.Value,
+ PurchaseFreight = purchaseOrderSimpleInfo.FreightAmount * (orderPurchaseSkuOfCurrentSchemeList.Sum(x => x.Quantity) / totalPurchaseCount)
+ };
+ assocationOrderCostDetail.PurchasePrice = assocationOrderCostDetail.SkuAmount / assocationOrderCostDetail.PurchaseFreight;
+ assocationOrderCostDetailList.Add(assocationOrderCostDetail);
+ }
+ #endregion
+
+ if (assocationOrderCostDetailList.Count() == 0)
+ throw new BusinessException("没有匹配到合适的采购方案");
+
+ return new AssociationPurchaseOrderResponse()
+ {
+
+ };
}
///
@@ -998,8 +1038,6 @@ namespace BBWYB.Server.Business
bool isSubscribeKD100 = false;
if (!isExists)
{
- kuaiDi100Manager.SubscribeKuaiDi100(request.WaybillNo, request.ExpressId, "http://bbwyb.qiyue666.com/api/purchaseorder/kuaidi100publish");
-
#region 订阅快递100
try
{