shanji 2 years ago
parent
commit
9eb55c8c3a
  1. 36
      BBWYB.Server.Business/Extensions/OrderStateExtension.cs
  2. 68
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  3. 56
      BBWYB.Server.Business/QiKuManager.cs

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

@ -111,14 +111,6 @@ namespace BBWYB.Server.Business
IList<OrderPurchaseSkuInfo> orderPurchaseSkuList = null, IList<OrderPurchaseSkuInfo> orderPurchaseSkuList = null,
IList<PurchaseExpressOrder> purchaseExpressOrderList = null) IList<PurchaseExpressOrder> purchaseExpressOrderList = null)
{ {
if (orderPurchaseInfo.OrderState == Enums.PurchaseOrderState.)
return;
if (orderPurchaseSkuList == null)
orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(ops => ops.PurchaseOrderId == orderPurchaseInfo.PurchaseOrderId).ToList();
if (purchaseExpressOrderList == null)
purchaseExpressOrderList = fsql.Select<PurchaseExpressOrder>().Where(exo => exo.PurchaseOrderId == orderPurchaseInfo.PurchaseOrderId).ToList();
/* /*
= 0, = 0,
= 1, = 1,
@ -128,6 +120,21 @@ namespace BBWYB.Server.Business
= 100 = 100
*/ */
if (orderPurchaseInfo.OrderState == Enums.PurchaseOrderState.)
return;
if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.)
{
if (orderPurchaseSkuList == null)
orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(ops => ops.PurchaseOrderId == orderPurchaseInfo.PurchaseOrderId).ToList();
}
if (purchaseExpressOrderList == null)
purchaseExpressOrderList = fsql.Select<PurchaseExpressOrder>().Where(exo => exo.PurchaseOrderId == orderPurchaseInfo.PurchaseOrderId).ToList();
if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.) //支持采购sku和关联信息
{
#region 待发货 #region 待发货
if (orderPurchaseSkuList.Count() == orderPurchaseSkuList.Count(ops => string.IsNullOrEmpty(ops.WaybillNo))) if (orderPurchaseSkuList.Count() == orderPurchaseSkuList.Count(ops => string.IsNullOrEmpty(ops.WaybillNo)))
{ {
@ -144,6 +151,19 @@ namespace BBWYB.Server.Business
return; return;
} }
#endregion #endregion
}
else
{
//不支持采购sku和关联信息
#region 待发货
if (purchaseExpressOrderList.Count() == 0)
{
orderPurchaseInfo.OrderState = Enums.PurchaseOrderState.;
return;
}
#endregion
}
#region 待收货 #region 待收货
if (purchaseExpressOrderList.Count(exo => exo.ExpressState == "QianShou") == 0) if (purchaseExpressOrderList.Count(exo => exo.ExpressState == "QianShou") == 0)

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

