|
|
@ -2,12 +2,14 @@ |
|
|
|
using BBWYB.Common.Log; |
|
|
|
using BBWYB.Common.Models; |
|
|
|
using BBWYB.Server.Business.Extensions; |
|
|
|
using BBWYB.Server.Business.JD; |
|
|
|
using BBWYB.Server.Model; |
|
|
|
using BBWYB.Server.Model.Db; |
|
|
|
using BBWYB.Server.Model.Db.Mds; |
|
|
|
using BBWYB.Server.Model.Db.MDS; |
|
|
|
using BBWYB.Server.Model.Dto; |
|
|
|
using FreeSql; |
|
|
|
using JD.Dto; |
|
|
|
using Microsoft.Extensions.DependencyInjection; |
|
|
|
using Newtonsoft.Json; |
|
|
|
using Newtonsoft.Json.Linq; |
|
|
@ -29,6 +31,7 @@ namespace BBWYB.Server.Business |
|
|
|
private Lazy<DingDingBusiness> dingDingBusinessLazy; |
|
|
|
private Lazy<QiKuManager> qiKuManagerLazy; |
|
|
|
private Lazy<RestApiService> restApiServiceLazy; |
|
|
|
private Lazy<JDBusiness> jdBusinessLazy; |
|
|
|
|
|
|
|
private PP_PlatformClientFactory ppPlatformClientFactory => pplatformClientFactoryLazy.Value; |
|
|
|
private TaskSchedulerManager taskSchedulerManager => taskSchedulerManagerLazy.Value; |
|
|
@ -39,6 +42,8 @@ namespace BBWYB.Server.Business |
|
|
|
private QiKuManager qiKuManager => qiKuManagerLazy.Value; |
|
|
|
private RestApiService restApiService => restApiServiceLazy.Value; |
|
|
|
|
|
|
|
private JDBusiness jdBusiness => jdBusinessLazy.Value; |
|
|
|
|
|
|
|
private IList<Enums.OrderState> cantPurchaseOrderStateList; |
|
|
|
|
|
|
|
public PurchaseOrderBusiness(IFreeSql fsql, |
|
|
@ -54,6 +59,7 @@ namespace BBWYB.Server.Business |
|
|
|
dingDingBusinessLazy = new Lazy<DingDingBusiness>(() => serviceProvider.GetService<DingDingBusiness>()); |
|
|
|
qiKuManagerLazy = new Lazy<QiKuManager>(() => serviceProvider.GetService<QiKuManager>()); |
|
|
|
restApiServiceLazy = new Lazy<RestApiService>(() => serviceProvider.GetService<RestApiService>()); |
|
|
|
jdBusinessLazy = new Lazy<JDBusiness>(() => serviceProvider.GetService<JDBusiness>()); |
|
|
|
cantPurchaseOrderStateList = new List<Enums.OrderState>() |
|
|
|
{ |
|
|
|
Enums.OrderState.已取消, |
|
|
@ -489,7 +495,7 @@ namespace BBWYB.Server.Business |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 订单状态
|
|
|
|
dbOrder.CalculationOrderState(fsql, orderSkus, orderPurchaseInfoList.Union(insertOrderPurchaseInfos).ToList()); |
|
|
|
dbOrder.CalculationOrderState(fsql, out _, orderSkus, orderPurchaseInfoList.Union(insertOrderPurchaseInfos).ToList()); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 通知C端状态
|
|
|
@ -953,7 +959,7 @@ namespace BBWYB.Server.Business |
|
|
|
updateOrderCost = fsql.Update<OrderCost>().SetSource(dbOrderCost); |
|
|
|
|
|
|
|
#region 订单状态
|
|
|
|
dbOrder.CalculationOrderState(fsql, dbOrderSkuList, dbPurchaseOrderList.Union(insertOrderPurchaseInfoList).ToList()); |
|
|
|
dbOrder.CalculationOrderState(fsql, out _, dbOrderSkuList, dbPurchaseOrderList.Union(insertOrderPurchaseInfoList).ToList()); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 通知C端状态
|
|
|
@ -1156,7 +1162,7 @@ namespace BBWYB.Server.Business |
|
|
|
|
|
|
|
|
|
|
|
orderPurchaseInfoList.Remove(historyPurchaseOrder); |
|
|
|
dbOrder.CalculationOrderState(fsql, orderPurchaseInfoList: orderPurchaseInfoList); |
|
|
|
dbOrder.CalculationOrderState(fsql, out _, orderPurchaseInfoList: orderPurchaseInfoList); |
|
|
|
|
|
|
|
fsql.Transaction(() => |
|
|
|
{ |
|
|
@ -1282,7 +1288,7 @@ namespace BBWYB.Server.Business |
|
|
|
dingdingMsg.AppendLine($"快递单号:{request.NewWaybillNo}"); |
|
|
|
dingdingMsg.AppendLine("触发环节:修改物流单号"); |
|
|
|
dingdingMsg.Append($"店铺名:{shop.ShopName}"); |
|
|
|
Task.Factory.StartNew(() => SendDingDingOnKD100SubscribeFail(dingdingMsg.ToString()), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); |
|
|
|
Task.Factory.StartNew(() => SendDingDing(dingdingMsg.ToString()), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); |
|
|
|
#endregion
|
|
|
|
} |
|
|
|
insertPEO = fsql.Insert(newPeo); |
|
|
@ -1335,7 +1341,7 @@ namespace BBWYB.Server.Business |
|
|
|
|
|
|
|
#region 计算订单状态
|
|
|
|
var oldOrderState = dbOrder.OrderState; |
|
|
|
dbOrder.CalculationOrderState(fsql, null, orderPurchaseInfoList); |
|
|
|
dbOrder.CalculationOrderState(fsql, out _, null, orderPurchaseInfoList); |
|
|
|
if (oldOrderState != dbOrder.OrderState) |
|
|
|
{ |
|
|
|
updateOrder = fsql.Update<Order>(dbOrder.Id).Set(o => o.OrderState, dbOrder.OrderState); |
|
|
@ -1484,7 +1490,7 @@ namespace BBWYB.Server.Business |
|
|
|
dingdingMsg.AppendLine($"快递单号:{request.WaybillNo}"); |
|
|
|
dingdingMsg.AppendLine("触发环节:手动发货"); |
|
|
|
dingdingMsg.Append($"店铺名:{shop.ShopName}"); |
|
|
|
Task.Factory.StartNew(() => SendDingDingOnKD100SubscribeFail(dingdingMsg.ToString()), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); |
|
|
|
Task.Factory.StartNew(() => SendDingDing(dingdingMsg.ToString()), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); |
|
|
|
#endregion
|
|
|
|
} |
|
|
|
#endregion
|
|
|
@ -1535,7 +1541,7 @@ namespace BBWYB.Server.Business |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 计算订单状态
|
|
|
|
dbOrder.CalculationOrderState(fsql, null, orderPurchaseInfoList); |
|
|
|
dbOrder.CalculationOrderState(fsql, out _, null, orderPurchaseInfoList); |
|
|
|
updateOrder = fsql.Update<Order>(dbOrder.Id) |
|
|
|
.Set(o => o.OrderState, dbOrder.OrderState); |
|
|
|
#endregion
|
|
|
@ -1659,7 +1665,7 @@ namespace BBWYB.Server.Business |
|
|
|
dingdingMsg.AppendLine($"快递单号:{peoRequest.WaybillNo}"); |
|
|
|
dingdingMsg.AppendLine("触发环节:手动发货"); |
|
|
|
dingdingMsg.Append($"店铺名:{shop.ShopName}"); |
|
|
|
Task.Factory.StartNew(() => SendDingDingOnKD100SubscribeFail(dingdingMsg.ToString()), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); |
|
|
|
Task.Factory.StartNew(() => SendDingDing(dingdingMsg.ToString()), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); |
|
|
|
#endregion
|
|
|
|
} |
|
|
|
} |
|
|
@ -1729,7 +1735,7 @@ namespace BBWYB.Server.Business |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 计算订单状态
|
|
|
|
dbOrder.CalculationOrderState(fsql, null, orderPurchaseInfoList); |
|
|
|
dbOrder.CalculationOrderState(fsql, out _, null, orderPurchaseInfoList); |
|
|
|
updateOrder = fsql.Update<Order>(dbOrder.Id) |
|
|
|
.Set(o => o.OrderState, dbOrder.OrderState); |
|
|
|
#endregion
|
|
|
@ -2122,7 +2128,7 @@ namespace BBWYB.Server.Business |
|
|
|
dingdingMsg.AppendLine($"快递单号:{logisticsInfo.WayBillNo}"); |
|
|
|
dingdingMsg.AppendLine("触发环节:1688发货回调"); |
|
|
|
dingdingMsg.Append($"店铺名:{shop.ShopName}"); |
|
|
|
Task.Factory.StartNew(() => SendDingDingOnKD100SubscribeFail(dingdingMsg.ToString()), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); |
|
|
|
Task.Factory.StartNew(() => SendDingDing(dingdingMsg.ToString()), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); |
|
|
|
#endregion
|
|
|
|
} |
|
|
|
} |
|
|
@ -2181,7 +2187,7 @@ namespace BBWYB.Server.Business |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 计算订单状态
|
|
|
|
dbOrder.CalculationOrderState(fsql, null, orderPurchaseInfoList); |
|
|
|
dbOrder.CalculationOrderState(fsql, out _, null, orderPurchaseInfoList); |
|
|
|
updateOrder = fsql.Update<Order>(dbOrder.Id) |
|
|
|
.Set(o => o.OrderState, dbOrder.OrderState); |
|
|
|
#endregion
|
|
|
@ -2222,243 +2228,6 @@ namespace BBWYB.Server.Business |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
///// <summary>
|
|
|
|
///// 采购平台发货回调
|
|
|
|
///// </summary>
|
|
|
|
///// <param name="purchaseOrderId"></param>
|
|
|
|
///// <param name="wayBillNoResponse"></param>
|
|
|
|
///// <param name="callbackPlatform"></param>
|
|
|
|
//private void DeliveryCallback(string purchaseOrderId, PP_QueryOrderLogisticsResponse wayBillNoResponse, Enums.Platform callbackPlatform)
|
|
|
|
//{
|
|
|
|
// string currentProgress = string.Empty;
|
|
|
|
// string wayBillNoResponseInfo = string.Empty;
|
|
|
|
// string expressCompanyListInfo = string.Empty;
|
|
|
|
// string expressCompanyInfo = string.Empty;
|
|
|
|
// string orderId = string.Empty;
|
|
|
|
// long? shopId = null;
|
|
|
|
// try
|
|
|
|
// {
|
|
|
|
// #region 查询代发信息
|
|
|
|
// currentProgress = "查询代发信息";
|
|
|
|
// var orderPurchaseInfo = fsql.Select<OrderPurchaseInfo>().Where(o => o.PurchaseOrderId == purchaseOrderId && o.IsEnabled == true).ToOne();
|
|
|
|
// if (orderPurchaseInfo == null)
|
|
|
|
// throw new Exception("未查询到代发信息");
|
|
|
|
// orderId = orderPurchaseInfo.OrderId;
|
|
|
|
// shopId = orderPurchaseInfo.ShopId;
|
|
|
|
// #endregion
|
|
|
|
|
|
|
|
// //#region 查询采购账号的归属店铺
|
|
|
|
// //currentProgress = "查询采购账号归属店铺";
|
|
|
|
// //var shop = venderBusiness.GetShopList(shopId: shopId)?.FirstOrDefault();
|
|
|
|
// //if (shop == null)
|
|
|
|
// // throw new Exception("未查询到店铺信息");
|
|
|
|
// //#endregion
|
|
|
|
|
|
|
|
// #region 查询采购账号
|
|
|
|
// currentProgress = "查询采购账号";
|
|
|
|
// var purchaseAccount = fsqlManager.MDSfsql.Select<Purchaseaccount>().Where(pa => pa.Id == orderPurchaseInfo.PurchaseAccountId).ToOne();
|
|
|
|
// if (purchaseAccount == null)
|
|
|
|
// throw new Exception($"未查询到采购账号{orderPurchaseInfo.PurchaseAccountId}");
|
|
|
|
// #endregion
|
|
|
|
|
|
|
|
// #region 获取采购单的物流信息
|
|
|
|
// currentProgress = "获取采购单的物流信息";
|
|
|
|
// if (wayBillNoResponse == null)
|
|
|
|
// {
|
|
|
|
// var client = ppPlatformClientFactory.GetClient((AdapterEnums.PlatformType)callbackPlatform);
|
|
|
|
// var ppQueryOrderLogisticsRequest = new PP_QueryOrderLogisticsRequest()
|
|
|
|
// {
|
|
|
|
// AppKey = purchaseAccount.AppKey,
|
|
|
|
// AppSecret = purchaseAccount.AppSecret,
|
|
|
|
// AppToken = purchaseAccount.AppToken,
|
|
|
|
// OrderId = purchaseOrderId,
|
|
|
|
// Platform = (AdapterEnums.PlatformType)callbackPlatform
|
|
|
|
// };
|
|
|
|
// wayBillNoResponse = client.QueryOrderLogistics(ppQueryOrderLogisticsRequest);
|
|
|
|
// wayBillNoResponseInfo = JsonConvert.SerializeObject(new { Request = ppQueryOrderLogisticsRequest, Result = wayBillNoResponse });
|
|
|
|
// }
|
|
|
|
// #endregion
|
|
|
|
|
|
|
|
// //#region 获取目标平台的物流公司列表
|
|
|
|
// //currentProgress = "获取店铺平台物流公司列表";
|
|
|
|
// //var expressCompanyList = venderBusiness.GetExpressCompanyList(new PlatformRequest()
|
|
|
|
// //{
|
|
|
|
// // AppKey = shop.AppKey,
|
|
|
|
// // AppSecret = shop.AppSecret,
|
|
|
|
// // AppToken = shop.AppToken,
|
|
|
|
// // Platform = shop.PlatformId
|
|
|
|
// //});
|
|
|
|
// //if (expressCompanyList != null)
|
|
|
|
// // expressCompanyListInfo = JsonConvert.SerializeObject(expressCompanyList);
|
|
|
|
// //#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// //#region 物流公司翻译
|
|
|
|
// //currentProgress = "物流公司翻译";
|
|
|
|
|
|
|
|
// //OP_QueryExpressCompanyResponse convertExpressCompany = null;
|
|
|
|
|
|
|
|
// //try
|
|
|
|
// //{
|
|
|
|
// // convertExpressCompany = expressCompanyNameConverter.Converter(wayBillNoResponse.ExpressName,
|
|
|
|
// // (AdapterEnums.PlatformType)callbackPlatform,
|
|
|
|
// // (AdapterEnums.PlatformType)shop.PlatformId,
|
|
|
|
// // expressCompanyList);
|
|
|
|
// // if (convertExpressCompany != null)
|
|
|
|
// // expressCompanyInfo = JsonConvert.SerializeObject(convertExpressCompany);
|
|
|
|
// //}
|
|
|
|
// //catch
|
|
|
|
// //{
|
|
|
|
// // throw;
|
|
|
|
// //}
|
|
|
|
// //finally
|
|
|
|
// //{
|
|
|
|
// // #region 店铺平台订单出库
|
|
|
|
// // currentProgress = "店铺平台订单出库";
|
|
|
|
// // orderBusiness.OutStock(new OutStockRequest()
|
|
|
|
// // {
|
|
|
|
// // AppKey = shop.AppKey,
|
|
|
|
// // AppSecret = shop.AppSecret,
|
|
|
|
// // AppToken = shop.AppToken,
|
|
|
|
// // OrderId = orderId,
|
|
|
|
// // TargetExpressId = convertExpressCompany?.ExpressId ?? string.Empty, //物流公司Id
|
|
|
|
// // TargetExpressName = convertExpressCompany?.ExpressName ?? string.Empty, //物流公司名称
|
|
|
|
// // SourceExpressId = wayBillNoResponse.ExpressId,
|
|
|
|
// // SourceExpressName = wayBillNoResponse.ExpressName,
|
|
|
|
// // PurchaseOrderId = purchaseOrderId,
|
|
|
|
// // Platform = shop.PlatformId,
|
|
|
|
// // WayBillNo = wayBillNoResponse.WayBillNo
|
|
|
|
// // });
|
|
|
|
// // #endregion
|
|
|
|
// //}
|
|
|
|
// //#endregion
|
|
|
|
|
|
|
|
|
|
|
|
// //#region 店铺平台订单出库
|
|
|
|
// //currentProgress = "店铺平台订单出库";
|
|
|
|
// //orderBusiness.OutStock(new OutStockRequest()
|
|
|
|
// //{
|
|
|
|
// // //AppKey = shop.AppKey,
|
|
|
|
// // //AppSecret = shop.AppSecret,
|
|
|
|
// // //AppToken = shop.AppToken,
|
|
|
|
// // OrderId = orderId,
|
|
|
|
// // //TargetExpressId = convertExpressCompany?.ExpressId ?? string.Empty, //物流公司Id
|
|
|
|
// // //TargetExpressName = convertExpressCompany?.ExpressName ?? string.Empty, //物流公司名称
|
|
|
|
// // SourceExpressId = wayBillNoResponse.ExpressId,
|
|
|
|
// // SourceExpressName = wayBillNoResponse.ExpressName,
|
|
|
|
// // PurchaseOrderId = purchaseOrderId,
|
|
|
|
// // //Platform = shop.PlatformId,
|
|
|
|
// // WayBillNo = wayBillNoResponse.WayBillNo
|
|
|
|
// //});
|
|
|
|
// //#endregion
|
|
|
|
|
|
|
|
|
|
|
|
// nLogManager.Default().Info($"DeliveryCallback 回调平台{callbackPlatform},订单号{orderId},采购单号{purchaseOrderId},执行进度[{currentProgress}],采购单物流信息:{wayBillNoResponseInfo},店铺平台物流公司列表:{expressCompanyListInfo},翻译后的物流公司:{expressCompanyInfo}");
|
|
|
|
// }
|
|
|
|
// catch (Exception ex)
|
|
|
|
// {
|
|
|
|
// nLogManager.Default().Error(ex, $"DeliveryCallback 回调平台{callbackPlatform},订单号{orderId},采购单号{purchaseOrderId},执行进度[{currentProgress}],采购单物流信息:{wayBillNoResponseInfo},店铺平台物流公司列表:{expressCompanyListInfo},翻译后的物流公司:{expressCompanyInfo}");
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
|
|
|
|
///// <summary>
|
|
|
|
///// 1688物流信息变更回调
|
|
|
|
///// </summary>
|
|
|
|
///// <param name="jObject"></param>
|
|
|
|
//private void LogisticsUpdateCallbackFrom1688(JObject jObject)
|
|
|
|
//{
|
|
|
|
// Task.Factory.StartNew(() =>
|
|
|
|
// {
|
|
|
|
// IList<IUpdate<OrderPurchaseSkuInfo>> updateOrderPurchaseSkuInfoList = new List<IUpdate<OrderPurchaseSkuInfo>>();
|
|
|
|
// IList<IUpdate<OrderPurchaseInfo>> updateOrderPurchaseInfoList = new List<IUpdate<OrderPurchaseInfo>>();
|
|
|
|
|
|
|
|
// var statusChanged = jObject["data"]["OrderLogisticsTracingModel"].Value<string>("statusChanged").ToUpper();
|
|
|
|
// var orderLogsItems = jObject["data"]["OrderLogisticsTracingModel"]["orderLogsItems"].Children();
|
|
|
|
|
|
|
|
// var purchaseOrderIds = orderLogsItems.Select(x => x.Value<string>("orderId")).Distinct().ToList();
|
|
|
|
// var orderEntryIds = orderLogsItems.Select(x => x.Value<string>("orderEntryId")).Distinct().ToList();
|
|
|
|
|
|
|
|
// var dbOrderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(opi => purchaseOrderIds.Contains(opi.PurchaseOrderId) && opi.IsEnabled == true).ToList();
|
|
|
|
|
|
|
|
// var dbOrderPurchaseSkuInfoList = fsql.Select<OrderPurchaseSkuInfo>()
|
|
|
|
// .WhereIf(purchaseOrderIds.Count() > 1, ops => purchaseOrderIds.Contains(ops.PurchaseOrderId))
|
|
|
|
// .WhereIf(purchaseOrderIds.Count() == 1, ops => ops.PurchaseOrderId == purchaseOrderIds[0])
|
|
|
|
// .ToList();
|
|
|
|
|
|
|
|
// var dbOrderPurchaseRelationInfoList = fsql.Select<OrderPurchaseRelationInfo>()
|
|
|
|
// .WhereIf(purchaseOrderIds.Count() > 1, opr => purchaseOrderIds.Contains(opr.PurchaseOrderId))
|
|
|
|
// .WhereIf(purchaseOrderIds.Count() == 1, opr => opr.PurchaseOrderId == purchaseOrderIds[0])
|
|
|
|
// .ToList();
|
|
|
|
|
|
|
|
// foreach (var orderEntryId in orderEntryIds)
|
|
|
|
// {
|
|
|
|
// var dbOrderPurchaseSkuInfo = dbOrderPurchaseSkuInfoList.FirstOrDefault(x => x.Id == orderEntryId);
|
|
|
|
// if (dbOrderPurchaseSkuInfo.ExpressState != statusChanged)
|
|
|
|
// {
|
|
|
|
// var update = fsql.Update<OrderPurchaseSkuInfo>(orderEntryId).Set(x => x.ExpressState, statusChanged)
|
|
|
|
// .Set(x => x.ExpressChangeTime, DateTime.Now);
|
|
|
|
// updateOrderPurchaseSkuInfoList.Add(update);
|
|
|
|
// dbOrderPurchaseSkuInfo.ExpressState = statusChanged;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
// if (statusChanged == "SIGN")
|
|
|
|
// {
|
|
|
|
// var groupsByPoIds = dbOrderPurchaseSkuInfoList.GroupBy(x => x.PurchaseOrderId);
|
|
|
|
// foreach (var group in groupsByPoIds)
|
|
|
|
// {
|
|
|
|
// var isSignAll = group.Count() == group.Where(x => x.ExpressState == "SIGN").Count();
|
|
|
|
// if (isSignAll)
|
|
|
|
// {
|
|
|
|
// var dbOrderPurchaseInfo = dbOrderPurchaseInfoList.FirstOrDefault(x => x.PurchaseOrderId == group.Key && x.IsEnabled == true);
|
|
|
|
// if (dbOrderPurchaseInfo != null)
|
|
|
|
// {
|
|
|
|
// dbOrderPurchaseInfo.OrderState = Enums.PurchaseOrderState.已签收;
|
|
|
|
// updateOrderPurchaseInfoList.Add(fsql.Update<OrderPurchaseInfo>().SetSource(dbOrderPurchaseInfo));
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
// #region 通知齐库
|
|
|
|
// var relationList = dbOrderPurchaseRelationInfoList.Where(x => x.PurchaseOrderId == group.Key).ToList();
|
|
|
|
// foreach (var relation in relationList)
|
|
|
|
// {
|
|
|
|
// try
|
|
|
|
// {
|
|
|
|
// restApiService.SendRequest("http://qiku.qiyue666.com",
|
|
|
|
// "/Api/PackPurchaseTask/UpdateAvailabilityState",
|
|
|
|
// new
|
|
|
|
// {
|
|
|
|
// availability = isSignAll ? 0 : 1,
|
|
|
|
// orderId = relation.OrderId,
|
|
|
|
// skuId = relation.SourceSkuId
|
|
|
|
// },
|
|
|
|
// null,
|
|
|
|
// HttpMethod.Post);
|
|
|
|
// }
|
|
|
|
// catch (Exception ex)
|
|
|
|
// {
|
|
|
|
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// #endregion
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
// if (updateOrderPurchaseSkuInfoList.Count() > 0 || updateOrderPurchaseInfoList.Count() > 0)
|
|
|
|
// {
|
|
|
|
// fsql.Transaction(() =>
|
|
|
|
// {
|
|
|
|
// foreach (var update in updateOrderPurchaseSkuInfoList)
|
|
|
|
// update.ExecuteAffrows();
|
|
|
|
// foreach (var update in updateOrderPurchaseInfoList)
|
|
|
|
// update.ExecuteAffrows();
|
|
|
|
// });
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
// }, CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
|
|
|
|
//}
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 采购平台改价回调
|
|
|
@ -2652,9 +2421,11 @@ namespace BBWYB.Server.Business |
|
|
|
var orderList = fsql.Select<Order>(orderIds).ToList(o => new Order |
|
|
|
{ |
|
|
|
Id = o.Id, |
|
|
|
OrderSn = o.OrderSn, |
|
|
|
ShopId = o.ShopId, |
|
|
|
OrderState = o.OrderState, |
|
|
|
IntoStoreType = o.IntoStoreType |
|
|
|
IntoStoreType = o.IntoStoreType, |
|
|
|
SourceShopName = o.SourceShopName |
|
|
|
}); |
|
|
|
if (orderList.Count() == 0) |
|
|
|
throw new Exception("未查询到任何订单"); |
|
|
@ -2713,6 +2484,12 @@ namespace BBWYB.Server.Business |
|
|
|
updatePurchaseExpressOrder = fsql.Update<PurchaseExpressOrder>().SetSource(tpeo); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 查询入库单信息
|
|
|
|
IList<InStorePurchaseOrdeRrelationInfo> inStoreOrderRelationList = null; |
|
|
|
if (orderList.Any(o => o.IntoStoreType == Enums.IntoStoreType.厂商代发入仓) && state == "QianShou") |
|
|
|
inStoreOrderRelationList = fsql.Select<InStorePurchaseOrdeRrelationInfo>().Where(i => orderIds.Contains(i.OrderId)).ToList(); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 计算订单状态和采购单状态
|
|
|
|
foreach (var order in orderList) |
|
|
|
{ |
|
|
@ -2749,7 +2526,81 @@ namespace BBWYB.Server.Business |
|
|
|
|
|
|
|
} |
|
|
|
var oldOrderState = order.OrderState; |
|
|
|
order.CalculationOrderState(fsql, currentOrderSkuList, currentPurchaseOrderList); |
|
|
|
|
|
|
|
if (order.IntoStoreType == Enums.IntoStoreType.厂商代发入仓 && state == "QianShou") |
|
|
|
{ |
|
|
|
#region 检查入库采购单状态
|
|
|
|
var isNotifyDingDingWhenInOrderFail = false; |
|
|
|
var currentOrder_InStoreOrderRelationList = inStoreOrderRelationList.Where(i => i.OrderId == order.Id).ToList(); |
|
|
|
ApiResponse<IList<JDInStoreOrderDetail>> inStoreResponse = null; |
|
|
|
if (currentOrder_InStoreOrderRelationList.Count() > 0) |
|
|
|
{ |
|
|
|
var poOrderNos = currentOrder_InStoreOrderRelationList.Select(i => i.InStorePurchaseOrderId).Distinct().ToList(); |
|
|
|
//查询京东
|
|
|
|
inStoreResponse = jdBusiness.GetJDInStoreOrderDetailList(order.SourceShopName, poOrderNos); |
|
|
|
} |
|
|
|
order.CalculationOrderState(fsql, out isNotifyDingDingWhenInOrderFail, currentOrderSkuList, currentPurchaseOrderList, inStoreResponse?.Data); |
|
|
|
|
|
|
|
if (isNotifyDingDingWhenInOrderFail && inStoreResponse != null) |
|
|
|
{ |
|
|
|
#region 入库单查询有误,通知钉钉
|
|
|
|
var dingdingMsg = new StringBuilder(); |
|
|
|
|
|
|
|
if (inStoreResponse.Data == null || inStoreResponse.Data.Count() == 0) |
|
|
|
{ |
|
|
|
foreach (var opi in currentPurchaseOrderList) |
|
|
|
{ |
|
|
|
dingdingMsg.AppendLine($"拳探订单号:{order.OrderSn}"); |
|
|
|
dingdingMsg.AppendLine($"采购平台:{opi.PurchasePlatform}"); |
|
|
|
dingdingMsg.AppendLine($"采购单号:{opi.PurchaseOrderId}"); |
|
|
|
dingdingMsg.AppendLine("缺少入仓采购单号"); |
|
|
|
dingdingMsg.AppendLine(); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
foreach (var inStoreOrderRelation in currentOrder_InStoreOrderRelationList) |
|
|
|
{ |
|
|
|
var jdInStore = inStoreResponse.Data.FirstOrDefault(x => x.poOrderNo == inStoreOrderRelation.InStorePurchaseOrderId); |
|
|
|
if (jdInStore == null || jdInStore.storageStatus == "2") |
|
|
|
continue; |
|
|
|
var opi = currentPurchaseOrderList.FirstOrDefault(opi => opi.PurchaseOrderId == inStoreOrderRelation.PurchaseOrderId); |
|
|
|
if (opi == null) |
|
|
|
continue; |
|
|
|
|
|
|
|
var stateText = ""; |
|
|
|
switch (jdInStore.storageStatus) |
|
|
|
{ |
|
|
|
case "1": |
|
|
|
stateText = "有差异待确认"; |
|
|
|
break; |
|
|
|
case "3": |
|
|
|
stateText = "待确认"; |
|
|
|
break; |
|
|
|
case "4": |
|
|
|
stateText = "有差异已确认"; |
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
dingdingMsg.AppendLine($"拳探订单号:{order.OrderSn}"); |
|
|
|
dingdingMsg.AppendLine($"采购平台:{opi.PurchasePlatform}"); |
|
|
|
dingdingMsg.AppendLine($"采购单号:{opi.PurchaseOrderId}"); |
|
|
|
dingdingMsg.AppendLine($"入仓采购单号:{inStoreOrderRelation.InStorePurchaseOrderId}"); |
|
|
|
dingdingMsg.AppendLine($"入仓采购单状态:{jdInStore.storageStatus} {stateText}"); |
|
|
|
dingdingMsg.AppendLine(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
Task.Factory.StartNew(() => SendDingDing(dingdingMsg.ToString()), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); |
|
|
|
#endregion
|
|
|
|
} |
|
|
|
#endregion
|
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
order.CalculationOrderState(fsql, out _, currentOrderSkuList, currentPurchaseOrderList); |
|
|
|
} |
|
|
|
|
|
|
|
if (order.OrderState != oldOrderState) |
|
|
|
{ |
|
|
|
var update = fsql.Update<Order>(order.Id).Set(o => o.OrderState, order.OrderState); |
|
|
@ -2785,7 +2636,7 @@ namespace BBWYB.Server.Business |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void SendDingDingOnKD100SubscribeFail(string content) |
|
|
|
private void SendDingDing(string content) |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|