From a463b67c42c7408d4072c343e2fd92836bfbe250 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Wed, 28 Jun 2023 15:27:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=A4=B8=E5=8D=95=E5=8C=85?= =?UTF-8?q?=E8=A3=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWYB.Server.Business/Order/OrderBusiness.cs | 19 +- .../PurchaseOrder/PurchaseOrderBusiness.cs | 473 +++++++++++++----- .../PurchaseOrder/ManualSignRequest.cs | 18 +- 3 files changed, 377 insertions(+), 133 deletions(-) diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs index 4092697..775cac8 100644 --- a/BBWYB.Server.Business/Order/OrderBusiness.cs +++ b/BBWYB.Server.Business/Order/OrderBusiness.cs @@ -151,7 +151,24 @@ namespace BBWYB.Server.Business #endregion #region 查询快递单信息 - var purchaseExpressOrderList = fsql.Select().Where(peo => orderIdList.Contains(peo.OrderId)).ToList(); + var purchaseExpressOrderList = fsql.Select() + .InnerJoin((eori, peo) => eori.WayBillNo == peo.WaybillNo) + .Where((eori, peo) => orderIdList.Contains(eori.OrderId)).ToList((eori, peo) => new PurchaseExpressOrderResponse + { + CreateTime = peo.CreateTime, + ExpressContent = peo.ExpressContent, + ExpressChangedTime = peo.ExpressChangedTime, + ExpressState = peo.ExpressState, + IsSubscribeKD100 = peo.IsSubscribeKD100, + OrderId = eori.OrderId, + PurchaseOrderId = eori.PurchaseOrderId, + ShopId = eori.ShopId.Value, + SourceExpressId = peo.SourceExpressId, + SourceExpressName = peo.SourceExpressName, + TargetExpressId = peo.TargetExpressId, + TargetExpressName = peo.TargetExpressName, + WaybillNo = peo.WaybillNo + }); #endregion #region 处理订单成本明细 diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 07f2819..a907d1b 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -568,7 +568,7 @@ namespace BBWYB.Server.Business foreach (var apo in request.AssociationPurchaseOrderList) { - if (Math.Abs(apo.PurchaseAmount - apo.AssocationOrderCostDetailList.Sum(aocd => aocd.SkuAmount)) > 1) + if (Math.Abs(apo.PurchaseAmount - apo.AssocationOrderCostDetailList.Sum(aocd => aocd.SkuAmount * aocd.PurchaseQuantity)) > 1) throw new BusinessException($"采购单{apo.PurchaseOrderId}的采购货款与明细采购货款总和误差不能超过1"); } #endregion @@ -1020,6 +1020,26 @@ namespace BBWYB.Server.Business var historyPurchaseOrder = orderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == request.PurchaseOrderId); if (historyPurchaseOrder == null) throw new BusinessException("未查询到采购单"); + + #region 找出失效的快递单 + List deleteWaybillNoList = new List(); + + //查询该采购单所使用的快递单号 + var useWaybillNos = fsql.Select().Where(eori => eori.PurchaseOrderId == historyPurchaseOrder.PurchaseOrderId).ToList(eori => eori.WayBillNo); + + //查询使用上述快递单号的快递单关系 + var expressOrderRelationList = fsql.Select().Where(eori => useWaybillNos.Contains(eori.WayBillNo)).ToList(); + + //以快递单号进行分组 + var expressOrderRelationGroups = expressOrderRelationList.GroupBy(eori => eori.WayBillNo); + foreach (var group in expressOrderRelationGroups) + { + if (group.Count() == group.Count(eori => eori.PurchaseOrderId == historyPurchaseOrder.PurchaseOrderId)) + deleteWaybillNoList.Add(group.Key); + } + #endregion + + orderPurchaseInfoList.Remove(historyPurchaseOrder); dbOrder.CalculationOrderState(fsql, orderPurchaseInfoList: orderPurchaseInfoList); @@ -1038,7 +1058,12 @@ namespace BBWYB.Server.Business fsql.Delete().Where(opsi => opsi.PurchaseOrderId == request.PurchaseOrderId).ExecuteAffrows(); fsql.Delete().Where(opri => opri.PurchaseOrderId == request.PurchaseOrderId).ExecuteAffrows(); - fsql.Delete().Where(peo => peo.PurchaseOrderId == request.PurchaseOrderId).ExecuteAffrows(); + + fsql.Delete().Where(eori => eori.PurchaseOrderId == historyPurchaseOrder.PurchaseOrderId).ExecuteAffrows(); + if (deleteWaybillNoList.Count() > 0) + fsql.Delete(deleteWaybillNoList).ExecuteAffrows(); + + //fsql.Delete().Where(peo => peo.PurchaseOrderId == request.PurchaseOrderId).ExecuteAffrows(); fsql.Update().SetSource(dbOrderCost).ExecuteAffrows(); fsql.Update(dbOrder.Id).Set(o => o.OrderState, dbOrder.OrderState).ExecuteAffrows(); @@ -1143,8 +1168,8 @@ namespace BBWYB.Server.Business ExpressChangedTime = peo.ExpressChangedTime, ExpressState = peo.ExpressState, IsSubscribeKD100 = peo.IsSubscribeKD100, - OrderId = eori.OrderId, - PurchaseOrderId = eori.PurchaseOrderId, + //OrderId = eori.OrderId, + //PurchaseOrderId = eori.PurchaseOrderId, ShopId = eori.ShopId.Value, SourceExpressId = peo.SourceExpressId, SourceExpressName = peo.SourceExpressName, @@ -1153,8 +1178,6 @@ namespace BBWYB.Server.Business WaybillNo = peo.WaybillNo }); bool isExists = purchaseExpressOrderList.Any(exo => exo.WaybillNo == request.WaybillNo); - if (isExists) - return; bool isDbExists = fsql.Select(request.WaybillNo).Any(); #endregion @@ -1314,131 +1337,139 @@ namespace BBWYB.Server.Business }); } - /// - /// 手动收货 - /// - /// public void ManualSign(ManualSignRequest request) { - IList> updatePurchaseExpressOrderList = new List>(); - IUpdate updateOrderPurchase = null; - IUpdate updateOrder = null; - - #region 查询该笔采购单的快递单信息 - var purchaseExpressOrderList = fsql.Select().Where(x => x.PurchaseOrderId == request.PurchaseOrderId).ToList(); - #endregion - - #region 查询当前采购单的订单信息 - var dbOrder = fsql.Select().InnerJoin((opi, o) => opi.OrderId == o.Id) - .Where((opi, o) => opi.PurchaseOrderId == request.PurchaseOrderId && opi.IsEnabled == true) - .ToOne((opi, o) => new Order - { - Id = o.Id, - OrderState = o.OrderState, - ShopId = o.ShopId - }); - if (dbOrder == null) - throw new BusinessException("未查询到采购单的订单信息"); - #endregion - - #region 查询订单的全部采购单信息 - var orderPurchaseInfoList = fsql.Select().Where(opi => opi.OrderId == dbOrder.Id && opi.IsEnabled == true).ToList(); - var orderPurchaseInfo = orderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == request.PurchaseOrderId); - if (orderPurchaseInfo == null) - throw new BusinessException("未查询到采购单信息"); - #endregion - - IList orderPurchaseSkuList = null; - IList orderPurchaseRelationList = null; - if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.阿里巴巴) - { - #region 查询采购关联信息 - orderPurchaseRelationList = fsql.Select().Where(opri => opri.PurchaseOrderId == request.PurchaseOrderId && - opri.BelongSkuId == request.SkuId).ToList(); - if (orderPurchaseRelationList.Count() == 0) - throw new BusinessException("未查询到采购单的关联信息"); - #endregion - - #region 查询该笔采购单的采购sku信息 - orderPurchaseSkuList = fsql.Select().Where(x => x.PurchaseOrderId == request.PurchaseOrderId).ToList(); - if (orderPurchaseSkuList.Count() == 0) - throw new BusinessException("未查询到采购单sku信息"); - #endregion - - #region 更新采购sku的快递单状态为签收 - foreach (var relation in orderPurchaseRelationList) - { - var orderPurchaseSku = orderPurchaseSkuList.FirstOrDefault(posku => posku.PurchaseSkuId == relation.PurchaseSkuId); - if (orderPurchaseSku == null) - throw new BusinessException("未查询到采购单sku信息"); - if (!string.IsNullOrEmpty(orderPurchaseSku.WaybillNo)) - { - var purchaseExpressOrder = purchaseExpressOrderList.FirstOrDefault(exo => exo.WaybillNo == orderPurchaseSku.WaybillNo); - if (purchaseExpressOrder == null) - throw new BusinessException("未查询到采购sku的快递信息"); - var expressState = kuaiDi100Manager.GetExpressState(3); - if (purchaseExpressOrder.ExpressState != expressState) - { - purchaseExpressOrder.ExpressState = expressState; - updatePurchaseExpressOrderList.Add(fsql.Update(purchaseExpressOrder.WaybillNo) - .Set(exo => exo.ExpressState, purchaseExpressOrder.ExpressState) - .Set(exo => exo.ExpressChangedTime, DateTime.Now) - .Set(exo => exo.ExpressContent, "手动签收")); - } - } - } - #endregion - } - else - { - foreach (var purchaseExpressOrder in purchaseExpressOrderList) - { - var expressState = kuaiDi100Manager.GetExpressState(3); - if (purchaseExpressOrder.ExpressState != expressState) - { - purchaseExpressOrder.ExpressState = expressState; - updatePurchaseExpressOrderList.Add(fsql.Update(purchaseExpressOrder.WaybillNo) - .Set(exo => exo.ExpressState, purchaseExpressOrder.ExpressState) - .Set(exo => exo.ExpressChangedTime, DateTime.Now) - .Set(exo => exo.ExpressContent, "手动签收")); - } - } - } - - #region 计算采购单状态 - orderPurchaseInfo.CalculationOrderState(fsql, orderPurchaseSkuList, purchaseExpressOrderList); - updateOrderPurchase = fsql.Update(orderPurchaseInfo.Id) - .Set(opi => opi.OrderState, orderPurchaseInfo.OrderState); - #endregion - - #region 计算订单状态 - dbOrder.CalculationOrderState(fsql, null, orderPurchaseInfoList); - updateOrder = fsql.Update(dbOrder.Id) - .Set(o => o.OrderState, dbOrder.OrderState); - #endregion - - #region 通知齐库打包落仓情况 - Task.Factory.StartNew(() => qiKuManager.PublishQiKu(orderPurchaseInfo, orderPurchaseRelationList, orderPurchaseSkuList, purchaseExpressOrderList), + Task.Factory.StartNew(() => OnExpressOrderChange(request.WayBillNo, "QianShou", DateTime.Now, "手动签收"), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); - #endregion + } - #region 通知C端状态 - Task.Factory.StartNew(() => SendPurchaseOrderStateToC(dbOrder.Id, dbOrder.OrderState.Value), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); - #endregion + ///// + ///// 手动收货 + ///// + ///// + //public void ManualSign(ManualSignRequest request) + //{ + // IList> updatePurchaseExpressOrderList = new List>(); + // IUpdate updateOrderPurchase = null; + // IUpdate updateOrder = null; + + // #region 查询该笔采购单的快递单信息 + // var purchaseExpressOrderList = fsql.Select().Where(x => x.PurchaseOrderId == request.PurchaseOrderId).ToList(); + // #endregion + + // #region 查询当前采购单的订单信息 + // var dbOrder = fsql.Select().InnerJoin((opi, o) => opi.OrderId == o.Id) + // .Where((opi, o) => opi.PurchaseOrderId == request.PurchaseOrderId && opi.IsEnabled == true) + // .ToOne((opi, o) => new Order + // { + // Id = o.Id, + // OrderState = o.OrderState, + // ShopId = o.ShopId + // }); + // if (dbOrder == null) + // throw new BusinessException("未查询到采购单的订单信息"); + // #endregion + + // #region 查询订单的全部采购单信息 + // var orderPurchaseInfoList = fsql.Select().Where(opi => opi.OrderId == dbOrder.Id && opi.IsEnabled == true).ToList(); + // var orderPurchaseInfo = orderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == request.PurchaseOrderId); + // if (orderPurchaseInfo == null) + // throw new BusinessException("未查询到采购单信息"); + // #endregion + + // IList orderPurchaseSkuList = null; + // IList orderPurchaseRelationList = null; + // if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.阿里巴巴) + // { + // #region 查询采购关联信息 + // orderPurchaseRelationList = fsql.Select().Where(opri => opri.PurchaseOrderId == request.PurchaseOrderId && + // opri.BelongSkuId == request.SkuId).ToList(); + // if (orderPurchaseRelationList.Count() == 0) + // throw new BusinessException("未查询到采购单的关联信息"); + // #endregion - fsql.Transaction(() => - { - if (updatePurchaseExpressOrderList.Count() > 0) - { - foreach (var update in updatePurchaseExpressOrderList) - update.ExecuteAffrows(); - } - updateOrderPurchase?.ExecuteAffrows(); - updateOrder?.ExecuteAffrows(); - }); - } + // #region 查询该笔采购单的采购sku信息 + // orderPurchaseSkuList = fsql.Select().Where(x => x.PurchaseOrderId == request.PurchaseOrderId).ToList(); + // if (orderPurchaseSkuList.Count() == 0) + // throw new BusinessException("未查询到采购单sku信息"); + // #endregion + + // #region 更新采购sku的快递单状态为签收 + // foreach (var relation in orderPurchaseRelationList) + // { + // var orderPurchaseSku = orderPurchaseSkuList.FirstOrDefault(posku => posku.PurchaseSkuId == relation.PurchaseSkuId); + // if (orderPurchaseSku == null) + // throw new BusinessException("未查询到采购单sku信息"); + // if (!string.IsNullOrEmpty(orderPurchaseSku.WaybillNo)) + // { + // var purchaseExpressOrder = purchaseExpressOrderList.FirstOrDefault(exo => exo.WaybillNo == orderPurchaseSku.WaybillNo); + // if (purchaseExpressOrder == null) + // throw new BusinessException("未查询到采购sku的快递信息"); + // var expressState = kuaiDi100Manager.GetExpressState(3); + // if (purchaseExpressOrder.ExpressState != expressState) + // { + // purchaseExpressOrder.ExpressState = expressState; + // updatePurchaseExpressOrderList.Add(fsql.Update(purchaseExpressOrder.WaybillNo) + // .Set(exo => exo.ExpressState, purchaseExpressOrder.ExpressState) + // .Set(exo => exo.ExpressChangedTime, DateTime.Now) + // .Set(exo => exo.ExpressContent, "手动签收")); + // } + // } + // } + // #endregion + // } + // else + // { + // foreach (var purchaseExpressOrder in purchaseExpressOrderList) + // { + // var expressState = kuaiDi100Manager.GetExpressState(3); + // if (purchaseExpressOrder.ExpressState != expressState) + // { + // purchaseExpressOrder.ExpressState = expressState; + // updatePurchaseExpressOrderList.Add(fsql.Update(purchaseExpressOrder.WaybillNo) + // .Set(exo => exo.ExpressState, purchaseExpressOrder.ExpressState) + // .Set(exo => exo.ExpressChangedTime, DateTime.Now) + // .Set(exo => exo.ExpressContent, "手动签收")); + // } + // } + // } + + // #region 计算采购单状态 + // orderPurchaseInfo.CalculationOrderState(fsql, orderPurchaseSkuList, purchaseExpressOrderList); + // updateOrderPurchase = fsql.Update(orderPurchaseInfo.Id) + // .Set(opi => opi.OrderState, orderPurchaseInfo.OrderState); + // #endregion + + // #region 计算订单状态 + // dbOrder.CalculationOrderState(fsql, null, orderPurchaseInfoList); + // updateOrder = fsql.Update(dbOrder.Id) + // .Set(o => o.OrderState, dbOrder.OrderState); + // #endregion + + // #region 通知齐库打包落仓情况 + // Task.Factory.StartNew(() => qiKuManager.PublishQiKu(orderPurchaseInfo, orderPurchaseRelationList, orderPurchaseSkuList, purchaseExpressOrderList), + // CancellationToken.None, + // TaskCreationOptions.LongRunning, + // taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); + // #endregion + + // #region 通知C端状态 + // Task.Factory.StartNew(() => SendPurchaseOrderStateToC(dbOrder.Id, dbOrder.OrderState.Value), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); + // #endregion + + // fsql.Transaction(() => + // { + // if (updatePurchaseExpressOrderList.Count() > 0) + // { + // foreach (var update in updatePurchaseExpressOrderList) + // update.ExecuteAffrows(); + // } + // updateOrderPurchase?.ExecuteAffrows(); + // updateOrder?.ExecuteAffrows(); + // }); + //} ///// ///// 签收采购单 @@ -2113,12 +2144,38 @@ namespace BBWYB.Server.Business public void KuaiDi100Publish(string param) { - Task.Factory.StartNew(() => KuaiDi100PublishCore(param), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); + nLogManager.GetLogger("快递100").Info($"KuaiDi100Publish {param}"); + try + { + JObject jobject = JObject.Parse(param); + var waybillNo = jobject["lastResult"].Value("nu"); + var state = jobject["lastResult"].Value("state"); + var convertState = kuaiDi100Manager.GetExpressState(state); + if (convertState == "Unknow") + return; + + var dataArray = jobject["lastResult"]["data"].Children().Select(d => new + { + context = d.Value("context"), + ftime = d.Value("ftime"), + statusCode = d.Value("statusCode") + }).OrderByDescending(d => d.ftime).ToList(); + + var lastData = dataArray.FirstOrDefault(); + + Task.Factory.StartNew(() => OnExpressOrderChange(waybillNo, convertState, lastData.ftime, lastData.context), + CancellationToken.None, + TaskCreationOptions.LongRunning, + taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); + } + catch (Exception ex) + { + nLogManager.GetLogger("快递100").Error(ex, $"KuaiDi100Publish-{param}"); + } } private void KuaiDi100PublishCore(string param) { - nLogManager.GetLogger("快递100").Info($"KuaiDi100Publish {param}"); JObject jobject = JObject.Parse(param); var waybillNo = jobject["lastResult"].Value("nu"); try @@ -2222,6 +2279,170 @@ namespace BBWYB.Server.Business } } + /// + /// 快递单信息变更 + /// + /// + /// + /// + /// + private void OnExpressOrderChange(string wayBillNo, string state, DateTime expressChangeTime, string expressContent) + { + try + { + IUpdate updatePurchaseExpressOrder = null; + List> updateOrderPurchaseList = new List>(); + List> updateOrderList = new List>(); + + #region 查询该笔快递单 + var tpeo = fsql.Select(wayBillNo).ToOne(); + if (tpeo == null) + throw new Exception("未查询到快递单"); + #endregion + + #region 查询和该快递单有关的订单 (多笔订单) + var orderIds = fsql.Select() + .InnerJoin((eori, peo) => eori.WayBillNo == peo.WaybillNo) + .Where((eori, peo) => eori.WayBillNo == wayBillNo) + .GroupBy((eori, peo) => eori.OrderId) + .ToList(g => g.Key); + if (orderIds.Count() == 0) + throw new Exception("未查询到任何订单号"); + #endregion + + #region 查询订单 + var orderList = fsql.Select(orderIds).ToList(o => new Order + { + Id = o.Id, + ShopId = o.ShopId, + OrderState = o.OrderState + }); + if (orderList.Count() == 0) + throw new Exception("未查询到任何订单"); + #endregion + + #region 查询订单sku + var orderSkuList = fsql.Select().Where(osku => orderIds.Contains(osku.OrderId)).ToList(); + if (orderSkuList.Count() == 0) + throw new Exception("未查询到任何订单sku"); + #endregion + + #region 查询采购单 + var purchaseOrderList = fsql.Select().Where(ori => ori.IsEnabled == true && orderIds.Contains(ori.OrderId)).ToList(); + if (purchaseOrderList.Count() == 0) + throw new Exception("未查询到任何采购单"); + var purchaseOrderIds = purchaseOrderList.Select(po => po.PurchaseOrderId).ToList(); + #endregion + + #region 查询采购SKU + IList orderPurchaseSkuList = fsql.Select() + .Where(posku => purchaseOrderIds.Contains(posku.PurchaseOrderId)) + .ToList(); + #endregion + + #region 查询采购sku关联信息 + IList orderPurchaseRelationList = fsql.Select() + .Where(ops => purchaseOrderIds.Contains(ops.PurchaseOrderId)) + .ToList(); + #endregion + + #region 查询采购单关联的快递单 + var purchaseExpressOrderList = fsql.Select() + .InnerJoin((eori, peo) => eori.WayBillNo == peo.WaybillNo) + .Where((eori, peo) => orderIds.Contains(eori.OrderId)).ToList((eori, peo) => new PurchaseExpressOrder + { + CreateTime = peo.CreateTime, + ExpressContent = peo.ExpressContent, + ExpressChangedTime = peo.ExpressChangedTime, + ExpressState = peo.ExpressState, + IsSubscribeKD100 = peo.IsSubscribeKD100, + OrderId = eori.OrderId, + PurchaseOrderId = eori.PurchaseOrderId, + ShopId = eori.ShopId.Value, + SourceExpressId = peo.SourceExpressId, + SourceExpressName = peo.SourceExpressName, + TargetExpressId = peo.TargetExpressId, + TargetExpressName = peo.TargetExpressName, + WaybillNo = peo.WaybillNo + }); + #endregion + + #region 更新采购单信息 + tpeo.ExpressState = state; + tpeo.ExpressChangedTime = expressChangeTime; + tpeo.ExpressContent = expressContent; + updatePurchaseExpressOrder = fsql.Update().SetSource(tpeo); + #endregion + + #region 计算订单状态和采购单状态 + foreach (var order in orderList) + { + var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == order.Id).ToList(); + var currentPurchaseOrderList = purchaseOrderList.Where(po => po.OrderId == order.Id).ToList(); + foreach (var purchaseOrder in currentPurchaseOrderList) + { + var currentPurchaseOrderSkuList = orderPurchaseSkuList.Where(posku => posku.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList(); + + var currentPurchaseExpressOrderList = purchaseExpressOrderList.Where(peo => peo.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList(); + var temp = currentPurchaseExpressOrderList.FirstOrDefault(p => p.WaybillNo == wayBillNo); + if (temp != null) + temp.ExpressState = state; + + var oldPurchaseOrderState = purchaseOrder.OrderState; + purchaseOrder.CalculationOrderState(fsql, currentPurchaseOrderSkuList, currentPurchaseExpressOrderList); + if (purchaseOrder.OrderState != oldPurchaseOrderState) + { + var update = fsql.Update(purchaseOrder.Id).Set(po => po.OrderState, purchaseOrder.OrderState); + updateOrderPurchaseList.Add(update); + + #region 通知齐库打包落仓情况 + var currentOrderPurchaseRelationList = orderPurchaseRelationList.Where(opri => opri.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList(); + + Task.Factory.StartNew(() => qiKuManager.PublishQiKu(purchaseOrder, currentOrderPurchaseRelationList, currentPurchaseOrderSkuList, purchaseExpressOrderList), + CancellationToken.None, + TaskCreationOptions.LongRunning, + taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); + #endregion + } + + } + var oldOrderState = order.OrderState; + order.CalculationOrderState(fsql, currentOrderSkuList, currentPurchaseOrderList); + if (order.OrderState != oldOrderState) + { + var update = fsql.Update(order.Id).Set(o => o.OrderState, order.OrderState); + updateOrderList.Add(update); + + #region 通知C端状态 + Task.Factory.StartNew(() => SendPurchaseOrderStateToC(order.Id, order.OrderState.Value), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); + #endregion + } + } + #endregion + + #region 更新数据库 + fsql.Transaction(() => + { + updatePurchaseExpressOrder?.ExecuteAffrows(); + if (updateOrderPurchaseList.Count() > 0) + { + foreach (var update in updateOrderPurchaseList) + update.ExecuteAffrows(); + } + if (updateOrderList.Count() > 0) + { + foreach (var update in updateOrderList) + update.ExecuteAffrows(); + } + }); + #endregion + } + catch (Exception ex) + { + nLogManager.GetLogger("快递100").Error(ex, wayBillNo); + } + } + private void SendDingDingOnKD100SubscribeFail(string content) { try diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseOrder/ManualSignRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseOrder/ManualSignRequest.cs index 81bc878..cf5c972 100644 --- a/BBWYB.Server.Model/Dto/Request/PurchaseOrder/ManualSignRequest.cs +++ b/BBWYB.Server.Model/Dto/Request/PurchaseOrder/ManualSignRequest.cs @@ -2,14 +2,20 @@ { public class ManualSignRequest { - /// - /// 采购单Id - /// - public string PurchaseOrderId { get; set; } + ///// + ///// 采购单Id + ///// + //public string PurchaseOrderId { get; set; } + + ///// + ///// 订单SkuId (OrderSku对象的SkuId) + ///// + //public string SkuId { get; set; } /// - /// 订单SkuId (OrderSku对象的SkuId) + /// 快递单号 /// - public string SkuId { get; set; } + public string WayBillNo { get; set; } + } }