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; } } }