Browse Source

手动收货

yijia
shanji 2 years ago
parent
commit
f3c00c4f81
  1. 10
      BBWYB.Server.API/Controllers/PurchaseOrderController.cs
  2. 94
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

10
BBWYB.Server.API/Controllers/PurchaseOrderController.cs

@ -88,6 +88,16 @@ namespace BBWYB.Server.API.Controllers
purchaseOrderBusiness.ManualDelivery(request);
}
/// <summary>
/// 手动收货
/// </summary>
/// <param name="request"></param>
[HttpPost]
public void ManualSign([FromBody] ManualSignRequest request)
{
purchaseOrderBusiness.ManualSign(request);
}
/// <summary>
/// 1688回调
/// </summary>

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

@ -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>
/// 签收采购单

Loading…
Cancel
Save