Browse Source

支持夸单包裹

yijia
shanji 2 years ago
parent
commit
a463b67c42
  1. 19
      BBWYB.Server.Business/Order/OrderBusiness.cs
  2. 473
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  3. 18
      BBWYB.Server.Model/Dto/Request/PurchaseOrder/ManualSignRequest.cs

19
BBWYB.Server.Business/Order/OrderBusiness.cs

@ -151,7 +151,24 @@ namespace BBWYB.Server.Business
#endregion
#region 查询快递单信息
var purchaseExpressOrderList = fsql.Select<PurchaseExpressOrder>().Where(peo => orderIdList.Contains(peo.OrderId)).ToList<PurchaseExpressOrderResponse>();
var purchaseExpressOrderList = fsql.Select<ExpressOrderRelationInfo, PurchaseExpressOrder>()
.InnerJoin((eori, peo) => eori.WayBillNo == peo.WaybillNo)
.Where((eori, peo) => orderIdList.Contains(eori.OrderId)).ToList((eori, peo) => new PurchaseExpressOrderResponse
{
CreateTime = peo.CreateTime,
ExpressContent = peo.ExpressContent,
ExpressChangedTime = peo.ExpressChangedTime,
ExpressState = peo.ExpressState,
IsSubscribeKD100 = peo.IsSubscribeKD100,
OrderId = eori.OrderId,
PurchaseOrderId = eori.PurchaseOrderId,
ShopId = eori.ShopId.Value,
SourceExpressId = peo.SourceExpressId,
SourceExpressName = peo.SourceExpressName,
TargetExpressId = peo.TargetExpressId,
TargetExpressName = peo.TargetExpressName,
WaybillNo = peo.WaybillNo
});
#endregion
#region 处理订单成本明细

