From 38c4ef7ada6f2f4427b5c1c61c7e13d3693efbaa Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Mon, 19 Jun 2023 13:02:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BF=AB=E9=80=92=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/PurchaseOrderController.cs | 21 +++++ .../PurchaseOrder/PurchaseOrderBusiness.cs | 85 ++++++++++++++++++- .../AssocationPurchaseOrderPreviewRequest.cs | 9 ++ .../EditPurchaseExpressOrderRequest.cs | 20 +++++ .../AssociationPurchaseOrderResponse.cs | 5 ++ 5 files changed, 137 insertions(+), 3 deletions(-) create mode 100644 BBWYB.Server.Model/Dto/Request/PurchaseOrder/EditPurchaseExpressOrderRequest.cs diff --git a/BBWYB.Server.API/Controllers/PurchaseOrderController.cs b/BBWYB.Server.API/Controllers/PurchaseOrderController.cs index 5d1ffb9..a42def9 100644 --- a/BBWYB.Server.API/Controllers/PurchaseOrderController.cs +++ b/BBWYB.Server.API/Controllers/PurchaseOrderController.cs @@ -60,6 +60,27 @@ namespace BBWYB.Server.API.Controllers purchaseOrderBusiness.AssociatePurchaseOrder(request); } + /// + /// 预览关联采购单 (自动匹配订单sku与采购金额) (不支持关联预览的采购平台将返回null) + /// + /// + /// + [HttpPost] + public AssociationPurchaseOrderResponse PreviewAssocationPurchaseOrder([FromBody] AssocationPurchaseOrderPreviewRequest request) + { + return purchaseOrderBusiness.PreviewAssocationPurchaseOrder(request); + } + + /// + /// 修改采购快递单 + /// + /// + [HttpPost] + public void EditPurchaseExpressOrder([FromBody] EditPurchaseExpressOrderRequest request) + { + purchaseOrderBusiness.EditPurchaseExpressOrder(request); + } + /// /// 设置历史采购单 /// diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 91f0f64..854f071 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -824,7 +824,7 @@ namespace BBWYB.Server.Business } /// - /// 预览关联订单信息 + /// 预览关联订单信息(不支持关联预览的平台会返回null) /// /// public AssociationPurchaseOrderResponse PreviewAssocationPurchaseOrder(AssocationPurchaseOrderPreviewRequest request) @@ -915,9 +915,18 @@ namespace BBWYB.Server.Business if (assocationOrderCostDetailList.Count() == 0) throw new BusinessException("没有匹配到合适的采购方案"); - return new AssociationPurchaseOrderResponse() + return new AssociationPurchaseOrderResponse(assocationOrderCostDetailList) { - + PurchaserId = dbPurchaser.Id, + PurchaserName = dbPurchaser.Name, + PurchaseAccountId = request.PurchaseAccount.Id, + PurchaseAccountName = request.PurchaseAccount.AccountName, + PurchaseAmount = purchaseOrderSimpleInfo.ProductAmount, + PurchaseFreight = purchaseOrderSimpleInfo.FreightAmount, + PurchaseMethod = Enums.PurchaseMethod.关联外部单, + PurchaseOrderId = request.PurchaseOrderId, + PurchasePlatform = request.PurchasePlatform, + IsEnabled = true }; } @@ -964,6 +973,74 @@ namespace BBWYB.Server.Business }); } + /// + /// 修改采购快递单 + /// + /// + public void EditPurchaseExpressOrder(EditPurchaseExpressOrderRequest request) + { + var dbOrder = fsql.Select(request.OrderId).ToOne(o => new { o.Id, o.ShopId, o.OrderSn }); + if (dbOrder == null) + throw new BusinessException($"订单号{request.OrderId}不存在"); + + var shopIds = dbOrder.ShopId.ToString(); + var shop = fsqlManager.MDSfsql.Select().Where(s => s.ShopId == shopIds).ToOne(); + + 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("快递单号不属于当前操作提交的订单或采购单"); + var newPeo = fsql.Select(request.NewWaybillNo).ToOne(); + if (newPeo != null) + throw new BusinessException($"新快递单号{request.NewWaybillNo}已存在"); + + newPeo = new PurchaseExpressOrder() + { + WaybillNo = request.NewWaybillNo, + TargetExpressId = request.NewExpressId, + TargetExpressName = request.NewExpressName, + CreateTime = DateTime.Now, + OrderId = request.OrderId, + PurchaseOrderId = request.PurchaseOrderId, + ShopId = oldPeo.ShopId, + ExpressState = kuaiDi100Manager.GetExpressState(1) //快递100发货状态值 默认揽收 + }; + try + { + kuaiDi100Manager.SubscribeKuaiDi100(request.NewWaybillNo, request.NewExpressId, "http://bbwyb.qiyue666.com/api/purchaseorder/kuaidi100publish"); + newPeo.IsSubscribeKD100 = true; + } + catch (Exception ex) + { + nLogManager.Default().Error(ex, $"EditPurchaseExpressOrder,Request:{JsonConvert.SerializeObject(request)}"); + + #region 订阅失败发送钉钉通知 + var dingdingMsg = new StringBuilder(); + dingdingMsg.AppendLine($"错误:{ex.Message}"); + dingdingMsg.AppendLine($"采购订单号:{request.PurchaseOrderId}"); + dingdingMsg.AppendLine($"拳探订单号:{request.OrderId}"); + dingdingMsg.AppendLine($"拳探订单Sn:{dbOrder.OrderSn}"); + dingdingMsg.AppendLine($"源物流公司:无"); + dingdingMsg.AppendLine($"目标物流公司:{request.NewExpressName} {request.NewExpressId}"); + dingdingMsg.AppendLine($"快递单号:{request.NewWaybillNo}"); + dingdingMsg.AppendLine("触发环节:修改物流单号"); + dingdingMsg.Append($"店铺名:{shop.ShopName}"); + Task.Factory.StartNew(() => SendDingDingOnKD100SubscribeFail(dingdingMsg.ToString()), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); + #endregion + } + + fsql.Transaction(() => + { + fsql.Delete(request.OldWaybillNo).ExecuteAffrows(); + fsql.Update().Set(psku => psku.WaybillNo, request.NewWaybillNo) + .Where(psku => psku.PurchaseOrderId == request.PurchaseOrderId) + .Where(psku => psku.WaybillNo == request.OldWaybillNo) + .ExecuteAffrows(); + fsql.Insert(newPeo).ExecuteAffrows(); + }); + } + /// /// 手动发货 /// @@ -1057,6 +1134,7 @@ namespace BBWYB.Server.Business dingdingMsg.AppendLine($"源物流公司:无"); dingdingMsg.AppendLine($"目标物流公司:{request.ExpressName} {request.ExpressId}"); dingdingMsg.AppendLine($"快递单号:{request.WaybillNo}"); + dingdingMsg.AppendLine("触发环节:手动发货"); dingdingMsg.Append($"店铺名:{shop.ShopName}"); Task.Factory.StartNew(() => SendDingDingOnKD100SubscribeFail(dingdingMsg.ToString()), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); #endregion @@ -1401,6 +1479,7 @@ namespace BBWYB.Server.Business dingdingMsg.AppendLine($"源物流公司:{logisticsInfo.ExpressName}"); dingdingMsg.AppendLine($"目标物流公司:{kuaidi100Company?.TargetName} {kuaidi100Company?.TargetCode}"); dingdingMsg.AppendLine($"快递单号:{logisticsInfo.WayBillNo}"); + dingdingMsg.AppendLine("触发环节:1688发货回调"); dingdingMsg.Append($"店铺名:{shop.ShopName}"); Task.Factory.StartNew(() => SendDingDingOnKD100SubscribeFail(dingdingMsg.ToString()), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); #endregion diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseOrder/AssocationPurchaseOrderPreviewRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseOrder/AssocationPurchaseOrderPreviewRequest.cs index d8bb8dc..c0b82ef 100644 --- a/BBWYB.Server.Model/Dto/Request/PurchaseOrder/AssocationPurchaseOrderPreviewRequest.cs +++ b/BBWYB.Server.Model/Dto/Request/PurchaseOrder/AssocationPurchaseOrderPreviewRequest.cs @@ -5,10 +5,19 @@ /// public class AssocationPurchaseOrderPreviewRequest { + /// + /// 订单Id + /// public string OrderId { get; set; } + /// + /// 采购单Id + /// public string PurchaseOrderId { get; set; } + /// + /// 采购账户 + /// public PurchaseAccountRequest PurchaseAccount { get; set; } public Enums.Platform PurchasePlatform { get; set; } diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseOrder/EditPurchaseExpressOrderRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseOrder/EditPurchaseExpressOrderRequest.cs new file mode 100644 index 0000000..2568568 --- /dev/null +++ b/BBWYB.Server.Model/Dto/Request/PurchaseOrder/EditPurchaseExpressOrderRequest.cs @@ -0,0 +1,20 @@ +namespace BBWYB.Server.Model.Dto +{ + /// + /// 修改快递单号 + /// + public class EditPurchaseExpressOrderRequest + { + public string OrderId { get; set; } + + public string PurchaseOrderId { get; set; } + + public string OldWaybillNo { get; set; } + + public string NewWaybillNo { get; set; } + + public string NewExpressId { get; set;} + + public string NewExpressName { get; set; } + } +} diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseOrder/AssociationPurchaseOrderResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseOrder/AssociationPurchaseOrderResponse.cs index 6feb646..7d81449 100644 --- a/BBWYB.Server.Model/Dto/Response/PurchaseOrder/AssociationPurchaseOrderResponse.cs +++ b/BBWYB.Server.Model/Dto/Response/PurchaseOrder/AssociationPurchaseOrderResponse.cs @@ -7,6 +7,11 @@ AssocationOrderCostDetailList = new List(); } + public AssociationPurchaseOrderResponse(List assocationOrderCostDetailList) + { + AssocationOrderCostDetailList = assocationOrderCostDetailList; + } + /// /// 采购单号 ///