|
|
@ -966,6 +966,100 @@ 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
|
|
|
|
|
|
|
|
#region 查询采购关联信息
|
|
|
|
var 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信息
|
|
|
|
var 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的快递信息"); |
|
|
|
purchaseExpressOrder.ExpressState = kuaiDi100Manager.GetExpressState(3); |
|
|
|
updatePurchaseExpressOrderList.Add(fsql.Update<PurchaseExpressOrder>(purchaseExpressOrder.WaybillNo) |
|
|
|
.Set(exo => exo.ExpressState, purchaseExpressOrder.ExpressState) |
|
|
|
.Set(exo => exo.ExpressChangedTime, DateTime.Now) |
|
|
|
.Set(exo => exo.ExpressContent, "手动签收")); |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 计算采购单状态
|
|
|
|
orderPurchaseInfo.CalculationOrderState(fsql, orderPurchaseSkuList, purchaseExpressOrderList.ToList()); |
|
|
|
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 通知C端订单状态
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
fsql.Transaction(() => |
|
|
|
{ |
|
|
|
if (updatePurchaseExpressOrderList.Count() > 0) |
|
|
|
{ |
|
|
|
foreach (var update in updatePurchaseExpressOrderList) |
|
|
|
update.ExecuteAffrows(); |
|
|
|
} |
|
|
|
updateOrderPurchase?.ExecuteAffrows(); |
|
|
|
updateOrder?.ExecuteAffrows(); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 签收采购单
|
|
|
|