|
|
@ -824,7 +824,7 @@ namespace BBWYB.Server.Business |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 预览关联订单信息
|
|
|
|
/// 预览关联订单信息(不支持关联预览的平台会返回null)
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="request"></param>
|
|
|
|
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 |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 修改采购快递单
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="request"></param>
|
|
|
|
public void EditPurchaseExpressOrder(EditPurchaseExpressOrderRequest request) |
|
|
|
{ |
|
|
|
var dbOrder = fsql.Select<Order>(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<Shops>().Where(s => s.ShopId == shopIds).ToOne(); |
|
|
|
|
|
|
|
var oldPeo = fsql.Select<PurchaseExpressOrder>(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<PurchaseExpressOrder>(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<PurchaseExpressOrder>(request.OldWaybillNo).ExecuteAffrows(); |
|
|
|
fsql.Update<OrderPurchaseSkuInfo>().Set(psku => psku.WaybillNo, request.NewWaybillNo) |
|
|
|
.Where(psku => psku.PurchaseOrderId == request.PurchaseOrderId) |
|
|
|
.Where(psku => psku.WaybillNo == request.OldWaybillNo) |
|
|
|
.ExecuteAffrows(); |
|
|
|
fsql.Insert(newPeo).ExecuteAffrows(); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 手动发货
|
|
|
|
/// </summary>
|
|
|
@ -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
|
|
|
|