|
|
@ -1210,7 +1210,8 @@ namespace BBWYB.Server.Business |
|
|
|
Id = o.Id, |
|
|
|
OrderSn = o.OrderSn, |
|
|
|
OrderState = o.OrderState, |
|
|
|
ShopId = o.ShopId |
|
|
|
ShopId = o.ShopId, |
|
|
|
IntoStoreType = o.IntoStoreType |
|
|
|
}); |
|
|
|
if (dbOrder == null) |
|
|
|
throw new BusinessException("未查询到采购单的订单信息"); |
|
|
@ -1591,7 +1592,8 @@ namespace BBWYB.Server.Business |
|
|
|
Id = o.Id, |
|
|
|
OrderSn = o.OrderSn, |
|
|
|
OrderState = o.OrderState, |
|
|
|
ShopId = o.ShopId |
|
|
|
ShopId = o.ShopId, |
|
|
|
IntoStoreType = o.IntoStoreType |
|
|
|
}); |
|
|
|
if (dbOrder == null) |
|
|
|
throw new Exception("未查询到采购单的订单信息"); |
|
|
@ -2195,111 +2197,6 @@ namespace BBWYB.Server.Business |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void KuaiDi100PublishCore(string param) |
|
|
|
{ |
|
|
|
JObject jobject = JObject.Parse(param); |
|
|
|
var waybillNo = jobject["lastResult"].Value<string>("nu"); |
|
|
|
try |
|
|
|
{ |
|
|
|
var state = jobject["lastResult"].Value<int>("state"); |
|
|
|
var convertState = kuaiDi100Manager.GetExpressState(state); |
|
|
|
if (convertState == "Unknow") |
|
|
|
return; |
|
|
|
|
|
|
|
var dataArray = jobject["lastResult"]["data"].Children().Select(d => new |
|
|
|
{ |
|
|
|
context = d.Value<string>("context"), |
|
|
|
ftime = d.Value<DateTime>("ftime"), |
|
|
|
statusCode = d.Value<int>("statusCode") |
|
|
|
}).OrderByDescending(d => d.ftime).ToList(); |
|
|
|
|
|
|
|
var lastData = dataArray.FirstOrDefault(); |
|
|
|
|
|
|
|
IUpdate<PurchaseExpressOrder> updatePurchaseExpressOrder = null; |
|
|
|
IUpdate<OrderPurchaseInfo> updateOrderPurchase = null; |
|
|
|
IUpdate<Order> updateOrder = null; |
|
|
|
|
|
|
|
#region 查询该笔快递单
|
|
|
|
var tpeo = fsql.Select<PurchaseExpressOrder>(waybillNo).ToOne(); |
|
|
|
if (tpeo == null) |
|
|
|
throw new Exception("未查询到快递单"); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 查询采购单
|
|
|
|
var orderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == tpeo.OrderId && opi.IsEnabled == true).ToList(); |
|
|
|
var orderPurchaseInfo = orderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == tpeo.PurchaseOrderId); |
|
|
|
if (orderPurchaseInfo == null) |
|
|
|
throw new Exception("未查询到采购单"); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 查询订单/采购sku/快递单/采购关系
|
|
|
|
var dbOrder = fsql.Select<Order>(orderPurchaseInfo.OrderId).ToOne(o => new Order |
|
|
|
{ |
|
|
|
Id = o.Id, |
|
|
|
ShopId = o.ShopId, |
|
|
|
OrderState = o.OrderState |
|
|
|
}); |
|
|
|
if (dbOrder == null) |
|
|
|
throw new Exception("未查询到订单"); |
|
|
|
|
|
|
|
IList<OrderPurchaseSkuInfo> orderPurchaseSkuList = null; |
|
|
|
IList<OrderPurchaseRelationInfo> orderPurchaseRelationList = null; |
|
|
|
if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.阿里巴巴) |
|
|
|
{ |
|
|
|
orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(x => x.PurchaseOrderId == tpeo.PurchaseOrderId).ToList(); |
|
|
|
if (orderPurchaseSkuList.Count() == 0) |
|
|
|
throw new BusinessException("未查询到采购单sku信息"); |
|
|
|
|
|
|
|
orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>().Where(opri => opri.PurchaseOrderId == tpeo.PurchaseOrderId).ToList(); |
|
|
|
if (orderPurchaseRelationList.Count() == 0) |
|
|
|
throw new BusinessException("未查询到采购单的关联信息"); |
|
|
|
} |
|
|
|
|
|
|
|
var purchaseExpressOrderList = fsql.Select<PurchaseExpressOrder>().Where(x => x.PurchaseOrderId == tpeo.PurchaseOrderId).ToList(); |
|
|
|
var purchaseExpressOrder = purchaseExpressOrderList.FirstOrDefault(exo => exo.WaybillNo == waybillNo); |
|
|
|
purchaseExpressOrder.ExpressState = convertState; |
|
|
|
purchaseExpressOrder.ExpressChangedTime = lastData.ftime; |
|
|
|
purchaseExpressOrder.ExpressContent = lastData.context; |
|
|
|
updatePurchaseExpressOrder = fsql.Update<PurchaseExpressOrder>().SetSource(purchaseExpressOrder); |
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 计算采购单状态
|
|
|
|
orderPurchaseInfo.CalculationOrderState(fsql, orderPurchaseSkuList, purchaseExpressOrderList); |
|
|
|
updateOrderPurchase = fsql.Update<OrderPurchaseInfo>(orderPurchaseInfo.Id) |
|
|
|
.Set(opi => opi.OrderState, orderPurchaseInfo.OrderState); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 计算订单状态
|
|
|
|
dbOrder.CalculationOrderState(fsql, null, orderPurchaseInfoList); |
|
|
|
updateOrder = fsql.Update<Order>(dbOrder.Id) |
|
|
|
.Set(o => o.OrderState, dbOrder.OrderState); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 通知齐库打包落仓情况
|
|
|
|
Task.Factory.StartNew(() => qiKuManager.PublishQiKu(orderPurchaseInfo, orderPurchaseRelationList, orderPurchaseSkuList, purchaseExpressOrderList), |
|
|
|
CancellationToken.None, |
|
|
|
TaskCreationOptions.LongRunning, |
|
|
|
taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 通知C端状态
|
|
|
|
Task.Factory.StartNew(() => SendPurchaseOrderStateToC(dbOrder.Id, dbOrder.OrderState.Value), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
fsql.Transaction(() => |
|
|
|
{ |
|
|
|
updatePurchaseExpressOrder?.ExecuteAffrows(); |
|
|
|
updateOrderPurchase?.ExecuteAffrows(); |
|
|
|
updateOrder?.ExecuteAffrows(); |
|
|
|
}); |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
nLogManager.GetLogger("快递100").Error(ex, waybillNo); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 快递单信息变更
|
|
|
|
/// </summary>
|
|
|
@ -2336,7 +2233,8 @@ namespace BBWYB.Server.Business |
|
|
|
{ |
|
|
|
Id = o.Id, |
|
|
|
ShopId = o.ShopId, |
|
|
|
OrderState = o.OrderState |
|
|
|
OrderState = o.OrderState, |
|
|
|
IntoStoreType = o.IntoStoreType |
|
|
|
}); |
|
|
|
if (orderList.Count() == 0) |
|
|
|
throw new Exception("未查询到任何订单"); |
|
|
|