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;
+ }
+
///
/// 采购单号
///