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] =?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; } + } +}