Browse Source

处理手动发货其他平台

yijia
shanji 2 years ago
parent
commit
a67a95f11c
  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<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,
= 1,
@ -128,6 +120,21 @@ namespace BBWYB.Server.Business
= 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 待发货
if (orderPurchaseSkuList.Count() == orderPurchaseSkuList.Count(ops => string.IsNullOrEmpty(ops.WaybillNo)))
{
@ -144,6 +151,19 @@ namespace BBWYB.Server.Business
return;
}
#endregion
}
else
{
//不支持采购sku和关联信息
#region 待发货
if (purchaseExpressOrderList.Count() == 0)
{
orderPurchaseInfo.OrderState = Enums.PurchaseOrderState.;
return;
}
#endregion
}
#region 待收货
if (purchaseExpressOrderList.Count(exo => exo.ExpressState == "QianShou") == 0)

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

@ -1129,6 +1129,9 @@ namespace BBWYB.Server.Business
throw new BusinessException("未查询到采购单信息");
#endregion
IList<OrderPurchaseSkuInfo> orderPurchaseSkuList = null;
if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.)
{
#region 查询采购关联信息
var orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>().Where(opri => opri.PurchaseOrderId == request.PurchaseOrderId &&
opri.BelongSkuId == request.SkuId).ToList();
@ -1137,7 +1140,7 @@ namespace BBWYB.Server.Business
#endregion
#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)
throw new BusinessException("未查询到采购单sku信息");
@ -1153,6 +1156,7 @@ namespace BBWYB.Server.Business
}
}
#endregion
}
#region 订阅快递100
bool isSubscribeKD100 = false;
@ -1272,15 +1276,19 @@ namespace BBWYB.Server.Business
throw new BusinessException("未查询到采购单信息");
#endregion
IList<OrderPurchaseSkuInfo> orderPurchaseSkuList = null;
IList<OrderPurchaseRelationInfo> orderPurchaseRelationList = null;
if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.)
{
#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();
if (orderPurchaseRelationList.Count() == 0)
throw new BusinessException("未查询到采购单的关联信息");
#endregion
#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)
throw new BusinessException("未查询到采购单sku信息");
#endregion
@ -1296,14 +1304,34 @@ namespace BBWYB.Server.Business
var purchaseExpressOrder = purchaseExpressOrderList.FirstOrDefault(exo => exo.WaybillNo == orderPurchaseSku.WaybillNo);
if (purchaseExpressOrder == null)
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)
.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);
@ -1318,7 +1346,7 @@ namespace BBWYB.Server.Business
#endregion
#region 通知齐库打包落仓情况
Task.Factory.StartNew(() => qiKuManager.PublishQiKu(orderPurchaseRelationList, orderPurchaseSkuList, purchaseExpressOrderList),
Task.Factory.StartNew(() => qiKuManager.PublishQiKu(orderPurchaseInfo, orderPurchaseRelationList, orderPurchaseSkuList, purchaseExpressOrderList),
CancellationToken.None,
TaskCreationOptions.LongRunning,
taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
@ -2005,7 +2033,14 @@ namespace BBWYB.Server.Business
throw new Exception("未查询到快递单");
#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
{
Id = o.Id,
@ -2015,15 +2050,19 @@ namespace BBWYB.Server.Business
if (dbOrder == null)
throw new Exception("未查询到订单");
var orderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == dbOrder.Id && opi.IsEnabled == true).ToList();
var orderPurchaseInfo = orderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == tpeo.PurchaseOrderId);
if (orderPurchaseInfo == null)
throw new Exception("未查询到采购单");
var orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(x => x.PurchaseOrderId == tpeo.PurchaseOrderId).ToList();
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;
@ -2031,9 +2070,6 @@ namespace BBWYB.Server.Business
purchaseExpressOrder.ExpressContent = lastData.context;
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
#region 计算采购单状态
@ -2049,7 +2085,7 @@ namespace BBWYB.Server.Business
#endregion
#region 通知齐库打包落仓情况
Task.Factory.StartNew(() => qiKuManager.PublishQiKu(orderPurchaseRelationList, orderPurchaseSkuList, purchaseExpressOrderList),
Task.Factory.StartNew(() => qiKuManager.PublishQiKu(orderPurchaseInfo, orderPurchaseRelationList, orderPurchaseSkuList, purchaseExpressOrderList),
CancellationToken.None,
TaskCreationOptions.LongRunning,
taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);

56
BBWYB.Server.Business/QiKuManager.cs

@ -1,5 +1,6 @@
using BBWYB.Common.Http;
using BBWYB.Common.Models;
using BBWYB.Server.Model;
using BBWYB.Server.Model.Db;
namespace BBWYB.Server.Business
@ -7,18 +8,34 @@ namespace BBWYB.Server.Business
public class QiKuManager : IDenpendency
{
private RestApiService restApiService;
public QiKuManager(RestApiService restApiService)
private IFreeSql fsql;
public QiKuManager(RestApiService restApiService, IFreeSql fsql)
{
this.restApiService = restApiService;
this.fsql = fsql;
}
/// <summary>
/// 通知齐库
/// <para>支持关联的采购平台以来源SKU为单位通知齐库</para>
/// <para>不支持关联的采购平台以采购单为单位通知齐库</para>
/// </summary>
/// <param name="orderPurchaseInfo"></param>
/// <param name="orderPurchaseRelationInfoList"></param>
/// <param name="orderPurchaseSkuInfoList"></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<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