From b5db58ed00b4ef65ddb2c2791db24813755a8fe7 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Mon, 3 Jul 2023 23:28:58 +0800 Subject: [PATCH 1/8] 1 --- .../PurchaseOrder/PurchaseOrderBusiness.cs | 2 +- BBWYB.Server.Model/Enums.cs | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 045ca8e..1178aed 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -2234,7 +2234,7 @@ namespace BBWYB.Server.Business #endregion #region 查询订单/采购sku/快递单/采购关系 - var dbOrder = fsql.Select(tpeo.OrderId).ToOne(o => new Order + var dbOrder = fsql.Select(orderPurchaseInfo.OrderId).ToOne(o => new Order { Id = o.Id, ShopId = o.ShopId, diff --git a/BBWYB.Server.Model/Enums.cs b/BBWYB.Server.Model/Enums.cs index f77cacf..bc848a1 100644 --- a/BBWYB.Server.Model/Enums.cs +++ b/BBWYB.Server.Model/Enums.cs @@ -83,8 +83,7 @@ /// 暂停 = 7 /// 已退款 = 8 /// Unknow = 100 - /// 打包中 = 140 - /// 待完结 = 150 + /// 待验收 = 140 /// public enum OrderState { @@ -101,8 +100,7 @@ 暂停 = 7, 已退款 = 8, Unknow = 100, - 打包中 = 140, - 待完结 = 150 + 待验收 = 140 //待配置 = 101, } From bd222eb7d4ddafe2a2b4004e75c96976b783c207 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Mon, 3 Jul 2023 23:32:11 +0800 Subject: [PATCH 2/8] 1 --- BBWYB.Server.Business/Extensions/OrderStateExtension.cs | 5 ++--- BBWYB.Server.Business/Order/OrderBusiness.cs | 4 ++-- BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs | 3 +-- BBWYB.Server.Model/Enums.cs | 5 +++-- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/BBWYB.Server.Business/Extensions/OrderStateExtension.cs b/BBWYB.Server.Business/Extensions/OrderStateExtension.cs index 8cf2adc..1bf9ad0 100644 --- a/BBWYB.Server.Business/Extensions/OrderStateExtension.cs +++ b/BBWYB.Server.Business/Extensions/OrderStateExtension.cs @@ -21,8 +21,7 @@ namespace BBWYB.Server.Business { if (order.OrderState == Enums.OrderState.已取消 || order.OrderState == Enums.OrderState.已完成 || - order.OrderState == Enums.OrderState.待付款 || - order.OrderState == Enums.OrderState.待完结) + order.OrderState == Enums.OrderState.待付款) return; if (orderSkuList == null) @@ -106,7 +105,7 @@ namespace BBWYB.Server.Business if (orderPurchaseInfoList.Any(opi => opi.OrderState == Enums.PurchaseOrderState.已签收) && orderPurchaseInfoList.Count(opi => opi.OrderState == Enums.PurchaseOrderState.已签收) == orderPurchaseInfoList.Count()) { - order.OrderState = Enums.OrderState.打包中; + order.OrderState = Enums.OrderState.待验收; return; } #endregion diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs index 1e98780..a404352 100644 --- a/BBWYB.Server.Business/Order/OrderBusiness.cs +++ b/BBWYB.Server.Business/Order/OrderBusiness.cs @@ -54,8 +54,8 @@ namespace BBWYB.Server.Business select = select.Where((o, ocs, oct) => childSelect.Where(opi => opi.OrderId == o.Id).Any()); } select = select.WhereIf(request.OrderState == Enums.OrderState.待付款 || - request.OrderState == Enums.OrderState.打包中 || - request.OrderState == Enums.OrderState.待完结 || + request.OrderState == Enums.OrderState.待验收 || + request.OrderState == Enums.OrderState.待核算 || request.OrderState == Enums.OrderState.已完成 || request.OrderState == Enums.OrderState.已取消, (o, ocs, oct) => o.OrderState == request.OrderState) diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 1178aed..74f7935 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -58,8 +58,7 @@ namespace BBWYB.Server.Business { Enums.OrderState.已取消, Enums.OrderState.已完成, - Enums.OrderState.待付款, - Enums.OrderState.待完结 + Enums.OrderState.待付款 }; } diff --git a/BBWYB.Server.Model/Enums.cs b/BBWYB.Server.Model/Enums.cs index bc848a1..4e3962c 100644 --- a/BBWYB.Server.Model/Enums.cs +++ b/BBWYB.Server.Model/Enums.cs @@ -84,6 +84,7 @@ /// 已退款 = 8 /// Unknow = 100 /// 待验收 = 140 + /// 待核算 = 150 /// public enum OrderState { @@ -100,8 +101,8 @@ 暂停 = 7, 已退款 = 8, Unknow = 100, - 待验收 = 140 - + 待验收 = 140, + 待核算 = 150 //待配置 = 101, } From 7b87ebf2a972375c66ebb29bb8e4e2dcc0674538 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Tue, 4 Jul 2023 01:08:43 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E9=AA=8C=E6=94=B6=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/OrderController.cs | 14 ++- .../Extensions/OrderStateExtension.cs | 12 +- BBWYB.Server.Business/Order/OrderBusiness.cs | 108 +++++------------ .../PurchaseOrder/PurchaseOrderBusiness.cs | 114 +----------------- .../Dto/Request/Order/CheckSkuRequest.cs | 15 +++ 5 files changed, 76 insertions(+), 187 deletions(-) create mode 100644 BBWYB.Server.Model/Dto/Request/Order/CheckSkuRequest.cs diff --git a/BBWYB.Server.API/Controllers/OrderController.cs b/BBWYB.Server.API/Controllers/OrderController.cs index 8491317..c0be558 100644 --- a/BBWYB.Server.API/Controllers/OrderController.cs +++ b/BBWYB.Server.API/Controllers/OrderController.cs @@ -23,7 +23,7 @@ namespace BBWYB.Server.API.Controllers /// /// [HttpPost] - public OrderListResponse GetOrderList([FromBody]QueryOrderRequest request) + public OrderListResponse GetOrderList([FromBody] QueryOrderRequest request) { return orderBusiness.GetOrderList(request); } @@ -34,7 +34,7 @@ namespace BBWYB.Server.API.Controllers /// /// [HttpPost] - public IList GetPurchaseExpressOrderList([FromBody]QueryExpressOrderRequest request) + public IList GetPurchaseExpressOrderList([FromBody] QueryExpressOrderRequest request) { return orderBusiness.GetPurchaseExpressOrderList(request); } @@ -93,6 +93,16 @@ namespace BBWYB.Server.API.Controllers orderBusiness.EditOrderSkuRemark(request); } + /// + /// 来源SKU验收 + /// + /// + [HttpPost] + public void CheckSku([FromBody] CheckSkuRequest request) + { + orderBusiness.CheckSku(request); + } + /// /// 齐库推送打包费 /// diff --git a/BBWYB.Server.Business/Extensions/OrderStateExtension.cs b/BBWYB.Server.Business/Extensions/OrderStateExtension.cs index 1bf9ad0..9722a24 100644 --- a/BBWYB.Server.Business/Extensions/OrderStateExtension.cs +++ b/BBWYB.Server.Business/Extensions/OrderStateExtension.cs @@ -101,11 +101,19 @@ namespace BBWYB.Server.Business } #endregion - #region 打包中 + #region 待验收/待核算/已完成 if (orderPurchaseInfoList.Any(opi => opi.OrderState == Enums.PurchaseOrderState.已签收) && orderPurchaseInfoList.Count(opi => opi.OrderState == Enums.PurchaseOrderState.已签收) == orderPurchaseInfoList.Count()) { - order.OrderState = Enums.OrderState.待验收; + if (order.IntoStoreType == Enums.IntoStoreType.发回齐越) + { + if (orderSkuList.Any(osku => osku.IsCheck != true)) + order.OrderState = Enums.OrderState.待验收; + else + order.OrderState = Enums.OrderState.待核算; + } + else + order.OrderState = Enums.OrderState.已完成; return; } #endregion diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs index b2ba85c..9487dd9 100644 --- a/BBWYB.Server.Business/Order/OrderBusiness.cs +++ b/BBWYB.Server.Business/Order/OrderBusiness.cs @@ -313,81 +313,7 @@ namespace BBWYB.Server.Business return list; } - //public void OutStock(OutStockRequest request) - //{ - // var dbOrder = fsql.Select(request.OrderId).ToOne(); - // if (dbOrder == null) - // throw new BusinessException($"订单{request.OrderId}不存在"); - - // var dbOrderPurchaseInfoList = fsql.Select().Where(opi => opi.OrderId == request.OrderId && opi.IsEnabled == true).ToList(); - // var dbOrderPurchaseInfo = dbOrderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == request.PurchaseOrderId); - - // dbOrderPurchaseInfo.WaybillNo = request.WayBillNo; - // dbOrderPurchaseInfo.SourceExpressId = request.SourceExpressId; - // dbOrderPurchaseInfo.SourceExpressName = request.SourceExpressName; - // dbOrderPurchaseInfo.TargetExpressId = request.TargetExpressId; - // dbOrderPurchaseInfo.TargetExpressName = request.TargetExpressName; - // dbOrderPurchaseInfo.OrderState = Enums.PurchaseOrderState.待收货; - - // #region 订单状态 - // dbOrder.CalculationOrderState(fsql, null, dbOrderPurchaseInfoList); - // #endregion - - // if (!string.IsNullOrEmpty(request.TargetExpressId)) - // { - // #region 订阅快递100 - - // #endregion - - // //try - // //{ - // // opPlatformClientFactory.GetClient((AdapterEnums.PlatformType)request.Platform) - // // .OutStock(new OP_OutStockRequest() - // // { - // // AppKey = request.AppKey, - // // AppSecret = request.AppSecret, - // // AppToken = request.AppToken, - // // ExpressId = request.TargetExpressId, - // // ExpressName = request.TargetExpressName, - // // OrderId = request.OrderId, - // // Platform = (AdapterEnums.PlatformType)request.Platform, - // // WayBillNo = request.WayBillNo - // // }); - // //} - // //catch (Exception ex) - // //{ - // // nLogManager.Default().Error(ex, $"OutStock Request {JsonConvert.SerializeObject(request)}"); - // //} - // } - - // #region 通知C端出库 - // //通知C端 - // try - // { - // restApiService.SendRequest("https://bbwy.qiyue666.com", - // "/Api/PurchaseOrder/QuanTanSendGoodsCallback", - // new - // { - // OrderId = request.OrderId, - // ExpressId = request.SourceExpressId, - // ExpressName = request.SourceExpressName, - // request.WayBillNo - // }, - // null, - // HttpMethod.Post); - // } - // catch (Exception ex) - // { - - // } - // #endregion - - // fsql.Transaction(() => - // { - // fsql.Update().SetSource(dbOrderPurchaseInfo).ExecuteAffrows(); - // fsql.Update(request.OrderId).Set(o => o.OrderState, dbOrder.OrderState).ExecuteAffrows(); - // }); - //} + public void CancelOrder(CancelOrderRequest request, string mdsToken) { @@ -516,5 +442,37 @@ namespace BBWYB.Server.Business { } + + public void CheckSku(CheckSkuRequest request) + { + var dbOrder = fsql.Select(request.OrderId).ToOne(); + if (dbOrder == null) + throw new BusinessException($"订单{request.OrderId}不存在"); + var orderSkuList = fsql.Select().Where(osku => osku.OrderId == request.OrderId).ToList(); + var orderSku = orderSkuList.FirstOrDefault(osku => osku.BelongSkuId == request.SourceSkuId); + if (orderSku == null) + throw new BusinessException($"订单{request.OrderId}的归属sku中不存在{request.SourceSkuId}"); + + if (orderSku.IsCheck == true) + throw new BusinessException("已验收,无需重复验收"); + + + IUpdate updateOrder = null; + IUpdate updateOrderSku = null; + + orderSku.IsCheck = true; + updateOrderSku = fsql.Update(orderSku.Id).Set(osku => osku.IsCheck, true); + + var oldOrderState = dbOrder.OrderState; + dbOrder.CalculationOrderState(fsql, orderSkuList, null); + if (oldOrderState != dbOrder.OrderState) + updateOrder = fsql.Update(dbOrder.Id).Set(o => o.OrderState, dbOrder.OrderState); + + fsql.Transaction(() => + { + updateOrderSku?.ExecuteAffrows(); + updateOrder?.ExecuteAffrows(); + }); + } } } diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 74f7935..f1691b1 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -1210,7 +1210,8 @@ namespace BBWYB.Server.Business Id = o.Id, OrderSn = o.OrderSn, OrderState = o.OrderState, - ShopId = o.ShopId + ShopId = o.ShopId, + IntoStoreType = o.IntoStoreType }); if (dbOrder == null) throw new BusinessException("未查询到采购单的订单信息"); @@ -1591,7 +1592,8 @@ namespace BBWYB.Server.Business Id = o.Id, OrderSn = o.OrderSn, OrderState = o.OrderState, - ShopId = o.ShopId + ShopId = o.ShopId, + IntoStoreType = o.IntoStoreType }); if (dbOrder == null) throw new Exception("未查询到采购单的订单信息"); @@ -2195,111 +2197,6 @@ namespace BBWYB.Server.Business } } - private void KuaiDi100PublishCore(string param) - { - JObject jobject = JObject.Parse(param); - var waybillNo = jobject["lastResult"].Value("nu"); - try - { - 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(); - - IUpdate updatePurchaseExpressOrder = null; - IUpdate updateOrderPurchase = null; - IUpdate updateOrder = null; - - #region 查询该笔快递单 - var tpeo = fsql.Select(waybillNo).ToOne(); - if (tpeo == null) - throw new Exception("未查询到快递单"); - #endregion - - #region 查询采购单 - var orderPurchaseInfoList = fsql.Select().Where(opi => opi.OrderId == tpeo.OrderId && opi.IsEnabled == true).ToList(); - var orderPurchaseInfo = orderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == tpeo.PurchaseOrderId); - if (orderPurchaseInfo == null) - throw new Exception("未查询到采购单"); - #endregion - - #region 查询订单/采购sku/快递单/采购关系 - var dbOrder = fsql.Select(orderPurchaseInfo.OrderId).ToOne(o => new Order - { - Id = o.Id, - ShopId = o.ShopId, - OrderState = o.OrderState - }); - if (dbOrder == null) - throw new Exception("未查询到订单"); - - IList orderPurchaseSkuList = null; - IList orderPurchaseRelationList = null; - if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.阿里巴巴) - { - orderPurchaseSkuList = fsql.Select().Where(x => x.PurchaseOrderId == tpeo.PurchaseOrderId).ToList(); - if (orderPurchaseSkuList.Count() == 0) - throw new BusinessException("未查询到采购单sku信息"); - - orderPurchaseRelationList = fsql.Select().Where(opri => opri.PurchaseOrderId == tpeo.PurchaseOrderId).ToList(); - if (orderPurchaseRelationList.Count() == 0) - throw new BusinessException("未查询到采购单的关联信息"); - } - - var purchaseExpressOrderList = fsql.Select().Where(x => x.PurchaseOrderId == tpeo.PurchaseOrderId).ToList(); - var purchaseExpressOrder = purchaseExpressOrderList.FirstOrDefault(exo => exo.WaybillNo == waybillNo); - purchaseExpressOrder.ExpressState = convertState; - purchaseExpressOrder.ExpressChangedTime = lastData.ftime; - purchaseExpressOrder.ExpressContent = lastData.context; - updatePurchaseExpressOrder = fsql.Update().SetSource(purchaseExpressOrder); - - #endregion - - #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(() => - { - updatePurchaseExpressOrder?.ExecuteAffrows(); - updateOrderPurchase?.ExecuteAffrows(); - updateOrder?.ExecuteAffrows(); - }); - } - catch (Exception ex) - { - nLogManager.GetLogger("快递100").Error(ex, waybillNo); - } - } - /// /// 快递单信息变更 /// @@ -2336,7 +2233,8 @@ namespace BBWYB.Server.Business { Id = o.Id, ShopId = o.ShopId, - OrderState = o.OrderState + OrderState = o.OrderState, + IntoStoreType = o.IntoStoreType }); if (orderList.Count() == 0) throw new Exception("未查询到任何订单"); diff --git a/BBWYB.Server.Model/Dto/Request/Order/CheckSkuRequest.cs b/BBWYB.Server.Model/Dto/Request/Order/CheckSkuRequest.cs new file mode 100644 index 0000000..31e00a6 --- /dev/null +++ b/BBWYB.Server.Model/Dto/Request/Order/CheckSkuRequest.cs @@ -0,0 +1,15 @@ +namespace BBWYB.Server.Model.Dto +{ + public class CheckSkuRequest + { + /// + /// 订单Id + /// + public string OrderId { get; set; } + + /// + /// 来源SKUID (JD) + /// + public string SourceSkuId { get; set; } + } +} From e255327e8d07bf7627dbaa57836c62de7f21257d Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Tue, 4 Jul 2023 13:16:52 +0800 Subject: [PATCH 4/8] =?UTF-8?q?1.=E6=96=B0=E5=A2=9E=E9=BD=90=E5=BA=93?= =?UTF-8?q?=E9=AA=8C=E6=94=B6=E9=80=9A=E7=9F=A5=E6=8E=A5=E5=8F=A3=202.?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=A2=E5=8D=95=E7=8A=B6=E6=80=81=EF=BC=9A?= =?UTF-8?q?=E5=BE=85=E9=AA=8C=E6=94=B6=20=E5=BE=85=E6=A0=B8=E7=AE=97=203.?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E8=AE=A2=E5=8D=95=E4=BB=A3=E5=85=A5=E4=BB=93?= =?UTF-8?q?=E6=A0=87=E8=AF=86=E5=86=B3=E5=AE=9A=E6=98=AF=E5=90=A6=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E9=BD=90=E5=BA=93=E5=88=B0=E8=B4=A7=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=204.=E7=BB=9F=E4=B8=80=E5=BF=AB=E9=80=92=E5=8D=95=E5=8C=B9?= =?UTF-8?q?=E9=85=8D=E5=BD=92=E5=B1=9Esku=E8=A7=84=E5=88=99=205.=E6=9A=82?= =?UTF-8?q?=E6=97=B6=E4=B8=8B=E7=BA=BF=E4=BF=AE=E6=94=B9=E5=BF=AB=E9=80=92?= =?UTF-8?q?=E5=8D=95=E5=8F=B7=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/DataRepairController.cs | 32 ---- .../Controllers/OrderController.cs | 11 ++ .../DataRepair/DataRepairBusiness.cs | 133 +------------- .../Extensions/OrderStateExtension.cs | 2 +- .../PurchaseExpressOrderExtension.cs | 59 ++++++ BBWYB.Server.Business/Order/OrderBusiness.cs | 172 ++++++++++++------ .../PurchaseOrder/PurchaseOrderBusiness.cs | 20 +- .../Db/Order/PurchaseExpressOrder.cs | 11 +- .../Request/Order/QueryExpressOrderRequest.cs | 8 +- .../Order/PurchaseExpressOrderResponse.cs | 4 + 10 files changed, 209 insertions(+), 243 deletions(-) create mode 100644 BBWYB.Server.Business/Extensions/PurchaseExpressOrderExtension.cs diff --git a/BBWYB.Server.API/Controllers/DataRepairController.cs b/BBWYB.Server.API/Controllers/DataRepairController.cs index af2ca5e..e01a121 100644 --- a/BBWYB.Server.API/Controllers/DataRepairController.cs +++ b/BBWYB.Server.API/Controllers/DataRepairController.cs @@ -14,18 +14,6 @@ namespace BBWYB.Server.API.Controllers this.dataRepairBusiness = dataRepairBusiness; } - [HttpPost] - public void RepairPurchaseExpressOrder() - { - dataRepairBusiness.RepairPurchaseExpressOrder(); - } - - [HttpPost] - public void ClearCancelOrderData() - { - dataRepairBusiness.ClearCancelOrderData(); - } - /// /// 手动订阅快递100 /// @@ -37,25 +25,5 @@ namespace BBWYB.Server.API.Controllers dataRepairBusiness.SubscribeKD100(waybillNo, targetCompanyCode); } - /// - /// 修复订单状态 - /// - /// - [HttpPost("{orderId}")] - public void RepairOrderState([FromRoute] string orderId) - { - dataRepairBusiness.RepairOrderState(orderId); - } - - /// - /// 修复订单状态 - /// - /// - [HttpPost] - public void BatchRepairOrderState([FromBody] IList orderIds) - { - foreach (var orderId in orderIds) - dataRepairBusiness.RepairOrderState(orderId); - } } } diff --git a/BBWYB.Server.API/Controllers/OrderController.cs b/BBWYB.Server.API/Controllers/OrderController.cs index c0be558..fcb1178 100644 --- a/BBWYB.Server.API/Controllers/OrderController.cs +++ b/BBWYB.Server.API/Controllers/OrderController.cs @@ -39,6 +39,17 @@ namespace BBWYB.Server.API.Controllers return orderBusiness.GetPurchaseExpressOrderList(request); } + /// + /// 批量查询快递单列表 + /// + /// 订单Id数组 + /// + [HttpPost] + public IList BatchGetPurchaseExpressOrderList([FromBody] IList orderIds) + { + return orderBusiness.GetPurchaseExpressOrderList(orderIds); + } + ///// ///// 出库 diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs index 5a1b84e..7c953d0 100644 --- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs +++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs @@ -1,6 +1,7 @@ using BBWYB.Common.Log; using BBWYB.Common.Models; using BBWYB.Server.Model.Db; +using BBWYB.Server.Model.Dto; using FreeSql; using Yitter.IdGenerator; @@ -14,138 +15,6 @@ namespace BBWYB.Server.Business this.kuaiDi100Manager = kuaiDi100Manager; } - public void RepairPurchaseExpressOrder() - { - - #region 修复快递单 - var purchaseExpressOrderList = fsql.Select().Where(peo => !string.IsNullOrEmpty(peo.PurchaseOrderId)).ToList(); - var wayBillNos = purchaseExpressOrderList.Select(peo => peo.WaybillNo).ToList(); - var relationList = fsql.Select().Where(eori => wayBillNos.Contains(eori.WayBillNo)).ToList(); - - List insertExpressOrderRelationInfoList = new List(); - foreach (var peo in purchaseExpressOrderList) - { - var relation = relationList.FirstOrDefault(r => r.WayBillNo == peo.WaybillNo && r.PurchaseOrderId == peo.PurchaseOrderId); - if (relation != null) - continue; - insertExpressOrderRelationInfoList.Add(new ExpressOrderRelationInfo() - { - Id = idGenerator.NewLong(), - CreateTime = DateTime.Now, - OrderId = peo.OrderId, - PurchaseOrderId = peo.PurchaseOrderId, - ShopId = peo.ShopId, - WayBillNo = peo.WaybillNo - }); - } - fsql.Transaction(() => - { - fsql.Insert(insertExpressOrderRelationInfoList).ExecuteAffrows(); - }); - #endregion - } - - /// - /// 批量清理取消单数据 - /// - public void ClearCancelOrderData() - { - var cancelOrderList = fsql.Select().Where(o => o.OrderState == Model.Enums.OrderState.已取消).ToList(); - var cancelOrderIds = cancelOrderList.Select(o => o.Id); - - //var noUsingExpressOrderList = fsql.Select().Where(peo => !fsql.Select() - // .As("b") - // .ToList(b => b.WayBillNo) - // .Contains(peo.WaybillNo)) - // .ToList(); - - - /* - select * from purchaseexpressorder peo where not exists (select r.waybillno from expressorderrelationinfo r where peo.WaybillNo=r.WaybillNo); - */ - fsql.Transaction(() => - { - fsql.Delete().Where(opi => cancelOrderIds.Contains(opi.OrderId)).ExecuteAffrows(); - fsql.Delete().Where(posku => cancelOrderIds.Contains(posku.OrderId)).ExecuteAffrows(); - fsql.Delete().Where(opri => cancelOrderIds.Contains(opri.OrderId)).ExecuteAffrows(); - fsql.Delete().Where(oc => cancelOrderIds.Contains(oc.OrderId)).ExecuteAffrows(); - fsql.Delete().Where(ocd => cancelOrderIds.Contains(ocd.OrderId)).ExecuteAffrows(); - }); - } - - public void RepairOrderState(string orderId) - { - List> updateOrderPurchaseList = new List>(); - IUpdate updateOrder = null; - - var order = fsql.Select(orderId).ToOne(); - - #region 查询采购单 - var purchaseOrderList = fsql.Select().Where(ori => ori.IsEnabled == true && ori.OrderId == 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) => eori.OrderId == 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 - - foreach (var purchaseOrder in purchaseOrderList) - { - var currentPurchaseOrderSkuList = orderPurchaseSkuList.Where(posku => posku.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList(); - - var currentPurchaseExpressOrderList = purchaseExpressOrderList.Where(peo => peo.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList(); - - var oldPurchaseOrderState = purchaseOrder.OrderState; - purchaseOrder.CalculationOrderState(fsql, currentPurchaseOrderSkuList, currentPurchaseExpressOrderList); - if (purchaseOrder.OrderState != oldPurchaseOrderState) - { - var update = fsql.Update(purchaseOrder.Id).Set(opi => opi.OrderState, purchaseOrder.OrderState); - updateOrderPurchaseList.Add(update); - } - } - var oldOrderState = order.OrderState; - order.CalculationOrderState(fsql, null, purchaseOrderList); - if (order.OrderState != oldOrderState) - updateOrder = fsql.Update(order.Id).Set(o => o.OrderState, order.OrderState); - - fsql.Transaction(() => - { - foreach (var update in updateOrderPurchaseList) - update.ExecuteAffrows(); - updateOrder?.ExecuteAffrows(); - }); - } public void SubscribeKD100(string waybillNo, string targetCompanyCode) { diff --git a/BBWYB.Server.Business/Extensions/OrderStateExtension.cs b/BBWYB.Server.Business/Extensions/OrderStateExtension.cs index 9722a24..4fe1500 100644 --- a/BBWYB.Server.Business/Extensions/OrderStateExtension.cs +++ b/BBWYB.Server.Business/Extensions/OrderStateExtension.cs @@ -153,7 +153,7 @@ namespace BBWYB.Server.Business } if (purchaseExpressOrderList == null) - purchaseExpressOrderList = fsql.Select().Where(exo => exo.PurchaseOrderId == orderPurchaseInfo.PurchaseOrderId).ToList(); + return; if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.阿里巴巴) //支持采购sku和关联信息 { diff --git a/BBWYB.Server.Business/Extensions/PurchaseExpressOrderExtension.cs b/BBWYB.Server.Business/Extensions/PurchaseExpressOrderExtension.cs new file mode 100644 index 0000000..382eb6b --- /dev/null +++ b/BBWYB.Server.Business/Extensions/PurchaseExpressOrderExtension.cs @@ -0,0 +1,59 @@ +using BBWYB.Server.Model; +using BBWYB.Server.Model.Db; +using BBWYB.Server.Model.Dto; + +namespace BBWYB.Server.Business.Extensions +{ + public static class PurchaseExpressOrderExtension + { + /// + /// 计算快递单归属 + /// + /// 必须是经过与快递单关系表进行联合查询的结果 (ExpressOrderRelationInfo-PurchaseExpressOrder) + /// + /// + /// + public static void CalculationBelongOrderSku(this PurchaseExpressOrderResponse purchaseExpressOrder, + IList orderPurchaseInfoList, + IList orderPurchaseRelationInfoList, + IList orderPurchaseSkuInfoList) + { + var purchaseOrder = orderPurchaseInfoList.FirstOrDefault(po => po.PurchaseOrderId == purchaseExpressOrder.PurchaseOrderId); + if (purchaseOrder == null) + return; + 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(); + purchaseOrder.BelongSkuIds = string.Join(",", orderSkuIds); + + //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 + { + purchaseOrder.BelongSkuIds = purchaseOrder.BelongSkuIds; + //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); + //} + } + } + } +} diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs index 9487dd9..32d9bb1 100644 --- a/BBWYB.Server.Business/Order/OrderBusiness.cs +++ b/BBWYB.Server.Business/Order/OrderBusiness.cs @@ -206,40 +206,50 @@ namespace BBWYB.Server.Business #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.阿里巴巴) + purchaseExpressOrder.CalculationBelongOrderSku(orderPurchaseInfoList, orderPurchaseRelationInfoList, orderPurchaseSkuInfoList); + var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == purchaseExpressOrder.OrderId && + purchaseExpressOrder.BelongSkuIds.Contains(osku.SkuId)).ToList(); + foreach (var osku in currentOrderSkuList) { - 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); - } + if (osku.PurchaseExpressOrderList.Any(peo => peo.WaybillNo == purchaseExpressOrder.WaybillNo)) + continue; + osku.PurchaseExpressOrderList.Add(purchaseExpressOrder); } + + //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 } @@ -273,47 +283,91 @@ namespace BBWYB.Server.Business var orderPurchaseInfoList = fsql.Select().Where(op => op.OrderId == request.OrderId && op.IsEnabled == true).ToList(); var orderPurchaseRelationList = fsql.Select().Where(opri => opri.OrderId == request.OrderId && opri.SourceSkuId == request.SourceSkuId).ToList(); - var orderPurchaseSkuList = fsql.Select().Where(posku => posku.OrderId == request.OrderId).ToList(); - var orderSkuList = fsql.Select().Where(osku => osku.OrderId == request.OrderId).ToList(); + var orderPurchaseSkuList = fsql.Select().Where(posku => posku.OrderId == request.OrderId).ToList(); + var orderSku = fsql.Select().Where(osku => osku.OrderId == request.OrderId && osku.BelongSkuId == request.SourceSkuId).ToOne(); IList list = new List(); #region 处理SKU的快递单 - foreach (var purchaseOrder in orderPurchaseInfoList) + foreach (var purchaseExpressOrder in purchaseExpressOrderList) { - if (purchaseOrder.PurchasePlatform == Enums.Platform.阿里巴巴) - { - var currentRelationList = orderPurchaseRelationList.Where(ori => ori.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList(); - - var waybillNos = orderPurchaseSkuList.Where(posku => posku.PurchaseOrderId == purchaseOrder.PurchaseOrderId && - currentRelationList.Any(opri => opri.PurchaseSkuId == posku.PurchaseSkuId)) - .Select(x => x.WaybillNo) - .ToList(); - foreach (var waybillNo in waybillNos) - { - var peo = purchaseExpressOrderList.FirstOrDefault(x => x.WaybillNo == waybillNo); - if (peo != null && !list.Any(x => x.WaybillNo == waybillNo && x.PurchaseOrderId == purchaseOrder.PurchaseOrderId)) - list.Add(peo); - } - } - else + purchaseExpressOrder.CalculationBelongOrderSku(orderPurchaseInfoList, orderPurchaseRelationList, orderPurchaseSkuList); + if (!string.IsNullOrEmpty(purchaseExpressOrder.BelongSkuIds)) { - var currentSkuList = orderSkuList.Where(osku => purchaseOrder.BelongSkuIds.Contains(osku.SkuId)).Select(osku => osku.BelongSkuId).Distinct().ToList(); - if (currentSkuList.Contains(request.SourceSkuId)) + if (purchaseExpressOrder.BelongSkuIds.Contains(orderSku.SkuId)) { - var peoList = purchaseExpressOrderList.Where(x => x.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList(); - foreach (var peo in peoList) - { - if (!list.Any(x => x.WaybillNo == peo.WaybillNo && x.PurchaseOrderId == purchaseOrder.PurchaseOrderId)) - list.Add(peo); - } + if (!list.Any(x => x.WaybillNo == purchaseExpressOrder.WaybillNo)) + list.Add(purchaseExpressOrder); } } } + //foreach (var purchaseOrder in orderPurchaseInfoList) + //{ + // if (purchaseOrder.PurchasePlatform == Enums.Platform.阿里巴巴) + // { + // var currentRelationList = orderPurchaseRelationList.Where(ori => ori.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList(); + + // var waybillNos = orderPurchaseSkuList.Where(posku => posku.PurchaseOrderId == purchaseOrder.PurchaseOrderId && + // currentRelationList.Any(opri => opri.PurchaseSkuId == posku.PurchaseSkuId)) + // .Select(x => x.WaybillNo) + // .ToList(); + // foreach (var waybillNo in waybillNos) + // { + // var peo = purchaseExpressOrderList.FirstOrDefault(x => x.WaybillNo == waybillNo); + // if (peo != null && !list.Any(x => x.WaybillNo == waybillNo && x.PurchaseOrderId == purchaseOrder.PurchaseOrderId)) + // list.Add(peo); + // } + // } + // else + // { + // var currentSkuList = orderSkuList.Where(osku => purchaseOrder.BelongSkuIds.Contains(osku.SkuId)).Select(osku => osku.BelongSkuId).Distinct().ToList(); + // if (currentSkuList.Contains(request.SourceSkuId)) + // { + // var peoList = purchaseExpressOrderList.Where(x => x.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList(); + // foreach (var peo in peoList) + // { + // if (!list.Any(x => x.WaybillNo == peo.WaybillNo && x.PurchaseOrderId == purchaseOrder.PurchaseOrderId)) + // list.Add(peo); + // } + // } + // } + //} #endregion return list; } + public IList GetPurchaseExpressOrderList(IList orderIds) + { + var purchaseExpressOrderList = fsql.Select() + .InnerJoin((eori, peo) => eori.WayBillNo == peo.WaybillNo) + .Where((eori, peo) => orderIds.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 + }); + + var orderPurchaseInfoList = fsql.Select().Where(op => orderIds.Contains(op.OrderId) && op.IsEnabled == true).ToList(); + var orderPurchaseRelationList = fsql.Select().Where(opri => orderIds.Contains(opri.OrderId)).ToList(); + var orderPurchaseSkuList = fsql.Select().Where(posku => orderIds.Contains(posku.OrderId)).ToList(); + #region 处理SKU的快递单 + foreach (var purchaseExpressOrder in purchaseExpressOrderList) + { + purchaseExpressOrder.CalculationBelongOrderSku(orderPurchaseInfoList, orderPurchaseRelationList, orderPurchaseSkuList); + } + #endregion + return purchaseExpressOrderList; + } public void CancelOrder(CancelOrderRequest request, string mdsToken) { diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index f1691b1..1f8dcbd 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -1098,6 +1098,9 @@ namespace BBWYB.Server.Business public void EditPurchaseExpressOrder(EditPurchaseExpressOrderRequest request) { nLogManager.Default().Info($"EditPurchaseExpressOrder {JsonConvert.SerializeObject(request)}"); + + throw new BusinessException("修改快递单已暂时下线,待调整后重新上线"); + var dbOrder = fsql.Select(request.OrderId).ToOne(o => new { o.Id, o.ShopId, o.OrderSn }); if (dbOrder == null) throw new BusinessException($"订单号{request.OrderId}不存在"); @@ -1108,8 +1111,8 @@ namespace BBWYB.Server.Business var oldPeo = fsql.Select(request.OldWaybillNo).ToOne(); if (oldPeo == null) throw new BusinessException($"旧快递单号{request.OldWaybillNo}不存在"); - if (oldPeo.OrderId != request.OrderId || oldPeo.PurchaseOrderId != request.PurchaseOrderId) - throw new BusinessException("快递单号不属于当前操作提交的订单或采购单"); + //if (oldPeo.OrderId != request.OrderId || oldPeo.PurchaseOrderId != request.PurchaseOrderId) + // throw new BusinessException("快递单号不属于当前操作提交的订单或采购单"); var newPeo = fsql.Select(request.NewWaybillNo).ToOne(); if (newPeo != null) throw new BusinessException($"新快递单号{request.NewWaybillNo}已存在"); @@ -2315,12 +2318,15 @@ namespace BBWYB.Server.Business updateOrderPurchaseList.Add(update); #region 通知齐库打包落仓情况 - var currentOrderPurchaseRelationList = orderPurchaseRelationList.Where(opri => opri.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList(); + if (order.IntoStoreType == Enums.IntoStoreType.发回齐越) + { + 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); + Task.Factory.StartNew(() => qiKuManager.PublishQiKu(purchaseOrder, currentOrderPurchaseRelationList, currentPurchaseOrderSkuList, purchaseExpressOrderList), + CancellationToken.None, + TaskCreationOptions.LongRunning, + taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); + } #endregion } diff --git a/BBWYB.Server.Model/Db/Order/PurchaseExpressOrder.cs b/BBWYB.Server.Model/Db/Order/PurchaseExpressOrder.cs index 46f0d8e..73ca20f 100644 --- a/BBWYB.Server.Model/Db/Order/PurchaseExpressOrder.cs +++ b/BBWYB.Server.Model/Db/Order/PurchaseExpressOrder.cs @@ -40,11 +40,6 @@ namespace BBWYB.Server.Model.Db [Column(StringLength = 100)] public string ExpressState { get; set; } - [Column(StringLength = 100)] - public string OrderId { get; set; } - - [Column(StringLength = 100)] - public string PurchaseOrderId { get; set; } [Column(StringLength = 100)] public long ShopId { get; set; } @@ -79,6 +74,12 @@ namespace BBWYB.Server.Model.Db [Column(DbType = "bit")] public bool IsSubscribeKD100 { get; set; } = false; + [Column(IsIgnore = true)] + public string OrderId { get; set; } + + [Column(IsIgnore = true)] + public string PurchaseOrderId { get; set; } + } } diff --git a/BBWYB.Server.Model/Dto/Request/Order/QueryExpressOrderRequest.cs b/BBWYB.Server.Model/Dto/Request/Order/QueryExpressOrderRequest.cs index 936c733..3fd7542 100644 --- a/BBWYB.Server.Model/Dto/Request/Order/QueryExpressOrderRequest.cs +++ b/BBWYB.Server.Model/Dto/Request/Order/QueryExpressOrderRequest.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace BBWYB.Server.Model.Dto +namespace BBWYB.Server.Model.Dto { public class QueryExpressOrderRequest { diff --git a/BBWYB.Server.Model/Dto/Response/Order/PurchaseExpressOrderResponse.cs b/BBWYB.Server.Model/Dto/Response/Order/PurchaseExpressOrderResponse.cs index 58efff2..0a0a2a9 100644 --- a/BBWYB.Server.Model/Dto/Response/Order/PurchaseExpressOrderResponse.cs +++ b/BBWYB.Server.Model/Dto/Response/Order/PurchaseExpressOrderResponse.cs @@ -4,5 +4,9 @@ namespace BBWYB.Server.Model.Dto { public class PurchaseExpressOrderResponse: PurchaseExpressOrder { + /// + /// 归属SkuId,逗号间隔 (拳探SKU) + /// + public string BelongSkuIds { get; set; } } } From df1cf00668dffd73b4e35f0925891e9c1b714c38 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Tue, 4 Jul 2023 13:19:22 +0800 Subject: [PATCH 5/8] 1 --- BBWYB.Server.Business/Order/OrderBusiness.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs index 32d9bb1..dca8999 100644 --- a/BBWYB.Server.Business/Order/OrderBusiness.cs +++ b/BBWYB.Server.Business/Order/OrderBusiness.cs @@ -55,7 +55,7 @@ namespace BBWYB.Server.Business } select = select.WhereIf(request.OrderState == Enums.OrderState.待付款 || request.OrderState == Enums.OrderState.待验收 || - request.OrderState == Enums.OrderState.待核算 || + request.OrderState == Enums.OrderState.待核算 || request.OrderState == Enums.OrderState.已完成 || request.OrderState == Enums.OrderState.已取消, (o, ocs, oct) => o.OrderState == request.OrderState) From a7bb3e53fb2e2bb0b074ff1ea8416cb5a4905905 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Tue, 4 Jul 2023 13:45:11 +0800 Subject: [PATCH 6/8] 1 --- BBWYB.Server.Business/Order/OrderBusiness.cs | 30 ++++++++++++++------ 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs index dca8999..c5d4530 100644 --- a/BBWYB.Server.Business/Order/OrderBusiness.cs +++ b/BBWYB.Server.Business/Order/OrderBusiness.cs @@ -207,7 +207,8 @@ namespace BBWYB.Server.Business foreach (var purchaseExpressOrder in purchaseExpressOrderList) { purchaseExpressOrder.CalculationBelongOrderSku(orderPurchaseInfoList, orderPurchaseRelationInfoList, orderPurchaseSkuInfoList); - var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == purchaseExpressOrder.OrderId && + var currentOrderSkuList = orderSkuList.Where(osku => !string.IsNullOrEmpty(purchaseExpressOrder.BelongSkuIds) && + osku.OrderId == purchaseExpressOrder.OrderId && purchaseExpressOrder.BelongSkuIds.Contains(osku.SkuId)).ToList(); foreach (var osku in currentOrderSkuList) { @@ -383,13 +384,26 @@ namespace BBWYB.Server.Business fsql.Update(request.OrderId).Set(o => o.OrderState, Enums.OrderState.已取消).ExecuteAffrows(); - var sql = $"update purchaseorderv2 set OrderState=6 where Id='{request.OrderId}'"; - //取消C端采购单 - restApiService.SendRequest("https://bbwy.qiyue666.com", - "/Api/Sql/ExecuteNonQuery", - new { sql = sql.AESEncrypt() }, - new Dictionary() { { "Authorization", $"{mdsToken}" } }, - HttpMethod.Post); + try + { + restApiService.SendRequest("https://bbwy.qiyue666.com", "api/BatchPurchase/UpdatePurchaseOrderState", new + { + OrderId = request.OrderId, + PurchaseOrderState = Enums.OrderState.已取消 + }, null, HttpMethod.Post); + } + catch + { + + } + + //var sql = $"update purchaseorderv2 set OrderState=6 where Id='{request.OrderId}'"; + ////取消C端采购单 + //restApiService.SendRequest("https://bbwy.qiyue666.com", + // "/Api/Sql/ExecuteNonQuery", + // new { sql = sql.AESEncrypt() }, + // new Dictionary() { { "Authorization", $"Bearer {mdsToken}" } }, + // HttpMethod.Post); try { From 8f244747b55ef07759fce304567053522e187242 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Tue, 4 Jul 2023 14:37:03 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Extensions/PurchaseExpressOrderExtension.cs | 4 ++-- .../PurchaseOrder/PurchaseOrderBusiness.cs | 11 ----------- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/BBWYB.Server.Business/Extensions/PurchaseExpressOrderExtension.cs b/BBWYB.Server.Business/Extensions/PurchaseExpressOrderExtension.cs index 382eb6b..ad26a54 100644 --- a/BBWYB.Server.Business/Extensions/PurchaseExpressOrderExtension.cs +++ b/BBWYB.Server.Business/Extensions/PurchaseExpressOrderExtension.cs @@ -31,7 +31,7 @@ namespace BBWYB.Server.Business.Extensions .Select(ori => ori.BelongSkuId) .Distinct() .ToList(); - purchaseOrder.BelongSkuIds = string.Join(",", orderSkuIds); + purchaseExpressOrder.BelongSkuIds = string.Join(",", orderSkuIds); //var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == purchaseOrder.OrderId && // orderSkuIds.Contains(osku.SkuId)).ToList(); @@ -44,7 +44,7 @@ namespace BBWYB.Server.Business.Extensions } else { - purchaseOrder.BelongSkuIds = purchaseOrder.BelongSkuIds; + purchaseExpressOrder.BelongSkuIds = purchaseOrder.BelongSkuIds; //var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == purchaseOrder.OrderId && // purchaseOrder.BelongSkuIds.Contains(osku.SkuId)).ToList(); //foreach (var osku in currentOrderSkuList) diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 1f8dcbd..ce91d6f 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -1020,17 +1020,6 @@ namespace BBWYB.Server.Business var dbOrderCost = fsql.Select(request.OrderId).ToOne(); var dbOrder = fsql.Select(request.OrderId).ToOne(); - //try - //{ - // dbOrderCost.PurchaseAmount = dbOrderCostDetailList.Where(ocd => ocd.PurchaseOrderId != request.PurchaseOrderId).Sum(ocd => ocd.TotalCost); - //} - //catch - //{ - // dbOrderCost.PurchaseAmount = 0; - //} - //dbOrderCost.Profit = dbOrder.OrderTotalPrice - - // dbOrderCost.PurchaseAmount - - // dbOrderCost.DeliveryExpressFreight; // -orderCost.PlatformCommissionAmount var purchaseProductAmount = dbOrderCostDetailList.Count() == 0 ? 0M : dbOrderCostDetailList.Sum(ocd => ocd.SkuAmount) ?? 0M; var purchaseFreight = dbOrderCostDetailList.Count() == 0 ? 0M : dbOrderCostDetailList.Sum(ocd => ocd.PurchaseFreight) ?? 0M; var outPackAmount = dbOrderCostDetailList.Count() == 0 ? 0M : dbOrderCostDetailList.Sum(ocd => ocd.OutPackAmount) ?? 0M; From d1f261d976e6e4d98fcf1fa83e858f9e094150db Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Tue, 4 Jul 2023 22:24:11 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E6=89=B9=E9=87=8F=E6=89=8B=E5=8A=A8?= =?UTF-8?q?=E6=94=B6=E8=B4=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/PurchaseOrderController.cs | 10 ++++++++++ .../PurchaseOrder/PurchaseOrderBusiness.cs | 15 +++++++++++++++ .../Request/PurchaseOrder/ManualSignRequest.cs | 5 +++++ 3 files changed, 30 insertions(+) diff --git a/BBWYB.Server.API/Controllers/PurchaseOrderController.cs b/BBWYB.Server.API/Controllers/PurchaseOrderController.cs index a42def9..2b4dd1a 100644 --- a/BBWYB.Server.API/Controllers/PurchaseOrderController.cs +++ b/BBWYB.Server.API/Controllers/PurchaseOrderController.cs @@ -122,6 +122,16 @@ namespace BBWYB.Server.API.Controllers purchaseOrderBusiness.ManualSign(request); } + /// + /// 批量手动收货 + /// + /// + [HttpPost] + public void BatchManualSign([FromBody] BatchManualSignRequest request) + { + purchaseOrderBusiness.BatchManualSign(request); + } + /// /// 1688回调 /// diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index ce91d6f..9dc23e4 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -1359,6 +1359,21 @@ namespace BBWYB.Server.Business taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); } + public void BatchManualSign(BatchManualSignRequest request) + { + if (request.WayBillNoList == null || request.WayBillNoList.Count() == 0) + throw new BusinessException("缺少快递单号"); + if (request.WayBillNoList.Distinct().Count() < request.WayBillNoList.Count()) + throw new BusinessException("不允许重复的快递单号"); + Task.Factory.StartNew(() => + { + foreach (var waybillNo in request.WayBillNoList) + OnExpressOrderChange(waybillNo, "QianShou", DateTime.Now, "手动签收"); + }, CancellationToken.None, + TaskCreationOptions.LongRunning, + taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); + } + ///// ///// 手动收货 ///// diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseOrder/ManualSignRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseOrder/ManualSignRequest.cs index cf5c972..0a2ed94 100644 --- a/BBWYB.Server.Model/Dto/Request/PurchaseOrder/ManualSignRequest.cs +++ b/BBWYB.Server.Model/Dto/Request/PurchaseOrder/ManualSignRequest.cs @@ -18,4 +18,9 @@ public string WayBillNo { get; set; } } + + public class BatchManualSignRequest + { + public IList WayBillNoList { get; set; } + } }