473
BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -568,7 +568,7 @@ namespace BBWYB.Server.Business
foreach (var apo in request.AssociationPurchaseOrderList)
{
if (Math.Abs(apo.PurchaseAmount - apo.AssocationOrderCostDetailList.Sum(aocd => aocd.SkuAmount)) > 1)
if (Math.Abs(apo.PurchaseAmount - apo.AssocationOrderCostDetailList.Sum(aocd => aocd.SkuAmount * aocd.PurchaseQuantity)) > 1)
throw new BusinessException($"采购单{apo.PurchaseOrderId}的采购货款与明细采购货款总和误差不能超过1");
}
#endregion
@ -1020,6 +1020,26 @@ namespace BBWYB.Server.Business
var historyPurchaseOrder = orderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == request.PurchaseOrderId);
if (historyPurchaseOrder == null)
throw new BusinessException("未查询到采购单");
#region 找出失效的快递单
List<string> deleteWaybillNoList = new List<string>();
//查询该采购单所使用的快递单号
var useWaybillNos = fsql.Select<ExpressOrderRelationInfo>().Where(eori => eori.PurchaseOrderId == historyPurchaseOrder.PurchaseOrderId).ToList(eori => eori.WayBillNo);
//查询使用上述快递单号的快递单关系
var expressOrderRelationList = fsql.Select<ExpressOrderRelationInfo>().Where(eori => useWaybillNos.Contains(eori.WayBillNo)).ToList();
//以快递单号进行分组
var expressOrderRelationGroups = expressOrderRelationList.GroupBy(eori => eori.WayBillNo);
foreach (var group in expressOrderRelationGroups)
{
if (group.Count() == group.Count(eori => eori.PurchaseOrderId == historyPurchaseOrder.PurchaseOrderId))
deleteWaybillNoList.Add(group.Key);
}
#endregion
orderPurchaseInfoList.Remove(historyPurchaseOrder);
dbOrder.CalculationOrderState(fsql, orderPurchaseInfoList: orderPurchaseInfoList);
@ -1038,7 +1058,12 @@ namespace BBWYB.Server.Business
fsql.Delete<OrderPurchaseSkuInfo>().Where(opsi => opsi.PurchaseOrderId == request.PurchaseOrderId).ExecuteAffrows();
fsql.Delete<OrderPurchaseRelationInfo>().Where(opri => opri.PurchaseOrderId == request.PurchaseOrderId).ExecuteAffrows();
fsql.Delete<PurchaseExpressOrder>().Where(peo => peo.PurchaseOrderId == request.PurchaseOrderId).ExecuteAffrows();
fsql.Delete<ExpressOrderRelationInfo>().Where(eori => eori.PurchaseOrderId == historyPurchaseOrder.PurchaseOrderId).ExecuteAffrows();
if (deleteWaybillNoList.Count() > 0)
fsql.Delete<PurchaseExpressOrder>(deleteWaybillNoList).ExecuteAffrows();
//fsql.Delete<PurchaseExpressOrder>().Where(peo => peo.PurchaseOrderId == request.PurchaseOrderId).ExecuteAffrows();
fsql.Update<OrderCost>().SetSource(dbOrderCost).ExecuteAffrows();
fsql.Update<Order>(dbOrder.Id).Set(o => o.OrderState, dbOrder.OrderState).ExecuteAffrows();
@ -1143,8 +1168,8 @@ namespace BBWYB.Server.Business
ExpressChangedTime = peo.ExpressChangedTime,
ExpressState = peo.ExpressState,
IsSubscribeKD100 = peo.IsSubscribeKD100,
OrderId = eori.OrderId,
PurchaseOrderId = eori.PurchaseOrderId,
//OrderId = eori.OrderId,
//PurchaseOrderId = eori.PurchaseOrderId,
ShopId = eori.ShopId.Value,
SourceExpressId = peo.SourceExpressId,
SourceExpressName = peo.SourceExpressName,
@ -1153,8 +1178,6 @@ namespace BBWYB.Server.Business
WaybillNo = peo.WaybillNo
});
bool isExists = purchaseExpressOrderList.Any(exo => exo.WaybillNo == request.WaybillNo);
if (isExists)
return;
bool isDbExists = fsql.Select<PurchaseExpressOrder>(request.WaybillNo).Any();
#endregion
@ -1314,131 +1337,139 @@ namespace BBWYB.Server.Business
});
}
/// <summary>
/// 手动收货
/// </summary>
/// <param name="request"></param>
public void ManualSign(ManualSignRequest request)
{
IList<IUpdate<PurchaseExpressOrder>> updatePurchaseExpressOrderList = new List<IUpdate<PurchaseExpressOrder>>();
IUpdate<OrderPurchaseInfo> updateOrderPurchase = null;
IUpdate<Order> updateOrder = null;
#region 查询该笔采购单的快递单信息
var purchaseExpressOrderList = fsql.Select<PurchaseExpressOrder>().Where(x => x.PurchaseOrderId == request.PurchaseOrderId).ToList();
#endregion
#region 查询当前采购单的订单信息
var dbOrder = fsql.Select<OrderPurchaseInfo, Order>().InnerJoin((opi, o) => opi.OrderId == o.Id)
.Where((opi, o) => opi.PurchaseOrderId == request.PurchaseOrderId && opi.IsEnabled == true)
.ToOne((opi, o) => new Order
{
Id = o.Id,
OrderState = o.OrderState,
ShopId = o.ShopId
});
if (dbOrder == null)
throw new BusinessException("未查询到采购单的订单信息");
#endregion
#region 查询订单的全部采购单信息
var orderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == dbOrder.Id && opi.IsEnabled == true).ToList();
var orderPurchaseInfo = orderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == request.PurchaseOrderId);
if (orderPurchaseInfo == null)
throw new BusinessException("未查询到采购单信息");
#endregion
IList<OrderPurchaseSkuInfo> orderPurchaseSkuList = null;
IList<OrderPurchaseRelationInfo> orderPurchaseRelationList = null;
if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.)
{
#region 查询采购关联信息
orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>().Where(opri => opri.PurchaseOrderId == request.PurchaseOrderId &&
opri.BelongSkuId == request.SkuId).ToList();
if (orderPurchaseRelationList.Count() == 0)
throw new BusinessException("未查询到采购单的关联信息");
#endregion
#region 查询该笔采购单的采购sku信息
orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(x => x.PurchaseOrderId == request.PurchaseOrderId).ToList();
if (orderPurchaseSkuList.Count() == 0)
throw new BusinessException("未查询到采购单sku信息");
#endregion
#region 更新采购sku的快递单状态为签收
foreach (var relation in orderPurchaseRelationList)
{
var orderPurchaseSku = orderPurchaseSkuList.FirstOrDefault(posku => posku.PurchaseSkuId == relation.PurchaseSkuId);
if (orderPurchaseSku == null)
throw new BusinessException("未查询到采购单sku信息");
if (!string.IsNullOrEmpty(orderPurchaseSku.WaybillNo))
{
var purchaseExpressOrder = purchaseExpressOrderList.FirstOrDefault(exo => exo.WaybillNo == orderPurchaseSku.WaybillNo);
if (purchaseExpressOrder == null)
throw new BusinessException("未查询到采购sku的快递信息");
var expressState = kuaiDi100Manager.GetExpressState(3);
if (purchaseExpressOrder.ExpressState != expressState)
{
purchaseExpressOrder.ExpressState = expressState;
updatePurchaseExpressOrderList.Add(fsql.Update<PurchaseExpressOrder>(purchaseExpressOrder.WaybillNo)
.Set(exo => exo.ExpressState, purchaseExpressOrder.ExpressState)
.Set(exo => exo.ExpressChangedTime, DateTime.Now)
.Set(exo => exo.ExpressContent, "手动签收"));
}
}
}
#endregion
}
else
{
foreach (var purchaseExpressOrder in purchaseExpressOrderList)
{
var expressState = kuaiDi100Manager.GetExpressState(3);
if (purchaseExpressOrder.ExpressState != expressState)
{
purchaseExpressOrder.ExpressState = expressState;
updatePurchaseExpressOrderList.Add(fsql.Update<PurchaseExpressOrder>(purchaseExpressOrder.WaybillNo)
.Set(exo => exo.ExpressState, purchaseExpressOrder.ExpressState)
.Set(exo => exo.ExpressChangedTime, DateTime.Now)
.Set(exo => exo.ExpressContent, "手动签收"));
}
}
}
#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),
Task.Factory.StartNew(() => OnExpressOrderChange(request.WayBillNo, "QianShou", DateTime.Now, "手动签收"),
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
///// <summary>
///// 手动收货
///// </summary>
///// <param name="request"></param>
//public void ManualSign(ManualSignRequest request)
//{
// IList<IUpdate<PurchaseExpressOrder>> updatePurchaseExpressOrderList = new List<IUpdate<PurchaseExpressOrder>>();
// IUpdate<OrderPurchaseInfo> updateOrderPurchase = null;
// IUpdate<Order> updateOrder = null;
// #region 查询该笔采购单的快递单信息
// var purchaseExpressOrderList = fsql.Select<PurchaseExpressOrder>().Where(x => x.PurchaseOrderId == request.PurchaseOrderId).ToList();
// #endregion
// #region 查询当前采购单的订单信息
// var dbOrder = fsql.Select<OrderPurchaseInfo, Order>().InnerJoin((opi, o) => opi.OrderId == o.Id)
// .Where((opi, o) => opi.PurchaseOrderId == request.PurchaseOrderId && opi.IsEnabled == true)
// .ToOne((opi, o) => new Order
// {
// Id = o.Id,
// OrderState = o.OrderState,
// ShopId = o.ShopId
// });
// if (dbOrder == null)
// throw new BusinessException("未查询到采购单的订单信息");
// #endregion
// #region 查询订单的全部采购单信息
// var orderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == dbOrder.Id && opi.IsEnabled == true).ToList();
// var orderPurchaseInfo = orderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == request.PurchaseOrderId);
// if (orderPurchaseInfo == null)
// throw new BusinessException("未查询到采购单信息");
// #endregion
// IList<OrderPurchaseSkuInfo> orderPurchaseSkuList = null;
// IList<OrderPurchaseRelationInfo> orderPurchaseRelationList = null;
// if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.阿里巴巴)
// {
// #region 查询采购关联信息
// orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>().Where(opri => opri.PurchaseOrderId == request.PurchaseOrderId &&
// opri.BelongSkuId == request.SkuId).ToList();
// if (orderPurchaseRelationList.Count() == 0)
// throw new BusinessException("未查询到采购单的关联信息");
// #endregion
fsql.Transaction(() =>
{
if (updatePurchaseExpressOrderList.Count() > 0)
{
foreach (var update in updatePurchaseExpressOrderList)
update.ExecuteAffrows();
}
updateOrderPurchase?.ExecuteAffrows();
updateOrder?.ExecuteAffrows();
});
}
// #region 查询该笔采购单的采购sku信息
// orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(x => x.PurchaseOrderId == request.PurchaseOrderId).ToList();
// if (orderPurchaseSkuList.Count() == 0)
// throw new BusinessException("未查询到采购单sku信息");
// #endregion
// #region 更新采购sku的快递单状态为签收
// foreach (var relation in orderPurchaseRelationList)
// {
// var orderPurchaseSku = orderPurchaseSkuList.FirstOrDefault(posku => posku.PurchaseSkuId == relation.PurchaseSkuId);
// if (orderPurchaseSku == null)
// throw new BusinessException("未查询到采购单sku信息");
// if (!string.IsNullOrEmpty(orderPurchaseSku.WaybillNo))
// {
// var purchaseExpressOrder = purchaseExpressOrderList.FirstOrDefault(exo => exo.WaybillNo == orderPurchaseSku.WaybillNo);
// if (purchaseExpressOrder == null)
// throw new BusinessException("未查询到采购sku的快递信息");
// var expressState = kuaiDi100Manager.GetExpressState(3);
// if (purchaseExpressOrder.ExpressState != expressState)
// {
// purchaseExpressOrder.ExpressState = expressState;
// updatePurchaseExpressOrderList.Add(fsql.Update<PurchaseExpressOrder>(purchaseExpressOrder.WaybillNo)
// .Set(exo => exo.ExpressState, purchaseExpressOrder.ExpressState)
// .Set(exo => exo.ExpressChangedTime, DateTime.Now)
// .Set(exo => exo.ExpressContent, "手动签收"));
// }
// }
// }
// #endregion
// }
// else
// {
// foreach (var purchaseExpressOrder in purchaseExpressOrderList)
// {
// var expressState = kuaiDi100Manager.GetExpressState(3);
// if (purchaseExpressOrder.ExpressState != expressState)
// {
// purchaseExpressOrder.ExpressState = expressState;
// updatePurchaseExpressOrderList.Add(fsql.Update<PurchaseExpressOrder>(purchaseExpressOrder.WaybillNo)
// .Set(exo => exo.ExpressState, purchaseExpressOrder.ExpressState)
// .Set(exo => exo.ExpressChangedTime, DateTime.Now)
// .Set(exo => exo.ExpressContent, "手动签收"));
// }
// }
// }
// #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(() =>
// {
// if (updatePurchaseExpressOrderList.Count() > 0)
// {
// foreach (var update in updatePurchaseExpressOrderList)
// update.ExecuteAffrows();
// }
// updateOrderPurchase?.ExecuteAffrows();
// updateOrder?.ExecuteAffrows();
// });
//}
///// <summary>
///// 签收采购单
@ -2113,12 +2144,38 @@ namespace BBWYB.Server.Business
public void KuaiDi100Publish(string param)
{
Task.Factory.StartNew(() => KuaiDi100PublishCore(param), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
nLogManager.GetLogger("快递100").Info($"KuaiDi100Publish {param}");
try
{
JObject jobject = JObject.Parse(param);
var waybillNo = jobject["lastResult"].Value<string>("nu");
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();
Task.Factory.StartNew(() => OnExpressOrderChange(waybillNo, convertState, lastData.ftime, lastData.context),
CancellationToken.None,
TaskCreationOptions.LongRunning,
taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
}
catch (Exception ex)
{
nLogManager.GetLogger("快递100").Error(ex, $"KuaiDi100Publish-{param}");
}
}
private void KuaiDi100PublishCore(string param)
{
nLogManager.GetLogger("快递100").Info($"KuaiDi100Publish {param}");
JObject jobject = JObject.Parse(param);
var waybillNo = jobject["lastResult"].Value<string>("nu");
try
@ -2222,6 +2279,170 @@ namespace BBWYB.Server.Business
}
}
/// <summary>
/// 快递单信息变更
/// </summary>
/// <param name="wayBillNo"></param>
/// <param name="state"></param>
/// <param name="expressChangeTime"></param>
/// <param name="expressContent"></param>
private void OnExpressOrderChange(string wayBillNo, string state, DateTime expressChangeTime, string expressContent)
{
try
{
IUpdate<PurchaseExpressOrder> updatePurchaseExpressOrder = null;
List<IUpdate<OrderPurchaseInfo>> updateOrderPurchaseList = new List<IUpdate<OrderPurchaseInfo>>();
List<IUpdate<Order>> updateOrderList = new List<IUpdate<Order>>();
#region 查询该笔快递单
var tpeo = fsql.Select<PurchaseExpressOrder>(wayBillNo).ToOne();
if (tpeo == null)
throw new Exception("未查询到快递单");
#endregion
#region 查询和该快递单有关的订单 (多笔订单)
var orderIds = fsql.Select<ExpressOrderRelationInfo, PurchaseExpressOrder>()
.InnerJoin((eori, peo) => eori.WayBillNo == peo.WaybillNo)
.Where((eori, peo) => eori.WayBillNo == wayBillNo)
.GroupBy((eori, peo) => eori.OrderId)
.ToList(g => g.Key);
if (orderIds.Count() == 0)
throw new Exception("未查询到任何订单号");
#endregion
#region 查询订单
var orderList = fsql.Select<Order>(orderIds).ToList(o => new Order
{
Id = o.Id,
ShopId = o.ShopId,
OrderState = o.OrderState
});
if (orderList.Count() == 0)
throw new Exception("未查询到任何订单");
#endregion
#region 查询订单sku
var orderSkuList = fsql.Select<OrderSku>().Where(osku => orderIds.Contains(osku.OrderId)).ToList();
if (orderSkuList.Count() == 0)
throw new Exception("未查询到任何订单sku");
#endregion
#region 查询采购单
var purchaseOrderList = fsql.Select<OrderPurchaseInfo>().Where(ori => ori.IsEnabled == true && orderIds.Contains(ori.OrderId)).ToList();
if (purchaseOrderList.Count() == 0)
throw new Exception("未查询到任何采购单");
var purchaseOrderIds = purchaseOrderList.Select(po => po.PurchaseOrderId).ToList();
#endregion
#region 查询采购SKU
IList<OrderPurchaseSkuInfo> orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>()
.Where(posku => purchaseOrderIds.Contains(posku.PurchaseOrderId))
.ToList();
#endregion
#region 查询采购sku关联信息
IList<OrderPurchaseRelationInfo> orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>()
.Where(ops => purchaseOrderIds.Contains(ops.PurchaseOrderId))
.ToList();
#endregion
#region 查询采购单关联的快递单
var purchaseExpressOrderList = fsql.Select<ExpressOrderRelationInfo, PurchaseExpressOrder>()
.InnerJoin((eori, peo) => eori.WayBillNo == peo.WaybillNo)
.Where((eori, peo) => orderIds.Contains(eori.OrderId)).ToList((eori, peo) => new PurchaseExpressOrder
{
CreateTime = peo.CreateTime,
ExpressContent = peo.ExpressContent,
ExpressChangedTime = peo.ExpressChangedTime,
ExpressState = peo.ExpressState,
IsSubscribeKD100 = peo.IsSubscribeKD100,
OrderId = eori.OrderId,
PurchaseOrderId = eori.PurchaseOrderId,
ShopId = eori.ShopId.Value,
SourceExpressId = peo.SourceExpressId,
SourceExpressName = peo.SourceExpressName,
TargetExpressId = peo.TargetExpressId,
TargetExpressName = peo.TargetExpressName,
WaybillNo = peo.WaybillNo
});
#endregion
#region 更新采购单信息
tpeo.ExpressState = state;
tpeo.ExpressChangedTime = expressChangeTime;
tpeo.ExpressContent = expressContent;
updatePurchaseExpressOrder = fsql.Update<PurchaseExpressOrder>().SetSource(tpeo);
#endregion
#region 计算订单状态和采购单状态
foreach (var order in orderList)
{
var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == order.Id).ToList();
var currentPurchaseOrderList = purchaseOrderList.Where(po => po.OrderId == order.Id).ToList();
foreach (var purchaseOrder in currentPurchaseOrderList)
{
var currentPurchaseOrderSkuList = orderPurchaseSkuList.Where(posku => posku.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList();
var currentPurchaseExpressOrderList = purchaseExpressOrderList.Where(peo => peo.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList();
var temp = currentPurchaseExpressOrderList.FirstOrDefault(p => p.WaybillNo == wayBillNo);
if (temp != null)
temp.ExpressState = state;
var oldPurchaseOrderState = purchaseOrder.OrderState;
purchaseOrder.CalculationOrderState(fsql, currentPurchaseOrderSkuList, currentPurchaseExpressOrderList);
if (purchaseOrder.OrderState != oldPurchaseOrderState)
{
var update = fsql.Update<OrderPurchaseInfo>(purchaseOrder.Id).Set(po => po.OrderState, purchaseOrder.OrderState);
updateOrderPurchaseList.Add(update);
#region 通知齐库打包落仓情况
var currentOrderPurchaseRelationList = orderPurchaseRelationList.Where(opri => opri.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList();
Task.Factory.StartNew(() => qiKuManager.PublishQiKu(purchaseOrder, currentOrderPurchaseRelationList, currentPurchaseOrderSkuList, purchaseExpressOrderList),
CancellationToken.None,
TaskCreationOptions.LongRunning,
taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
#endregion
}
}
var oldOrderState = order.OrderState;
order.CalculationOrderState(fsql, currentOrderSkuList, currentPurchaseOrderList);
if (order.OrderState != oldOrderState)
{
var update = fsql.Update<Order>(order.Id).Set(o => o.OrderState, order.OrderState);
updateOrderList.Add(update);
#region 通知C端状态
Task.Factory.StartNew(() => SendPurchaseOrderStateToC(order.Id, order.OrderState.Value), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
#endregion
}
}
#endregion
#region 更新数据库
fsql.Transaction(() =>
{
updatePurchaseExpressOrder?.ExecuteAffrows();
if (updateOrderPurchaseList.Count() > 0)
{
foreach (var update in updateOrderPurchaseList)
update.ExecuteAffrows();
}
if (updateOrderList.Count() > 0)
{
foreach (var update in updateOrderList)
update.ExecuteAffrows();
}
});
#endregion
}
catch (Exception ex)
{
nLogManager.GetLogger("快递100").Error(ex, wayBillNo);
}
}
private void SendDingDingOnKD100SubscribeFail(string content)
{
try

18
BBWYB.Server.Model/Dto/Request/PurchaseOrder/ManualSignRequest.cs

@ -2,14 +2,20 @@
{
public class ManualSignRequest
{
/// <summary>
/// 采购单Id
/// </summary>
public string PurchaseOrderId { get; set; }
///// <summary>
///// 采购单Id
///// </summary>
//public string PurchaseOrderId { get; set; }
///// <summary>
///// 订单SkuId (OrderSku对象的SkuId)
///// </summary>
//public string SkuId { get; set; }
/// <summary>
/// 订单SkuId (OrderSku对象的SkuId)
/// 快递单号
/// </summary>
public string SkuId { get; set; }
public string WayBillNo { get; set; }
}
}

Loading…
Cancel
Save