@ -1142,6 +1142,9 @@ namespace BBWYB.Server.Business
throw new BusinessException("未查询到采购单信息"); throw new BusinessException("未查询到采购单信息");
#endregion #endregion
IList<OrderPurchaseSkuInfo> orderPurchaseSkuList = null;
if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.)
{
#region 查询采购关联信息 #region 查询采购关联信息
var orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>().Where(opri => opri.PurchaseOrderId == request.PurchaseOrderId && var orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>().Where(opri => opri.PurchaseOrderId == request.PurchaseOrderId &&
opri.BelongSkuId == request.SkuId).ToList(); opri.BelongSkuId == request.SkuId).ToList();
@ -1150,7 +1153,7 @@ namespace BBWYB.Server.Business
#endregion #endregion
#region 查询该笔采购单的采购sku信息并更新快递单号 #region 查询该笔采购单的采购sku信息并更新快递单号
var orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(x => x.PurchaseOrderId == request.PurchaseOrderId).ToList(); orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(x => x.PurchaseOrderId == request.PurchaseOrderId).ToList();
if (orderPurchaseSkuList.Count() == 0) if (orderPurchaseSkuList.Count() == 0)
throw new BusinessException("未查询到采购单sku信息"); throw new BusinessException("未查询到采购单sku信息");
@ -1166,6 +1169,7 @@ namespace BBWYB.Server.Business
} }
} }
#endregion #endregion
}
#region 订阅快递100 #region 订阅快递100
bool isSubscribeKD100 = false; bool isSubscribeKD100 = false;
@ -1285,15 +1289,19 @@ namespace BBWYB.Server.Business
throw new BusinessException("未查询到采购单信息"); throw new BusinessException("未查询到采购单信息");
#endregion #endregion
IList<OrderPurchaseSkuInfo> orderPurchaseSkuList = null;
IList<OrderPurchaseRelationInfo> orderPurchaseRelationList = null;
if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.)
{
#region 查询采购关联信息 #region 查询采购关联信息
var orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>().Where(opri => opri.PurchaseOrderId == request.PurchaseOrderId && orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>().Where(opri => opri.PurchaseOrderId == request.PurchaseOrderId &&
opri.BelongSkuId == request.SkuId).ToList(); opri.BelongSkuId == request.SkuId).ToList();
if (orderPurchaseRelationList.Count() == 0) if (orderPurchaseRelationList.Count() == 0)
throw new BusinessException("未查询到采购单的关联信息"); throw new BusinessException("未查询到采购单的关联信息");
#endregion #endregion
#region 查询该笔采购单的采购sku信息 #region 查询该笔采购单的采购sku信息
var orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(x => x.PurchaseOrderId == request.PurchaseOrderId).ToList(); orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(x => x.PurchaseOrderId == request.PurchaseOrderId).ToList();
if (orderPurchaseSkuList.Count() == 0) if (orderPurchaseSkuList.Count() == 0)
throw new BusinessException("未查询到采购单sku信息"); throw new BusinessException("未查询到采购单sku信息");
#endregion #endregion
@ -1309,14 +1317,34 @@ namespace BBWYB.Server.Business
var purchaseExpressOrder = purchaseExpressOrderList.FirstOrDefault(exo => exo.WaybillNo == orderPurchaseSku.WaybillNo); var purchaseExpressOrder = purchaseExpressOrderList.FirstOrDefault(exo => exo.WaybillNo == orderPurchaseSku.WaybillNo);
if (purchaseExpressOrder == null) if (purchaseExpressOrder == null)
throw new BusinessException("未查询到采购sku的快递信息"); throw new BusinessException("未查询到采购sku的快递信息");
purchaseExpressOrder.ExpressState = kuaiDi100Manager.GetExpressState(3); var expressState = kuaiDi100Manager.GetExpressState(3);
if (purchaseExpressOrder.ExpressState != expressState)
{
purchaseExpressOrder.ExpressState = expressState;
updatePurchaseExpressOrderList.Add(fsql.Update<PurchaseExpressOrder>(purchaseExpressOrder.WaybillNo) updatePurchaseExpressOrderList.Add(fsql.Update<PurchaseExpressOrder>(purchaseExpressOrder.WaybillNo)
.Set(exo => exo.ExpressState, purchaseExpressOrder.ExpressState) .Set(exo => exo.ExpressState, purchaseExpressOrder.ExpressState)
.Set(exo => exo.ExpressChangedTime, DateTime.Now) .Set(exo => exo.ExpressChangedTime, DateTime.Now)
.Set(exo => exo.ExpressContent, "手动签收")); .Set(exo => exo.ExpressContent, "手动签收"));
} }
} }
}
#endregion #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 计算采购单状态 #region 计算采购单状态
orderPurchaseInfo.CalculationOrderState(fsql, orderPurchaseSkuList, purchaseExpressOrderList); orderPurchaseInfo.CalculationOrderState(fsql, orderPurchaseSkuList, purchaseExpressOrderList);
@ -1331,7 +1359,7 @@ namespace BBWYB.Server.Business
#endregion #endregion
#region 通知齐库打包落仓情况 #region 通知齐库打包落仓情况
Task.Factory.StartNew(() => qiKuManager.PublishQiKu(orderPurchaseRelationList, orderPurchaseSkuList, purchaseExpressOrderList), Task.Factory.StartNew(() => qiKuManager.PublishQiKu(orderPurchaseInfo, orderPurchaseRelationList, orderPurchaseSkuList, purchaseExpressOrderList),
CancellationToken.None, CancellationToken.None,
TaskCreationOptions.LongRunning, TaskCreationOptions.LongRunning,
taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
@ -2018,7 +2046,14 @@ namespace BBWYB.Server.Business
throw new Exception("未查询到快递单"); throw new Exception("未查询到快递单");
#endregion #endregion
#region 查询订单/采购单/采购sku/快递单/采购关系 #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>(tpeo.OrderId).ToOne(o => new Order var dbOrder = fsql.Select<Order>(tpeo.OrderId).ToOne(o => new Order
{ {
Id = o.Id, Id = o.Id,
@ -2028,15 +2063,19 @@ namespace BBWYB.Server.Business
if (dbOrder == null) if (dbOrder == null)
throw new Exception("未查询到订单"); throw new Exception("未查询到订单");
var orderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == dbOrder.Id && opi.IsEnabled == true).ToList(); IList<OrderPurchaseSkuInfo> orderPurchaseSkuList = null;
var orderPurchaseInfo = orderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == tpeo.PurchaseOrderId); IList<OrderPurchaseRelationInfo> orderPurchaseRelationList = null;
if (orderPurchaseInfo == null) if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.)
throw new Exception("未查询到采购单"); {
orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(x => x.PurchaseOrderId == tpeo.PurchaseOrderId).ToList();
var orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(x => x.PurchaseOrderId == tpeo.PurchaseOrderId).ToList();
if (orderPurchaseSkuList.Count() == 0) if (orderPurchaseSkuList.Count() == 0)
throw new BusinessException("未查询到采购单sku信息"); 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 purchaseExpressOrderList = fsql.Select<PurchaseExpressOrder>().Where(x => x.PurchaseOrderId == tpeo.PurchaseOrderId).ToList();
var purchaseExpressOrder = purchaseExpressOrderList.FirstOrDefault(exo => exo.WaybillNo == waybillNo); var purchaseExpressOrder = purchaseExpressOrderList.FirstOrDefault(exo => exo.WaybillNo == waybillNo);
purchaseExpressOrder.ExpressState = convertState; purchaseExpressOrder.ExpressState = convertState;
@ -2044,9 +2083,6 @@ namespace BBWYB.Server.Business
purchaseExpressOrder.ExpressContent = lastData.context; purchaseExpressOrder.ExpressContent = lastData.context;
updatePurchaseExpressOrder = fsql.Update<PurchaseExpressOrder>().SetSource(purchaseExpressOrder); updatePurchaseExpressOrder = fsql.Update<PurchaseExpressOrder>().SetSource(purchaseExpressOrder);
var orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>().Where(opri => opri.PurchaseOrderId == tpeo.PurchaseOrderId).ToList();
if (orderPurchaseRelationList.Count() == 0)
throw new BusinessException("未查询到采购单的关联信息");
#endregion #endregion
#region 计算采购单状态 #region 计算采购单状态
@ -2062,7 +2098,7 @@ namespace BBWYB.Server.Business
#endregion #endregion
#region 通知齐库打包落仓情况 #region 通知齐库打包落仓情况
Task.Factory.StartNew(() => qiKuManager.PublishQiKu(orderPurchaseRelationList, orderPurchaseSkuList, purchaseExpressOrderList), Task.Factory.StartNew(() => qiKuManager.PublishQiKu(orderPurchaseInfo, orderPurchaseRelationList, orderPurchaseSkuList, purchaseExpressOrderList),
CancellationToken.None, CancellationToken.None,
TaskCreationOptions.LongRunning, TaskCreationOptions.LongRunning,
taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);

56
BBWYB.Server.Business/QiKuManager.cs

@ -1,5 +1,6 @@
using BBWYB.Common.Http; using BBWYB.Common.Http;
using BBWYB.Common.Models; using BBWYB.Common.Models;
using BBWYB.Server.Model;
using BBWYB.Server.Model.Db; using BBWYB.Server.Model.Db;
namespace BBWYB.Server.Business namespace BBWYB.Server.Business
@ -7,18 +8,34 @@ namespace BBWYB.Server.Business
public class QiKuManager : IDenpendency public class QiKuManager : IDenpendency
{ {
private RestApiService restApiService; private RestApiService restApiService;
public QiKuManager(RestApiService restApiService) private IFreeSql fsql;
public QiKuManager(RestApiService restApiService, IFreeSql fsql)
{ {
this.restApiService = restApiService; this.restApiService = restApiService;
this.fsql = fsql;
} }
/// <summary> /// <summary>
/// 通知齐库 /// 通知齐库
/// <para>支持关联的采购平台以来源SKU为单位通知齐库</para>
/// <para>不支持关联的采购平台以采购单为单位通知齐库</para>
/// </summary> /// </summary>
/// <param name="orderPurchaseInfo"></param>
/// <param name="orderPurchaseRelationInfoList"></param> /// <param name="orderPurchaseRelationInfoList"></param>
/// <param name="orderPurchaseSkuInfoList"></param> /// <param name="orderPurchaseSkuInfoList"></param>
/// <param name="purchaseExpressOrderList"></param> /// <param name="purchaseExpressOrderList"></param>
public void PublishQiKu(IList<OrderPurchaseRelationInfo> orderPurchaseRelationInfoList, public void PublishQiKu(OrderPurchaseInfo orderPurchaseInfo,
IList<OrderPurchaseRelationInfo> orderPurchaseRelationInfoList,
IList<OrderPurchaseSkuInfo> orderPurchaseSkuInfoList,
IList<PurchaseExpressOrder> purchaseExpressOrderList)
{
if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.)
PublishQiKuByRelation(orderPurchaseRelationInfoList, orderPurchaseSkuInfoList, purchaseExpressOrderList);
else
PublishQiKuPurchaseExpressOrder(orderPurchaseInfo, purchaseExpressOrderList);
}
private void PublishQiKuByRelation(IList<OrderPurchaseRelationInfo> orderPurchaseRelationInfoList,
IList<OrderPurchaseSkuInfo> orderPurchaseSkuInfoList, IList<OrderPurchaseSkuInfo> orderPurchaseSkuInfoList,
IList<PurchaseExpressOrder> purchaseExpressOrderList) IList<PurchaseExpressOrder> purchaseExpressOrderList)
{ {
@ -62,5 +79,40 @@ namespace BBWYB.Server.Business
} }
} }
private void PublishQiKuPurchaseExpressOrder(OrderPurchaseInfo orderPurchaseInfo, IList<PurchaseExpressOrder> purchaseExpressOrderList)
{
try
{
if (string.IsNullOrEmpty(orderPurchaseInfo.BelongSkuIds))
return;
var orderId = purchaseExpressOrderList.FirstOrDefault().OrderId;
var orderSkuList = fsql.Select<OrderSku>().Where(osku => osku.OrderId == orderId).ToList();
var isSignAll = !purchaseExpressOrderList.Any(x => x.ExpressState != "QianShou");
var notifyList = orderSkuList.Where(osku => orderPurchaseInfo.BelongSkuIds.Contains(osku.SkuId)).ToList();
if (notifyList.Count() == 0)
return;
foreach (var notifySku in notifyList)
{
restApiService.SendRequest("http://qiku.qiyue666.com",
"/Api/PackPurchaseTask/UpdateAvailabilityState",
new
{
availability = isSignAll ? 0 : 1,
orderId = notifySku.OrderId,
skuId = notifySku.BelongSkuId
},
null,
HttpMethod.Post);
}
}
catch
{
}
}
} }
} }

Loading…
Cancel
Save