Browse Source

验收接口

yijia
shanji 2 years ago
parent
commit
7b87ebf2a9
  1. 10
      BBWYB.Server.API/Controllers/OrderController.cs
  2. 10
      BBWYB.Server.Business/Extensions/OrderStateExtension.cs
  3. 108
      BBWYB.Server.Business/Order/OrderBusiness.cs
  4. 114
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  5. 15
      BBWYB.Server.Model/Dto/Request/Order/CheckSkuRequest.cs

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

@ -93,6 +93,16 @@ namespace BBWYB.Server.API.Controllers
orderBusiness.EditOrderSkuRemark(request);
}
/// <summary>
/// 来源SKU验收
/// </summary>
/// <param name="request"></param>
[HttpPost]
public void CheckSku([FromBody] CheckSkuRequest request)
{
orderBusiness.CheckSku(request);
}
/// <summary>
/// 齐库推送打包费
/// </summary>

10
BBWYB.Server.Business/Extensions/OrderStateExtension.cs

@ -101,11 +101,19 @@ namespace BBWYB.Server.Business
}
#endregion
#region 打包中
#region 待验收/待核算/已完成
if (orderPurchaseInfoList.Any(opi => opi.OrderState == Enums.PurchaseOrderState.) &&
orderPurchaseInfoList.Count(opi => opi.OrderState == Enums.PurchaseOrderState.) == orderPurchaseInfoList.Count())
{
if (order.IntoStoreType == Enums.IntoStoreType.)
{
if (orderSkuList.Any(osku => osku.IsCheck != true))
order.OrderState = Enums.OrderState.;
else
order.OrderState = Enums.OrderState.;
}
else
order.OrderState = Enums.OrderState.;
return;
}
#endregion

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

@ -313,81 +313,7 @@ namespace BBWYB.Server.Business
return list;
}
//public void OutStock(OutStockRequest request)
//{
// var dbOrder = fsql.Select<Order>(request.OrderId).ToOne();
// if (dbOrder == null)
// throw new BusinessException($"订单{request.OrderId}不存在");
// var dbOrderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == request.OrderId && opi.IsEnabled == true).ToList();
// var dbOrderPurchaseInfo = dbOrderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == request.PurchaseOrderId);
// dbOrderPurchaseInfo.WaybillNo = request.WayBillNo;
// dbOrderPurchaseInfo.SourceExpressId = request.SourceExpressId;
// dbOrderPurchaseInfo.SourceExpressName = request.SourceExpressName;
// dbOrderPurchaseInfo.TargetExpressId = request.TargetExpressId;
// dbOrderPurchaseInfo.TargetExpressName = request.TargetExpressName;
// dbOrderPurchaseInfo.OrderState = Enums.PurchaseOrderState.待收货;
// #region 订单状态
// dbOrder.CalculationOrderState(fsql, null, dbOrderPurchaseInfoList);
// #endregion
// if (!string.IsNullOrEmpty(request.TargetExpressId))
// {
// #region 订阅快递100
// #endregion
// //try
// //{
// // opPlatformClientFactory.GetClient((AdapterEnums.PlatformType)request.Platform)
// // .OutStock(new OP_OutStockRequest()
// // {
// // AppKey = request.AppKey,
// // AppSecret = request.AppSecret,
// // AppToken = request.AppToken,
// // ExpressId = request.TargetExpressId,
// // ExpressName = request.TargetExpressName,
// // OrderId = request.OrderId,
// // Platform = (AdapterEnums.PlatformType)request.Platform,
// // WayBillNo = request.WayBillNo
// // });
// //}
// //catch (Exception ex)
// //{
// // nLogManager.Default().Error(ex, $"OutStock Request {JsonConvert.SerializeObject(request)}");
// //}
// }
// #region 通知C端出库
// //通知C端
// try
// {
// restApiService.SendRequest("https://bbwy.qiyue666.com",
// "/Api/PurchaseOrder/QuanTanSendGoodsCallback",
// new
// {
// OrderId = request.OrderId,
// ExpressId = request.SourceExpressId,
// ExpressName = request.SourceExpressName,
// request.WayBillNo
// },
// null,
// HttpMethod.Post);
// }
// catch (Exception ex)
// {
// }
// #endregion
// fsql.Transaction(() =>
// {
// fsql.Update<OrderPurchaseInfo>().SetSource(dbOrderPurchaseInfo).ExecuteAffrows();
// fsql.Update<Order>(request.OrderId).Set(o => o.OrderState, dbOrder.OrderState).ExecuteAffrows();
// });
//}
public void CancelOrder(CancelOrderRequest request, string mdsToken)
{
@ -516,5 +442,37 @@ namespace BBWYB.Server.Business
{
}
public void CheckSku(CheckSkuRequest request)
{
var dbOrder = fsql.Select<Order>(request.OrderId).ToOne();
if (dbOrder == null)
throw new BusinessException($"订单{request.OrderId}不存在");
var orderSkuList = fsql.Select<OrderSku>().Where(osku => osku.OrderId == request.OrderId).ToList();
var orderSku = orderSkuList.FirstOrDefault(osku => osku.BelongSkuId == request.SourceSkuId);
if (orderSku == null)
throw new BusinessException($"订单{request.OrderId}的归属sku中不存在{request.SourceSkuId}");
if (orderSku.IsCheck == true)
throw new BusinessException("已验收,无需重复验收");
IUpdate<Order> updateOrder = null;
IUpdate<OrderSku> updateOrderSku = null;
orderSku.IsCheck = true;
updateOrderSku = fsql.Update<OrderSku>(orderSku.Id).Set(osku => osku.IsCheck, true);
var oldOrderState = dbOrder.OrderState;
dbOrder.CalculationOrderState(fsql, orderSkuList, null);
if (oldOrderState != dbOrder.OrderState)
updateOrder = fsql.Update<Order>(dbOrder.Id).Set(o => o.OrderState, dbOrder.OrderState);
fsql.Transaction(() =>
{
updateOrderSku?.ExecuteAffrows();
updateOrder?.ExecuteAffrows();
});
}
}
}

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

@ -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("未查询到任何订单");

15
BBWYB.Server.Model/Dto/Request/Order/CheckSkuRequest.cs

@ -0,0 +1,15 @@
namespace BBWYB.Server.Model.Dto
{
public class CheckSkuRequest
{
/// <summary>
/// 订单Id
/// </summary>
public string OrderId { get; set; }
/// <summary>
/// 来源SKUID (JD)
/// </summary>
public string SourceSkuId { get; set; }
}
}
Loading…
Cancel
Save