You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
848 lines
48 KiB
848 lines
48 KiB
using BBWY.Common.Extensions;
|
|
using BBWY.Common.Models;
|
|
using BBWY.Server.Model;
|
|
using BBWY.Server.Model.Db;
|
|
using BBWY.Server.Model.Dto;
|
|
using FreeSql;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using QuanTan.SDK.Model;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using Yitter.IdGenerator;
|
|
using BBWY.Server.Business.Extensions;
|
|
namespace BBWY.Server.Business
|
|
{
|
|
public class PurchaseOrderBusiness : BaseBusiness, IDenpendency
|
|
{
|
|
private IEnumerable<PlatformSDKBusiness> platformSDKBusinessList;
|
|
private TaskSchedulerManager taskSchedulerManager;
|
|
private OrderBusiness orderBusiness;
|
|
private MDSBusiness mdsBusiness;
|
|
private VenderBusiness venderBusiness;
|
|
private LogisticsCompanyConverter logisticsCompanyConverter;
|
|
//private IDictionary<Enums.Platform, string> deliverySelfDic;
|
|
|
|
public PurchaseOrderBusiness(IFreeSql fsql,
|
|
NLogManager nLogManager,
|
|
IIdGenerator idGenerator,
|
|
IEnumerable<PlatformSDKBusiness> platformSDKBusinessList,
|
|
TaskSchedulerManager taskSchedulerManager,
|
|
OrderBusiness orderBusiness,
|
|
MDSBusiness mdsBusiness,
|
|
VenderBusiness venderBusiness,
|
|
LogisticsCompanyConverter logisticsCompanyConverter) : base(fsql, nLogManager, idGenerator)
|
|
{
|
|
this.platformSDKBusinessList = platformSDKBusinessList;
|
|
this.taskSchedulerManager = taskSchedulerManager;
|
|
this.orderBusiness = orderBusiness;
|
|
this.mdsBusiness = mdsBusiness;
|
|
this.venderBusiness = venderBusiness;
|
|
this.logisticsCompanyConverter = logisticsCompanyConverter;
|
|
//deliverySelfDic = new Dictionary<Enums.Platform, string>()
|
|
//{
|
|
// {Enums.Platform.京东 , "1274"} //厂家自送
|
|
//};
|
|
}
|
|
|
|
public void AddPurchaseOrder(AddPurchaseOrderRequest addPurchaseOrderRequest)
|
|
{
|
|
if (string.IsNullOrEmpty(addPurchaseOrderRequest.PurchaseOrderId) ||
|
|
string.IsNullOrEmpty(addPurchaseOrderRequest.SkuId) ||
|
|
string.IsNullOrEmpty(addPurchaseOrderRequest.ProductId))
|
|
throw new BusinessException("缺少采购单必要信息");
|
|
|
|
if (fsql.Select<PurchaseOrder>().Where(po => po.SkuId == addPurchaseOrderRequest.SkuId &&
|
|
po.PurchaseOrderId == addPurchaseOrderRequest.PurchaseOrderId &&
|
|
po.StorageType == addPurchaseOrderRequest.StorageType).Any())
|
|
throw new BusinessException("同一个SkuId和同一种仓储类型中不能存在重复的采购单号");
|
|
|
|
var purchaseOrder = addPurchaseOrderRequest.Map<PurchaseOrder>();
|
|
purchaseOrder.Id = idGenerator.NewLong();
|
|
purchaseOrder.CreateTime = DateTime.Now;
|
|
if (purchaseOrder.StorageType == Enums.StorageType.京仓)
|
|
{
|
|
if (purchaseOrder.SingleInStorageAmount == 0M)
|
|
purchaseOrder.SingleInStorageAmount = 0.2M;
|
|
if (purchaseOrder.SingleOutStorageAmount == 0M)
|
|
purchaseOrder.SingleOutStorageAmount = 2.8M;
|
|
if (purchaseOrder.SingleRefundInStorageAmount == 0M)
|
|
purchaseOrder.SingleRefundInStorageAmount = 2.8M;
|
|
}
|
|
if (purchaseOrder.StorageType == Enums.StorageType.云仓)
|
|
{
|
|
if (purchaseOrder.SingleInStorageAmount == 0M)
|
|
purchaseOrder.SingleInStorageAmount = 0.2M;
|
|
if (purchaseOrder.SingleOutStorageAmount == 0M)
|
|
purchaseOrder.SingleOutStorageAmount = 0.9M;
|
|
if (purchaseOrder.SingleRefundInStorageAmount == 0M)
|
|
purchaseOrder.SingleRefundInStorageAmount = 1M;
|
|
}
|
|
|
|
fsql.Insert(purchaseOrder).ExecuteAffrows();
|
|
}
|
|
|
|
public void EditPurchaseOrder(EditPurchaseOrderRequest editPurchaseOrderRequest)
|
|
{
|
|
fsql.Update<PurchaseOrder>(editPurchaseOrderRequest.Id).Set(po => po.PurchaseQuantity, editPurchaseOrderRequest.PurchaseQuantity)
|
|
.Set(po => po.RemainingQuantity, editPurchaseOrderRequest.RemainingQuantity)
|
|
.Set(po => po.SingleSkuAmount, editPurchaseOrderRequest.SingleSkuAmount)
|
|
.Set(po => po.SingleFreight, editPurchaseOrderRequest.SingleFreight)
|
|
.Set(po => po.SingleFirstFreight, editPurchaseOrderRequest.SingleFirstFreight)
|
|
.Set(po => po.SingleInStorageAmount, editPurchaseOrderRequest.SingleInStorageAmount)
|
|
.Set(po => po.SingleOutStorageAmount, editPurchaseOrderRequest.SingleOutStorageAmount)
|
|
.Set(po => po.SingleRefundInStorageAmount, editPurchaseOrderRequest.SingleRefundInStorageAmount)
|
|
.Set(po => po.SingleConsumableAmount, editPurchaseOrderRequest.SingleConsumableAmount)
|
|
.Set(po => po.SingleStorageAmount, editPurchaseOrderRequest.SingleStorageAmount)
|
|
.Set(po => po.SingleDeliveryFreight, editPurchaseOrderRequest.SingleDeliveryFreight)
|
|
.ExecuteAffrows();
|
|
}
|
|
|
|
public IList<PurchaseOrderResponse> GetList(QueryPurchaseOrderRequest queryPurchaseOrderRequest)
|
|
{
|
|
return fsql.Select<PurchaseOrder>().Where(po => po.ShopId == queryPurchaseOrderRequest.ShopId &&
|
|
queryPurchaseOrderRequest.SkuIdList.Contains(po.SkuId) &&
|
|
po.StorageType == queryPurchaseOrderRequest.StorageType)
|
|
.ToList()
|
|
.Map<IList<PurchaseOrderResponse>>();
|
|
}
|
|
|
|
public void DeletePurchaseOrder(long id)
|
|
{
|
|
fsql.Delete<PurchaseOrder>(id).ExecuteAffrows();
|
|
}
|
|
|
|
public PreviewOrderResponse PreviewPurchaseOrder(PreviewOrderReuqest previewOrderReuqest)
|
|
{
|
|
return platformSDKBusinessList.FirstOrDefault(p => p.Platform == previewOrderReuqest.Platform).PreviewOrder(previewOrderReuqest);
|
|
}
|
|
|
|
public void NewFastCreateOrder(CreateOnlinePurchaseOrderRequest createOnlinePurchaseOrderRequest)
|
|
{
|
|
if (createOnlinePurchaseOrderRequest.PlatformCommissionRatio == 0M)
|
|
createOnlinePurchaseOrderRequest.PlatformCommissionRatio = 0.05M;
|
|
//if (createOnlinePurchaseOrderRequest.Platform != Enums.Platform.阿里巴巴)
|
|
// throw new NotImplementedException();
|
|
var dbOrder = fsql.Select<Order>(createOnlinePurchaseOrderRequest.OrderId).ToOne();
|
|
if (dbOrder == null)
|
|
throw new BusinessException("订单不存在");
|
|
if (dbOrder.OrderState != Enums.OrderState.等待采购 && dbOrder.OrderState != Enums.OrderState.待出库)
|
|
throw new BusinessException("只能为等待采购或待出库的订单进行采购");
|
|
if (createOnlinePurchaseOrderRequest.CargoParamList == null || createOnlinePurchaseOrderRequest.CargoParamList.Count() == 0)
|
|
throw new BusinessException("缺少下单参数");
|
|
|
|
//拦截不要属于当前订单的请求
|
|
var orderSkus = fsql.Select<OrderSku>().Where(osku => osku.Price != 0 && osku.OrderId == createOnlinePurchaseOrderRequest.OrderId).ToList();
|
|
|
|
if (createOnlinePurchaseOrderRequest.CargoParamList.Any(c => !orderSkus.Any(osku => osku.SkuId == c.BelongSkuId)))
|
|
{
|
|
nLogManager.Default().Info($"NewFastCreateOrder\r\n非法请求\r\n{JsonConvert.SerializeObject(createOnlinePurchaseOrderRequest)}");
|
|
//移除不属于当前订单的采购配件
|
|
for (var i = 0; i < createOnlinePurchaseOrderRequest.CargoParamList.Count(); i++)
|
|
{
|
|
var cp = createOnlinePurchaseOrderRequest.CargoParamList[i];
|
|
if (!orderSkus.Any(osku => osku.SkuId == cp.BelongSkuId))
|
|
{
|
|
createOnlinePurchaseOrderRequest.CargoParamList.RemoveAt(i);
|
|
i--;
|
|
}
|
|
}
|
|
|
|
if (createOnlinePurchaseOrderRequest.CargoParamList.Count() == 0)
|
|
throw new BusinessException("经过采购配件的订单sku归属关系过滤之后,剩余采购配件数量为0,请先联系技术人员排查问题之后再手动关联");
|
|
|
|
//throw new BusinessException("非法sku参数,下单sku中存在不属于该笔订单的sku");
|
|
}
|
|
|
|
|
|
|
|
var oldPourchaseIdList = fsql.Select<OrderCostDetail>().Where(ocd => ocd.OrderId == dbOrder.Id)
|
|
.ToList(ocd => ocd.PurchaseOrderPKId);
|
|
|
|
var deletePurchaseOrder = fsql.Delete<PurchaseOrder>().Where(po => oldPourchaseIdList.Contains(po.Id));
|
|
var deleteOrderCostDetail = fsql.Delete<OrderCostDetail>().Where(ocd => ocd.OrderId == dbOrder.Id);
|
|
var isRepurchase = fsql.Select<OrderCost>(dbOrder.Id).Any();
|
|
var orderSkuIds = orderSkus.Select(osku => osku.Id).ToList();
|
|
|
|
#region 合并重复的采购sku
|
|
var repeatPurchaseSkuGroups = createOnlinePurchaseOrderRequest.CargoParamList.GroupBy(p => p.SkuId).ToList();
|
|
foreach (var group in repeatPurchaseSkuGroups)
|
|
{
|
|
if (group.Count() > 1)
|
|
{
|
|
var repeatSkus = group.ToList();
|
|
foreach (var repeatSku in repeatSkus)
|
|
createOnlinePurchaseOrderRequest.CargoParamList.Remove(repeatSku);
|
|
createOnlinePurchaseOrderRequest.CargoParamList.Add(new CargoParamRequest()
|
|
{
|
|
BelongSkuId = repeatSkus[0].BelongSkuId,
|
|
ProductId = repeatSkus[0].ProductId,
|
|
SkuId = repeatSkus[0].SkuId,
|
|
SpecId = repeatSkus[0].SpecId,
|
|
Quantity = repeatSkus.Sum(s => s.Quantity)
|
|
});
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
List<long> updatePurchaseTimeSchemeIdList = new List<long>();
|
|
updatePurchaseTimeSchemeIdList.AddRange(createOnlinePurchaseOrderRequest.CargoParamList.Select(p => p.SchemeId).Distinct());
|
|
|
|
var createOrderResponse = platformSDKBusinessList.FirstOrDefault(p => p.Platform == createOnlinePurchaseOrderRequest.Platform)
|
|
.FastCreateOrder(createOnlinePurchaseOrderRequest);
|
|
|
|
|
|
var purchaseOrderSimpleInfo = platformSDKBusinessList.FirstOrDefault(p => p.Platform == createOnlinePurchaseOrderRequest.Platform).GetOrderSimpleInfo(new GetOrderInfoRequest()
|
|
{
|
|
AppKey = createOnlinePurchaseOrderRequest.AppKey,
|
|
AppSecret = createOnlinePurchaseOrderRequest.AppSecret,
|
|
AppToken = createOnlinePurchaseOrderRequest.AppToken,
|
|
OrderId = createOrderResponse.PurchaseOrderId,
|
|
Platform = createOnlinePurchaseOrderRequest.Platform
|
|
});
|
|
|
|
nLogManager.Default().Info($"NewFastCreateOrder\r\ncreateOnlinePurchaseOrderRequest\r\n{JsonConvert.SerializeObject(createOnlinePurchaseOrderRequest)}\r\npurchaseOrderSimpleInfo\r\n{JsonConvert.SerializeObject(purchaseOrderSimpleInfo)}");
|
|
|
|
List<PurchaseOrder> insertPurchaseOrders = new List<PurchaseOrder>();
|
|
List<PurchaseOrderDetail> insertPurchaseOrderDetails = new List<PurchaseOrderDetail>();
|
|
List<OrderCostDetail> insertOrderCostDetails = new List<OrderCostDetail>();
|
|
|
|
IInsert<OrderCost> insertOrderCost = null;
|
|
IUpdate<OrderCost> updateOrderCost = null;
|
|
IInsert<OrderDropShipping> insertOrderDropShipping = null;
|
|
|
|
var avgPreferential = dbOrder.PreferentialAmount / orderSkus.Count();
|
|
|
|
foreach (var orderSku in orderSkus)
|
|
{
|
|
#region 计算当前sku的采购成本和采购运费
|
|
var currentOrderSkuProductAmount = 0M; //采购成本
|
|
var currentOrderSkuCargoParamList = createOnlinePurchaseOrderRequest.CargoParamList.Where(p => p.BelongSkuId == orderSku.SkuId); //找当前skuId的采购skuId
|
|
currentOrderSkuProductAmount = purchaseOrderSimpleInfo.ItemList.Where(p => currentOrderSkuCargoParamList.Any(p1 => p1.SkuId == p.SkuId))
|
|
?.Sum(p => p.ProductAmount) ?? 0M;
|
|
|
|
var currentOrderSkuFreightAmount = purchaseOrderSimpleInfo.FreightAmount / orderSkus.Count(); //采购运费(按sku数均分)
|
|
#endregion
|
|
|
|
#region 采购单
|
|
var purchaseOrder = new PurchaseOrder()
|
|
{
|
|
Id = idGenerator.NewLong(),
|
|
CreateTime = DateTime.Now,
|
|
ProductId = orderSku.ProductId,
|
|
SkuId = orderSku.SkuId,
|
|
PurchaseMethod = Enums.PurchaseMethod.线上采购,
|
|
PurchaseOrderId = createOrderResponse.PurchaseOrderId,
|
|
PurchasePlatform = createOnlinePurchaseOrderRequest.Platform,
|
|
PurchaseQuantity = orderSku.ItemTotal.Value,
|
|
RemainingQuantity = 0,
|
|
ShopId = createOnlinePurchaseOrderRequest.ShopId,
|
|
SingleConsumableAmount = 0,
|
|
SingleDeliveryFreight = 0,
|
|
SingleFirstFreight = 0,
|
|
SingleStorageAmount = 0,
|
|
//SingleOperationAmount = 0,
|
|
SingleOutStorageAmount = 0,
|
|
SingleInStorageAmount = 0,
|
|
SingleSkuAmount = currentOrderSkuProductAmount / orderSku.ItemTotal.Value,
|
|
SingleFreight = currentOrderSkuFreightAmount / orderSku.ItemTotal.Value,
|
|
StorageType = Enums.StorageType.代发,
|
|
PurchaserId = createOnlinePurchaseOrderRequest.PurchaserId
|
|
};
|
|
insertPurchaseOrders.Add(purchaseOrder);
|
|
#endregion
|
|
|
|
#region 采购单明细
|
|
insertPurchaseOrderDetails.AddRange(currentOrderSkuCargoParamList.Select(p => new PurchaseOrderDetail()
|
|
{
|
|
Id = idGenerator.NewLong(),
|
|
OrderId = createOnlinePurchaseOrderRequest.OrderId,
|
|
PurchaseOrderPKId = purchaseOrder.Id,
|
|
PurchaseSkuId = p.SkuId,
|
|
SkuId = orderSku.SkuId
|
|
}));
|
|
#endregion
|
|
|
|
#region 成本明细
|
|
var orderCostDetail = new OrderCostDetail()
|
|
{
|
|
Id = idGenerator.NewLong(),
|
|
ConsumableAmount = 0,
|
|
CreateTime = DateTime.Now,
|
|
DeductionQuantity = orderSku.ItemTotal.Value,
|
|
DeliveryExpressFreight = 0,
|
|
FirstFreight = 0,
|
|
//OperationAmount = 0,
|
|
InStorageAmount = 0,
|
|
OutStorageAmount = 0,
|
|
OrderId = createOnlinePurchaseOrderRequest.OrderId,
|
|
ProductId = orderSku.ProductId,
|
|
PurchaseFreight = currentOrderSkuFreightAmount,
|
|
PurchaseOrderPKId = purchaseOrder.Id,
|
|
SkuAmount = currentOrderSkuProductAmount,
|
|
SkuId = orderSku.SkuId,
|
|
StorageAmount = 0,
|
|
//UnitCost = purchaseOrder.UnitCost,
|
|
//TotalCost = currentOrderSkuProductAmount + currentOrderSkuFreightAmount//purchaseOrder.UnitCost * orderSku.ItemTotal.Value
|
|
};
|
|
//orderCostDetail.SkuGrossProfit = orderSku.Price.Value * orderCostDetail.DeductionQuantity - avgPreferential - (orderCostDetail.TotalCost + orderCostDetail.DeliveryExpressFreight) - orderSku.Price.Value * orderCostDetail.DeductionQuantity * createOnlinePurchaseOrderRequest.PlatformCommissionRatio;
|
|
|
|
//orderCostDetail.SkuGrossProfit = ((orderSku.ShouldPay ?? 0M) + orderSku.Coupon ?? 0M) * orderCostDetail.DeductionQuantity - orderCostDetail.TotalCost - orderCostDetail.DeliveryExpressFreight;
|
|
|
|
orderCostDetail.CalculationSkuGrossProfit(orderSku.ShouldPay ?? 0M,
|
|
orderSku.PingTaiChengDanYouHuiQuan ?? 0M,
|
|
orderSku.SuperRedEnvelope ?? 0M,
|
|
orderSku.XianPinLeiDongQuan ?? 0M,
|
|
orderSku.VenderFee ?? 0M,
|
|
orderSku.JingDou ?? 0M,
|
|
orderSku.DongQuan ?? 0M,
|
|
orderSku.Balance ?? 0M,
|
|
createOnlinePurchaseOrderRequest.PlatformCommissionRatio);
|
|
insertOrderCostDetails.Add(orderCostDetail);
|
|
#endregion
|
|
}
|
|
|
|
#region 订单成本
|
|
var orderCost = new OrderCost()
|
|
{
|
|
OrderId = createOnlinePurchaseOrderRequest.OrderId,
|
|
CreateTime = DateTime.Now,
|
|
DeliveryExpressFreight = 0,
|
|
IsManualEdited = false,
|
|
PlatformCommissionRatio = createOnlinePurchaseOrderRequest.PlatformCommissionRatio,
|
|
PreferentialAmount = dbOrder.PreferentialAmount,
|
|
SDCommissionAmount = 0,
|
|
SDOrderAmount = 0,
|
|
PurchaseAmount = purchaseOrderSimpleInfo.TotalAmount
|
|
};
|
|
//orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * orderCost.PlatformCommissionRatio;
|
|
//orderCost.Profit = dbOrder.OrderSellerPrice +
|
|
// dbOrder.FreightPrice -
|
|
// orderCost.PurchaseAmount -
|
|
// orderCost.DeliveryExpressFreight -
|
|
// orderCost.PlatformCommissionAmount;
|
|
orderCost.CalculationOrderProfitAndCost(dbOrder, null);
|
|
if (!isRepurchase)
|
|
{
|
|
insertOrderCost = fsql.Insert(orderCost);
|
|
}
|
|
else
|
|
{
|
|
updateOrderCost = fsql.Update<OrderCost>().SetSource(orderCost).IgnoreColumns(a => new { a.CreateTime });
|
|
}
|
|
#endregion
|
|
|
|
#region 代发信息
|
|
var orderDropShipping = new OrderDropShipping()
|
|
{
|
|
Id = idGenerator.NewLong(),
|
|
OrderId = createOnlinePurchaseOrderRequest.OrderId,
|
|
PurchaseAccountId = createOnlinePurchaseOrderRequest.PurchaseAccountId,
|
|
BuyerAccount = createOnlinePurchaseOrderRequest.BuyerAccount,
|
|
SellerAccount = createOnlinePurchaseOrderRequest.SellerAccount,
|
|
CreateTime = DateTime.Now,
|
|
DeliveryFreight = 0,
|
|
PurchaseAmount = purchaseOrderSimpleInfo.TotalAmount,
|
|
SkuAmount = purchaseOrderSimpleInfo.ProductAmount,
|
|
PurchaseFreight = purchaseOrderSimpleInfo.FreightAmount,
|
|
PurchaseOrderId = createOrderResponse.PurchaseOrderId,
|
|
PurchasePlatform = createOnlinePurchaseOrderRequest.Platform,
|
|
ShopId = dbOrder.ShopId
|
|
};
|
|
insertOrderDropShipping = fsql.Insert(orderDropShipping);
|
|
#endregion
|
|
|
|
fsql.Transaction(() =>
|
|
{
|
|
deletePurchaseOrder.ExecuteAffrows();
|
|
deleteOrderCostDetail.ExecuteAffrows();
|
|
fsql.Update<OrderDropShipping>().Set(ods => ods.IsHistory, true).Where(ods => ods.OrderId == createOnlinePurchaseOrderRequest.OrderId).ExecuteAffrows();
|
|
|
|
fsql.Insert(insertPurchaseOrders).ExecuteAffrows();
|
|
fsql.Insert(insertPurchaseOrderDetails).ExecuteAffrows();
|
|
fsql.Insert(insertOrderCostDetails).ExecuteAffrows();
|
|
updateOrderCost?.ExecuteAffrows();
|
|
insertOrderCost?.ExecuteAffrows();
|
|
insertOrderDropShipping?.ExecuteAffrows();
|
|
fsql.Update<Order>(createOnlinePurchaseOrderRequest.OrderId).SetIf(dbOrder.OrderState == Enums.OrderState.等待采购, o => o.OrderState, Model.Enums.OrderState.待出库)
|
|
.Set(o => o.StorageType, Model.Enums.StorageType.代发)
|
|
.ExecuteAffrows();
|
|
fsql.Update<OrderSku>().Set(osku => osku.OrderDropShippingId, orderDropShipping.Id)
|
|
.Where(osku => orderSkuIds.Contains(osku.Id))
|
|
.ExecuteAffrows();
|
|
if (updatePurchaseTimeSchemeIdList.Count() > 0)
|
|
fsql.Update<PurchaseScheme>(updatePurchaseTimeSchemeIdList).Set(p => p.LastPurchaseTime, DateTime.Now).ExecuteAffrows();
|
|
});
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询审核采购单
|
|
/// <para>暂时从订单查询采购单,之后改为直接查询采购单</para>
|
|
/// </summary>
|
|
/// <param name="auditOrderRequest"></param>
|
|
/// <returns></returns>
|
|
public IList<AuditPurchaseOrderResponse> GetAuditPurchaseOrderList(AuditOrderRequest auditOrderRequest)
|
|
{
|
|
auditOrderRequest.EndDate = auditOrderRequest.EndDate.Date.AddDays(1).AddSeconds(-1);
|
|
return fsql.Select<Order, OrderDropShipping>().InnerJoin((o, ods) => o.Id == ods.OrderId)
|
|
.Where((o, ods) => o.StartTime >= auditOrderRequest.StartDate &&
|
|
o.StartTime <= auditOrderRequest.EndDate &&
|
|
auditOrderRequest.ShopIdList.Contains(o.ShopId))
|
|
.ToList((o, ods) => new AuditPurchaseOrderResponse()
|
|
{
|
|
OrderDropShippingId = ods.Id,
|
|
OrderId = o.Id,
|
|
PurchaseAmount = ods.PurchaseAmount,
|
|
PurchaseOrderId = ods.PurchaseOrderId,
|
|
MerchantOrderId = ods.MerchantOrderId,
|
|
ShopId = o.ShopId,
|
|
PurchaseTime = ods.CreateTime,
|
|
PurchasePlatform = ods.PurchasePlatform,
|
|
OrderStartTime = o.StartTime
|
|
});
|
|
}
|
|
|
|
#region CallBack
|
|
|
|
#region 1688 CallBack
|
|
public void CallbackFrom1688(string jsonStr)
|
|
{
|
|
nLogManager.Default().Info(jsonStr);
|
|
var jObject = JObject.Parse(jsonStr);
|
|
var type = jObject.Value<string>("type").ToUpper();
|
|
switch (type)
|
|
{
|
|
case "ORDER_BUYER_VIEW_PART_PART_SENDGOODS": //部分发货
|
|
case "ORDER_BUYER_VIEW_ANNOUNCE_SENDGOODS": //发货
|
|
DeliveryCallbackFrom1688(jObject);
|
|
break;
|
|
case "ORDER_BUYER_VIEW_ORDER_PRICE_MODIFY":
|
|
OrderPriceModificationCallbackFrom1688(jObject); //订单改价
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 1688发货回调
|
|
/// </summary>
|
|
/// <param name="jObject"></param>
|
|
private void DeliveryCallbackFrom1688(JObject jObject)
|
|
{
|
|
var purchaseOrderId = jObject["data"].Value<string>("orderId");
|
|
|
|
//处理一键代发的回调
|
|
//Task.Factory.StartNew(() => DeliveryCallback(purchaseOrderId, null, Enums.Platform.阿里巴巴), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
|
|
|
|
//处理采购单的回调
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 1688订单改价回调
|
|
/// </summary>
|
|
/// <param name="jObject"></param>
|
|
private void OrderPriceModificationCallbackFrom1688(JObject jObject)
|
|
{
|
|
var purchaseOrderId = jObject["data"].Value<string>("orderId");
|
|
Task.Factory.StartNew(() => OrderPriceModificationCallback(purchaseOrderId, Enums.Platform.阿里巴巴), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
|
|
}
|
|
#endregion
|
|
|
|
#region QuanTan Callback
|
|
public void QuanTanSendGoodsCallback(QuanTanSendGoodsNotifyRequest request)
|
|
{
|
|
Task.Factory.StartNew(() => DeliveryCallback(request.OrderId, new WayBillNoResponse()
|
|
{
|
|
LogisticsCompanyId = request.ExpressId,
|
|
LogisticsCompanyName = request.ExpressName,
|
|
WayBillNo = request.WayBillNo,
|
|
}, Enums.Platform.拳探), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
|
|
|
|
Task.Factory.StartNew(() => DeliveryCallbackForPurchaseOrder(request.OrderId, new WayBillNoResponse()
|
|
{
|
|
LogisticsCompanyId = request.ExpressId,
|
|
LogisticsCompanyName = request.ExpressName,
|
|
WayBillNo = request.WayBillNo,
|
|
}, Enums.Platform.拳探), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
|
|
}
|
|
|
|
public void QuanTanEditPriceCallback(QuanTanEditPriceNotifyRequest request)
|
|
{
|
|
|
|
//Task.Factory.StartNew(() => OrderPriceModificationCallback(request.OrderId, Enums.Platform.拳探), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
|
|
|
|
Task.Factory.StartNew(() => OrderPriceNotifitionForPurchaseOrder(request.OrderId, Enums.Platform.拳探), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
|
|
}
|
|
#endregion
|
|
|
|
#region bbwyb Callback
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 采购平台发货回调(一件代发)
|
|
/// </summary>
|
|
/// <param name="purchaseOrderId"></param>
|
|
/// <param name="wayBillNoResponse"></param>
|
|
/// <param name="callbackPlatform"></param>
|
|
private void DeliveryCallback(string purchaseOrderId, WayBillNoResponse wayBillNoResponse, Enums.Platform callbackPlatform)
|
|
{
|
|
string currentProgress = string.Empty;
|
|
string wayBillNoResponseInfo = string.Empty;
|
|
string logisticsCompanyListInfo = string.Empty;
|
|
string logisticsCompanyId = string.Empty;
|
|
string orderId = string.Empty;
|
|
long? shopId = null;
|
|
OutStockRequest outStockRequest = null;
|
|
try
|
|
{
|
|
#region 查询代发信息
|
|
currentProgress = "查询代发信息";
|
|
var orderDropshipping = fsql.Select<OrderDropShipping>().Where(o => o.PurchaseOrderId == purchaseOrderId).ToOne();
|
|
if (orderDropshipping == null)
|
|
throw new Exception("未查询到代发信息");
|
|
orderId = orderDropshipping.OrderId;
|
|
#endregion
|
|
|
|
#region 查询订单
|
|
if (orderDropshipping.ShopId == null)
|
|
{
|
|
var order = fsql.Select<Order>(orderId).ToOne();
|
|
if (order == null)
|
|
throw new Exception("未查询到订单");
|
|
shopId = order.ShopId;
|
|
}
|
|
else
|
|
{
|
|
shopId = orderDropshipping.ShopId.Value;
|
|
}
|
|
#endregion
|
|
|
|
#region 查询采购账号
|
|
currentProgress = "查询采购账号";
|
|
var purchaseAccount = fsql.Select<PurchaseAccount>().WhereIf(orderDropshipping.PurchaseAccountId != 0, pa => pa.Id == orderDropshipping.PurchaseAccountId)
|
|
.WhereIf(orderDropshipping.PurchaseAccountId == 0, pa => pa.AccountName == orderDropshipping.BuyerAccount)
|
|
.Where(pa => pa.PurchasePlatformId == callbackPlatform && pa.ShopId == shopId.Value).ToOne();
|
|
if (purchaseAccount == null)
|
|
throw new Exception($"未查询到采购账号{orderDropshipping.BuyerAccount}");
|
|
#endregion
|
|
|
|
#region 获取采购单的物流信息
|
|
currentProgress = "获取采购单的物流信息";
|
|
var queryOrderWayBillNoRequest = new QueryOrderWayBillNoRequest()
|
|
{
|
|
AppKey = purchaseAccount.AppKey,
|
|
AppSecret = purchaseAccount.AppSecret,
|
|
AppToken = purchaseAccount.AppToken,
|
|
OrderId = purchaseOrderId,
|
|
Platform = callbackPlatform
|
|
};
|
|
|
|
if (wayBillNoResponse == null)
|
|
wayBillNoResponse = platformSDKBusinessList.FirstOrDefault(p => p.Platform == callbackPlatform).GetWayBillNoByOrderId(queryOrderWayBillNoRequest);
|
|
|
|
wayBillNoResponseInfo = JsonConvert.SerializeObject(new { Request = queryOrderWayBillNoRequest, Result = wayBillNoResponse });
|
|
#endregion
|
|
|
|
#region 查询采购账号的归属店铺
|
|
currentProgress = "查询采购账号归属店铺";
|
|
var shop = mdsBusiness.GetShopInfoByShopId(purchaseAccount.ShopId.Value);
|
|
#endregion
|
|
|
|
#region 获取目标平台的物流公司列表
|
|
currentProgress = "获取店铺平台物流公司列表";
|
|
var logisticsCompanyList = venderBusiness.GetLogisticsList(new PlatformRequest()
|
|
{
|
|
AppKey = shop.AppKey,
|
|
AppSecret = shop.AppSecret,
|
|
AppToken = shop.AppToken,
|
|
Platform = shop.PlatformId
|
|
});
|
|
if (logisticsCompanyList != null)
|
|
logisticsCompanyListInfo = JsonConvert.SerializeObject(logisticsCompanyList);
|
|
#endregion
|
|
|
|
#region 物流公司翻译
|
|
currentProgress = "物流公司翻译";
|
|
//logisticsCompanyId = ConvertLogisticsCompanyId(wayBillNoResponse.LogisticsCompanyName, logisticsCompanyList, shop.Platform);
|
|
logisticsCompanyId = logisticsCompanyConverter.Converter(wayBillNoResponse.LogisticsCompanyName, callbackPlatform, shop.PlatformId, logisticsCompanyList);
|
|
#endregion
|
|
|
|
#region 店铺平台订单出库
|
|
currentProgress = "店铺平台订单出库";
|
|
outStockRequest = new OutStockRequest()
|
|
{
|
|
AppKey = shop.AppKey,
|
|
AppSecret = shop.AppSecret,
|
|
AppToken = shop.AppToken,
|
|
OrderId = orderDropshipping.OrderId,
|
|
Platform = shop.PlatformId,
|
|
WayBillNo = wayBillNoResponse.WayBillNo,
|
|
LogisticsId = logisticsCompanyId, //物流公司Id
|
|
SaveResponseLog = true
|
|
};
|
|
orderBusiness.OutStock(outStockRequest);
|
|
#endregion
|
|
|
|
nLogManager.Default().Info($"DeliveryCallback 回调平台{callbackPlatform},订单号{orderId},采购单号{purchaseOrderId},执行进度[{currentProgress}],采购单物流信息:{wayBillNoResponseInfo},店铺平台物流公司列表:{logisticsCompanyListInfo},翻译后的物流公司Id:{logisticsCompanyId},出库请求:{(outStockRequest != null ? JsonConvert.SerializeObject(outStockRequest) : null)}");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
nLogManager.Default().Error(ex, $"DeliveryCallback 回调平台{callbackPlatform},订单号{orderId},采购单号{purchaseOrderId},执行进度[{currentProgress}],采购单物流信息:{wayBillNoResponseInfo},店铺平台物流公司列表:{logisticsCompanyListInfo},翻译后的物流公司Id:{logisticsCompanyId},出库请求:{(outStockRequest != null ? JsonConvert.SerializeObject(outStockRequest) : null)}");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 采购平台发货回调(采购单)
|
|
/// </summary>
|
|
/// <param name="purchaseOrderId"></param>
|
|
/// <param name="wayBillNoResponse"></param>
|
|
/// <param name="callbackPlatform"></param>
|
|
private void DeliveryCallbackForPurchaseOrder(string purchaseOrderId, WayBillNoResponse wayBillNoResponse, Enums.Platform callbackPlatform)
|
|
{
|
|
var msg = $"DeliveryCallbackForPurchaseOrder purchaseOrderId:{purchaseOrderId},wayBillNoResponse:{JsonConvert.SerializeObject(wayBillNoResponse)},callbackPlatform:{callbackPlatform}";
|
|
try
|
|
{
|
|
nLogManager.Default().Info(msg);
|
|
|
|
var purchaseOrderV2 = fsql.Select<PurchaseOrderV2>(purchaseOrderId).ToOne();
|
|
if (purchaseOrderV2 == null)
|
|
throw new Exception("未查询到采购单信息");
|
|
|
|
fsql.Update<PurchaseOrderV2>(purchaseOrderId).SetIf(purchaseOrderV2.OrderState == Enums.PurchaseOrderState.待发货 ||
|
|
purchaseOrderV2.OrderState == Enums.PurchaseOrderState.待付款,
|
|
p => p.OrderState, Enums.PurchaseOrderState.待收货)
|
|
.Set(p => p.ExpressName, wayBillNoResponse.LogisticsCompanyName)
|
|
.Set(p => p.WaybillNo, wayBillNoResponse.WayBillNo)
|
|
.ExecuteAffrows();
|
|
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
nLogManager.Default().Error(ex, msg);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 采购平台改价回调(一件代发)
|
|
/// </summary>
|
|
/// <param name="purchaseOrderId"></param>
|
|
/// <param name="callbackPlatform"></param>
|
|
private void OrderPriceModificationCallback(string purchaseOrderId, Enums.Platform callbackPlatform)
|
|
{
|
|
string currentProgress = string.Empty;
|
|
|
|
try
|
|
{
|
|
#region 查询代发信息
|
|
currentProgress = "查询代发信息";
|
|
var orderDropshipping = fsql.Select<OrderDropShipping>().Where(o => o.PurchaseOrderId == purchaseOrderId).ToOne();
|
|
if (orderDropshipping == null)
|
|
throw new Exception("未查询到代发信息");
|
|
#endregion
|
|
|
|
#region 查询订单Sku
|
|
currentProgress = "查询订单Sku";
|
|
var orderSkuList = fsql.Select<OrderSku>().Where(osku => osku.Price != 0 && osku.OrderId == orderDropshipping.OrderId).ToList();
|
|
if (orderSkuList == null || orderSkuList.Count() == 0)
|
|
throw new BusinessException("订单Sku不存在");
|
|
#endregion
|
|
|
|
#region 查询采购单
|
|
currentProgress = "查询采购单";
|
|
var purchaseOrderList = fsql.Select<PurchaseOrder>().Where(po => po.PurchaseOrderId == purchaseOrderId).ToList();
|
|
if (purchaseOrderList == null || purchaseOrderList.Count() == 0)
|
|
throw new BusinessException("采购单不存在");
|
|
if (orderSkuList.Count() > 1 && purchaseOrderList.Any(p => p.PurchaseMethod == Enums.PurchaseMethod.线下采购))
|
|
throw new Exception("多sku订单关联采购单不支持改价");
|
|
#endregion
|
|
|
|
#region 查询成本
|
|
currentProgress = "查询成本";
|
|
var orderCost = fsql.Select<OrderCost>(orderDropshipping.OrderId).ToOne();
|
|
if (orderCost == null)
|
|
throw new BusinessException("订单成本不存在");
|
|
#endregion
|
|
|
|
#region 查询成本明细
|
|
currentProgress = "查询成本明细";
|
|
var orderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => ocd.OrderId == orderDropshipping.OrderId).ToList();
|
|
if (orderCostDetailList == null || orderCostDetailList.Count() == 0)
|
|
throw new BusinessException("订单成本明细不存在");
|
|
#endregion
|
|
|
|
#region 查询采购账号
|
|
currentProgress = "查询采购账号";
|
|
var purchaseAccount = fsql.Select<PurchaseAccount>().WhereIf(orderDropshipping.PurchaseAccountId != 0, pa => pa.Id == orderDropshipping.PurchaseAccountId)
|
|
.WhereIf(orderDropshipping.PurchaseAccountId == 0, pa => pa.AccountName == orderDropshipping.BuyerAccount)
|
|
.Where(pa => pa.PurchasePlatformId == callbackPlatform).ToOne();
|
|
if (purchaseAccount == null)
|
|
throw new Exception($"未查询到采购账号{orderDropshipping.BuyerAccount}");
|
|
#endregion
|
|
|
|
#region 查询改价后的订单金额
|
|
currentProgress = "查询改价后的订单金额";
|
|
var purchaseOrderSimpleInfo = platformSDKBusinessList.FirstOrDefault(p => p.Platform == callbackPlatform).GetOrderSimpleInfo(new GetOrderInfoRequest()
|
|
{
|
|
AppKey = purchaseAccount.AppKey,
|
|
AppSecret = purchaseAccount.AppSecret,
|
|
AppToken = purchaseAccount.AppToken,
|
|
OrderId = purchaseOrderId,
|
|
Platform = callbackPlatform
|
|
});
|
|
#endregion
|
|
|
|
#region 查询采购单明细
|
|
currentProgress = "查询采购单明细";
|
|
var purchaseOrderDetails = fsql.Select<PurchaseOrderDetail>().Where(p => p.OrderId == orderDropshipping.OrderId);
|
|
#endregion
|
|
|
|
#region 查询订单
|
|
currentProgress = "查询订单";
|
|
var dbOrder = fsql.Select<Order>(orderDropshipping.OrderId).ToOne();
|
|
if (dbOrder == null)
|
|
throw new BusinessException("订单不存在");
|
|
#endregion
|
|
|
|
IList<IUpdate<PurchaseOrder>> updatePurchaseOrders = new List<IUpdate<PurchaseOrder>>();
|
|
IList<IUpdate<OrderCostDetail>> updateOrderCostDetails = new List<IUpdate<OrderCostDetail>>();
|
|
|
|
foreach (var orderSku in orderSkuList)
|
|
{
|
|
var currentOrderSkuProductAmount = 0M; //采购成本
|
|
if (orderSkuList.Count() != 1)
|
|
{
|
|
var currentOrderSkuPurchaseOrderDetails = purchaseOrderDetails.Where(p => p.SkuId == orderSku.SkuId); //找当前skuId的采购skuId
|
|
currentOrderSkuProductAmount = purchaseOrderSimpleInfo.ItemList.Where(p => currentOrderSkuPurchaseOrderDetails.Any(p1 => p1.PurchaseSkuId == p.SkuId))
|
|
?.Sum(p => p.ProductAmount) ?? 0M;
|
|
}
|
|
else
|
|
{
|
|
currentOrderSkuProductAmount = purchaseOrderSimpleInfo.ProductAmount;
|
|
}
|
|
var currentOrderSkuFreightAmount = purchaseOrderSimpleInfo.FreightAmount / orderSkuList.Count(); //采购运费(按sku数均分)
|
|
|
|
var purchaseOrder = purchaseOrderList.FirstOrDefault(po => po.SkuId == orderSku.SkuId);
|
|
var orderCostDetail = orderCostDetailList.FirstOrDefault(oc => oc.PurchaseOrderPKId == purchaseOrder.Id);
|
|
|
|
purchaseOrder.SingleSkuAmount = currentOrderSkuProductAmount / orderSku.ItemTotal.Value;
|
|
purchaseOrder.SingleFreight = currentOrderSkuFreightAmount / orderSku.ItemTotal.Value;
|
|
|
|
orderCostDetail.SkuAmount = currentOrderSkuProductAmount;
|
|
orderCostDetail.PurchaseFreight = currentOrderSkuFreightAmount;
|
|
orderCostDetail.CalculationSkuGrossProfit(orderSku.ShouldPay ?? 0M,
|
|
orderSku.PingTaiChengDanYouHuiQuan ?? 0M,
|
|
orderSku.SuperRedEnvelope ?? 0M,
|
|
orderSku.XianPinLeiDongQuan ?? 0M,
|
|
orderSku.VenderFee ?? 0M,
|
|
orderSku.JingDou ?? 0M,
|
|
orderSku.DongQuan ?? 0M,
|
|
orderSku.Balance ?? 0M,
|
|
orderCost.PlatformCommissionRatio);
|
|
//orderCostDetail.UnitCost = purchaseOrder.UnitCost;
|
|
//orderCostDetail.TotalCost = currentOrderSkuProductAmount + currentOrderSkuFreightAmount;
|
|
|
|
updatePurchaseOrders.Add(fsql.Update<PurchaseOrder>().SetSource(purchaseOrder));
|
|
updateOrderCostDetails.Add(fsql.Update<OrderCostDetail>().SetSource(orderCostDetail));
|
|
|
|
|
|
}
|
|
orderCost.PurchaseAmount = purchaseOrderSimpleInfo.TotalAmount;
|
|
//orderCost.Profit = dbOrder.OrderSellerPrice +
|
|
// dbOrder.FreightPrice -
|
|
// orderCost.PurchaseAmount -
|
|
// orderCost.DeliveryExpressFreight -
|
|
// orderCost.PlatformCommissionAmount;
|
|
orderCost.CalculationOrderProfitAndCost(dbOrder, null);
|
|
|
|
orderDropshipping.PurchaseAmount = purchaseOrderSimpleInfo.TotalAmount;
|
|
orderDropshipping.SkuAmount = purchaseOrderSimpleInfo.ProductAmount;
|
|
orderDropshipping.PurchaseFreight = purchaseOrderSimpleInfo.FreightAmount;
|
|
fsql.Transaction(() =>
|
|
{
|
|
foreach (var update in updatePurchaseOrders)
|
|
update.ExecuteAffrows();
|
|
foreach (var update in updateOrderCostDetails)
|
|
update.ExecuteAffrows();
|
|
fsql.Update<OrderCost>().SetSource(orderCost).ExecuteAffrows();
|
|
fsql.Update<OrderDropShipping>().SetSource(orderDropshipping).ExecuteAffrows();
|
|
});
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
nLogManager.Default().Error(ex, $"OrderPriceModificationCallback 回调平台{callbackPlatform},采购单号{purchaseOrderId},执行进度[{currentProgress}]");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 采购平台改价回调(采购单)
|
|
/// </summary>
|
|
/// <param name="purchaseOrderId"></param>
|
|
/// <param name="callbackPlatform"></param>
|
|
private void OrderPriceNotifitionForPurchaseOrder(string purchaseOrderId, Enums.Platform callbackPlatform)
|
|
{
|
|
string currentProgress = string.Empty;
|
|
|
|
try
|
|
{
|
|
#region 查询数据库采购单
|
|
currentProgress = "查询数据库采购单";
|
|
var purchaseOrder = fsql.Select<PurchaseOrderV2>(purchaseOrderId).ToOne();
|
|
if (purchaseOrder == null)
|
|
throw new Exception($"未查询到采购单");
|
|
#endregion
|
|
|
|
#region 查询采购账号
|
|
currentProgress = "查询采购账号";
|
|
var purchaseAccount = fsql.Select<PurchaseAccount>().Where(pa => pa.Id == purchaseOrder.PurchaseAccountId).ToOne();
|
|
if (purchaseAccount == null)
|
|
throw new Exception($"未查询到采购账号");
|
|
#endregion
|
|
|
|
#region 查询接口采购单
|
|
currentProgress = "查询接口采购单";
|
|
var purchaseOrderSimpleInfo = platformSDKBusinessList.FirstOrDefault(p => p.Platform == callbackPlatform).GetOrderSimpleInfo(new GetOrderInfoRequest()
|
|
{
|
|
AppKey = purchaseAccount.AppKey,
|
|
AppSecret = purchaseAccount.AppSecret,
|
|
AppToken = purchaseAccount.AppToken,
|
|
OrderId = purchaseOrderId,
|
|
Platform = callbackPlatform
|
|
});
|
|
#endregion
|
|
|
|
currentProgress = "更新数据库";
|
|
fsql.Transaction(() =>
|
|
{
|
|
fsql.Update<PurchaseOrderV2>(purchaseOrderId).Set(po => po.ProductAmount, purchaseOrderSimpleInfo.ProductAmount)
|
|
.Set(po => po.PurchaseFreight, purchaseOrderSimpleInfo.FreightAmount)
|
|
.Set(po => po.PurchaseAmount, purchaseOrderSimpleInfo.TotalAmount)
|
|
.ExecuteAffrows();
|
|
foreach (var purchaseOrderSku in purchaseOrderSimpleInfo.ItemList)
|
|
{
|
|
fsql.Update<PurchaseOrderSku>().Where(pos => pos.PurchaseOrderId == purchaseOrderId && pos.PurchaseSkuIds == purchaseOrderSku.SkuId)
|
|
.Set(pos => pos.ProductAmount, purchaseOrderSku.ProductAmount)
|
|
.Set(pos => pos.PurchaseFreight, purchaseOrderSku.FreightAmount)
|
|
.Set(pos => pos.PurchaseAmount, purchaseOrderSku.ProductAmount + purchaseOrderSku.FreightAmount)
|
|
.Set(pos => pos.Price, purchaseOrderSku.Price)
|
|
.ExecuteAffrows();
|
|
}
|
|
});
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
nLogManager.Default().Error(ex, $"OrderPriceNotifitionForPurchaseOrder 回调平台{callbackPlatform},采购单号{purchaseOrderId},执行进度[{currentProgress}]");
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
}
|
|
|