From f242a659ff66de506e6ca3b73ef9fdfd41ab0772 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Sun, 25 Jun 2023 12:36:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=93=E7=BA=BF=E7=89=A9?= =?UTF-8?q?=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../KuaiDi100ExpressCompany.txt | 1 + BBWYB.Server.Business/Order/OrderBusiness.cs | 64 ++++++++++++++++--- .../PurchaseOrder/PurchaseOrderBusiness.cs | 6 +- .../Dto/Response/Order/OrderSkuResponse.cs | 17 +++-- 4 files changed, 72 insertions(+), 16 deletions(-) diff --git a/BBWYB.Server.Business/KuaiDi100ExpressCompany.txt b/BBWYB.Server.Business/KuaiDi100ExpressCompany.txt index 912eb38..12201a5 100644 --- a/BBWYB.Server.Business/KuaiDi100ExpressCompany.txt +++ b/BBWYB.Server.Business/KuaiDi100ExpressCompany.txt @@ -1398,3 +1398,4 @@ yikonn,yikonn,国际运输商 振捷国际货运,zjgj56,国际运输商 ZTE中兴物流,zteexpress,国际运输商 中途国际速递,ztsdu,国内运输商 +专线物流,zhuanxianwuliu,国内运输商 \ No newline at end of file diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs index 127ba3d..4092697 100644 --- a/BBWYB.Server.Business/Order/OrderBusiness.cs +++ b/BBWYB.Server.Business/Order/OrderBusiness.cs @@ -146,13 +146,12 @@ namespace BBWYB.Server.Business if (orderList.Count() > 0) { - #region 处理Sku - var orderSkuList = fsql.Select().Where(osku => osku.Price != 0 && - orderIdList.Contains(osku.OrderId)).ToList(); - foreach (var order in orderList) - { - order.ItemList = orderSkuList.Where(osku => osku.OrderId == order.Id).ToList(); - } + #region 查询关联信息 + var orderPurchaseRelationInfoList = fsql.Select().Where(ori => orderIdList.Contains(ori.OrderId)).ToList(); + #endregion + + #region 查询快递单信息 + var purchaseExpressOrderList = fsql.Select().Where(peo => orderIdList.Contains(peo.OrderId)).ToList(); #endregion #region 处理订单成本明细 @@ -164,9 +163,6 @@ namespace BBWYB.Server.Business #region 处理采购信息 var orderPurchaseInfoList = fsql.Select().Where(op => orderIdList.Contains(op.OrderId) && op.IsEnabled == true).ToList(); var orderPurchaseSkuInfoList = fsql.Select().Where(o => orderIdList.Contains(o.OrderId)).ToList(); - - var purchaseExpressOrderList = fsql.Select().Where(peo => orderIdList.Contains(peo.OrderId)).ToList(); - foreach (var order in orderList) { order.OrderPurchaseInfoList = orderPurchaseInfoList.Where(op => op.OrderId == order.Id).ToList(); @@ -176,7 +172,55 @@ namespace BBWYB.Server.Business orderPurchaseInfo.PurchaseExpressOrderList = purchaseExpressOrderList.Where(peo => peo.PurchaseOrderId == orderPurchaseInfo.PurchaseOrderId).ToList(); } } + #endregion + #region 处理SKU + var orderSkuList = fsql.Select().Where(osku => osku.Price != 0 && + orderIdList.Contains(osku.OrderId)).ToList(); + foreach (var order in orderList) + { + order.ItemList = orderSkuList.Where(osku => osku.OrderId == order.Id).ToList(); + } + #endregion + + #region 处理SKU的快递单 + foreach (var purchaseExpressOrder in purchaseExpressOrderList) + { + var purchaseOrder = orderPurchaseInfoList.FirstOrDefault(po => po.PurchaseOrderId == purchaseExpressOrder.PurchaseOrderId); + if (purchaseOrder == null) + continue; + if (purchaseOrder.PurchasePlatform == Enums.Platform.阿里巴巴) + { + var purchaseSkuIds = orderPurchaseSkuInfoList.Where(posku => posku.WaybillNo == purchaseExpressOrder.WaybillNo && + posku.PurchaseOrderId == purchaseOrder.PurchaseOrderId) + .Select(posku => posku.PurchaseSkuId).ToList(); + var orderSkuIds = orderPurchaseRelationInfoList.Where(ori => ori.PurchaseOrderId == purchaseOrder.PurchaseOrderId && + purchaseSkuIds.Contains(ori.PurchaseSkuId)) + .Select(ori => ori.BelongSkuId) + .Distinct() + .ToList(); + + var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == purchaseOrder.OrderId && + orderSkuIds.Contains(osku.SkuId)).ToList(); + foreach (var osku in currentOrderSkuList) + { + if (osku.PurchaseExpressOrderList.Any(peo => peo.WaybillNo == purchaseExpressOrder.WaybillNo)) + continue; + osku.PurchaseExpressOrderList.Add(purchaseExpressOrder); + } + } + else + { + var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == purchaseOrder.OrderId && + purchaseOrder.BelongSkuIds.Contains(osku.SkuId)).ToList(); + foreach (var osku in currentOrderSkuList) + { + if (osku.PurchaseExpressOrderList.Any(peo => peo.WaybillNo == purchaseExpressOrder.WaybillNo)) + continue; + osku.PurchaseExpressOrderList.Add(purchaseExpressOrder); + } + } + } #endregion } return new OrderListResponse() diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index a6e6344..4ee70b9 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -1117,6 +1117,9 @@ namespace BBWYB.Server.Business /// public void ManualDelivery(ManualDeliveryRequest request) { + if (request.ExpressId == "zhuanxianwuliu" && string.IsNullOrEmpty(request.WaybillNo)) + request.WaybillNo = $"wdh{idGenerator.NewLong()}"; + #region 准备数据库更新对象 List insertPurchaseExpressOrderList = new List(); IList> updateOrderPurchaseSkuList = new List>(); @@ -1187,7 +1190,7 @@ namespace BBWYB.Server.Business #region 订阅快递100 bool isSubscribeKD100 = false; - if (!isExists) + if (request.ExpressId != "zhuanxianwuliu" && !isExists) { #region 订阅快递100 try @@ -1215,7 +1218,6 @@ namespace BBWYB.Server.Business } #endregion } - #endregion #region 创建快递单 diff --git a/BBWYB.Server.Model/Dto/Response/Order/OrderSkuResponse.cs b/BBWYB.Server.Model/Dto/Response/Order/OrderSkuResponse.cs index bd3325d..daafc7e 100644 --- a/BBWYB.Server.Model/Dto/Response/Order/OrderSkuResponse.cs +++ b/BBWYB.Server.Model/Dto/Response/Order/OrderSkuResponse.cs @@ -4,10 +4,19 @@ namespace BBWYB.Server.Model.Dto { public class OrderSkuResponse : OrderSku { - // /// - // /// 采购方案 - // /// - //public long SchemeId { get;set; } + // /// + // /// 采购方案 + // /// + //public long SchemeId { get;set; } + public OrderSkuResponse() + { + PurchaseExpressOrderList = new List(); + } + + /// + /// 快递单列表 + /// + public IList PurchaseExpressOrderList { get; set; } } }