Browse Source

对接齐库合格证查询接口

yijia
shanji 2 years ago
parent
commit
a6a367c8f1
  1. 44
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  2. 79
      BBWYB.Server.Business/QiKuManager.cs
  3. 9
      BBWYB.Server.Model/Dto/Request/QiKu/QiKuPackTaskSkuPurchaseSchemeIdRequest.cs
  4. 22
      BBWYB.Server.Model/Dto/Response/QiKu/QiKuBindingSchemeResponse.cs

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

@ -258,6 +258,9 @@ namespace BBWYB.Server.Business
List<long> updatePurchaseTimeSchemeIdList = new List<long>(); List<long> updatePurchaseTimeSchemeIdList = new List<long>();
List<OrderPurchaseRelationInfo> insertOrderPurchaseRelationInfoList = new List<OrderPurchaseRelationInfo>(); List<OrderPurchaseRelationInfo> insertOrderPurchaseRelationInfoList = new List<OrderPurchaseRelationInfo>();
List<string> updatePurchaseTimeLimitTaskOrderSkuList = new List<string>(); List<string> updatePurchaseTimeLimitTaskOrderSkuList = new List<string>();
List<QiKuPackTaskSkuPurchaseSchemeIdRequest> notifyQikuPackSchemeParamList = null;
if (dbOrder.IntoStoreType == Enums.IntoStoreType.)
notifyQikuPackSchemeParamList = new List<QiKuPackTaskSkuPurchaseSchemeIdRequest>();
#region 待更新 #region 待更新
IList<long> updateOrderCostDetailIdList = fsql.Select<OrderCostDetail>() IList<long> updateOrderCostDetailIdList = fsql.Select<OrderCostDetail>()
@ -323,6 +326,8 @@ namespace BBWYB.Server.Business
foreach (var cargoParam in cargoParamGroup.CargoParamList) foreach (var cargoParam in cargoParamGroup.CargoParamList)
{ {
var orderSku = orderSkus.FirstOrDefault(osku => osku.SkuId == cargoParam.BelongSkuId); var orderSku = orderSkus.FirstOrDefault(osku => osku.SkuId == cargoParam.BelongSkuId);
#region 创建订单采购关系
insertOrderPurchaseRelationInfoList.Add(new OrderPurchaseRelationInfo() insertOrderPurchaseRelationInfoList.Add(new OrderPurchaseRelationInfo()
{ {
Id = idGenerator.NewLong(), Id = idGenerator.NewLong(),
@ -337,7 +342,7 @@ namespace BBWYB.Server.Business
SchemeId = cargoParam.SchemeId, SchemeId = cargoParam.SchemeId,
SourceSkuId = orderSku?.BelongSkuId SourceSkuId = orderSku?.BelongSkuId
}); });
#endregion
} }
//采购单总件数,由于1688运费只存在订单层,sku层没有运费,所以需要以订单总件数为基础等比计算采购运费 //采购单总件数,由于1688运费只存在订单层,sku层没有运费,所以需要以订单总件数为基础等比计算采购运费
@ -435,6 +440,29 @@ namespace BBWYB.Server.Business
updatePurchaseTimeLimitTaskOrderSkuList.Add(belongSkuId); updatePurchaseTimeLimitTaskOrderSkuList.Add(belongSkuId);
} }
#endregion #endregion
#region 封装查询齐库合格证接口参数
if (dbOrder.IntoStoreType == Enums.IntoStoreType.)
{
foreach (var belongSkuId in belongSkuIdList) //订单skuId
{
var orderSku = orderSkus.FirstOrDefault(osku => osku.SkuId == belongSkuId);
if (orderSku == null)
continue;
var cargoParam = cargoParamGroup.CargoParamList.FirstOrDefault(c => c.BelongSkuId == belongSkuId);
if (cargoParam == null)
continue;
if (!notifyQikuPackSchemeParamList.Any(x => x.SkuId == orderSku.BelongSkuId))
{
notifyQikuPackSchemeParamList.Add(new QiKuPackTaskSkuPurchaseSchemeIdRequest()
{
SkuId = orderSku.BelongSkuId,
SkuPurchaseSchemeId = cargoParam.SchemeId.ToString()
});
}
}
}
#endregion
} }
#region 订单成本 #region 订单成本
@ -468,6 +496,15 @@ namespace BBWYB.Server.Business
Task.Factory.StartNew(() => SendPurchaseOrderStateToC(dbOrder.Id, dbOrder.OrderState.Value), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); Task.Factory.StartNew(() => SendPurchaseOrderStateToC(dbOrder.Id, dbOrder.OrderState.Value), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
#endregion #endregion
#region 查询齐库合格证
if (dbOrder.IntoStoreType == Enums.IntoStoreType. &&
notifyQikuPackSchemeParamList != null &&
notifyQikuPackSchemeParamList.Count() > 0)
{
Task.Factory.StartNew(() => qiKuManager.SearchCerConfigured(request.OrderId, notifyQikuPackSchemeParamList, orderSkus), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
}
#endregion
fsql.Transaction(() => fsql.Transaction(() =>
{ {
if (updatePurchaseOrderIdList.Count() > 0) if (updatePurchaseOrderIdList.Count() > 0)
@ -495,8 +532,8 @@ namespace BBWYB.Server.Business
fsql.Update<Order>(request.OrderId).Set(o => o.OrderState, dbOrder.OrderState) fsql.Update<Order>(request.OrderId).Set(o => o.OrderState, dbOrder.OrderState)
.SetIf(!string.IsNullOrEmpty(request.Remark), o => o.PurchaseRemark, request.Remark) .SetIf(!string.IsNullOrEmpty(request.Remark), o => o.PurchaseRemark, request.Remark)
.Set(o => o.IsPurchased, true) .Set(o => o.IsPurchased, true)
.Set(o => o.PackConfigState, Enums.PackConfigState.)
.ExecuteAffrows(); .ExecuteAffrows();
//.Set(o => o.PackConfigState, Enums.PackConfigState.待配置)
}); });
} }
@ -2664,7 +2701,7 @@ namespace BBWYB.Server.Business
{ {
var currentOrderPurchaseRelationList = orderPurchaseRelationList.Where(opri => opri.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList(); var currentOrderPurchaseRelationList = orderPurchaseRelationList.Where(opri => opri.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList();
Task.Factory.StartNew(() => qiKuManager.PublishQiKu(purchaseOrder, currentOrderPurchaseRelationList, currentPurchaseOrderSkuList, purchaseExpressOrderList), Task.Factory.StartNew(() => qiKuManager.PublishQiKuReceiveInfo(purchaseOrder, currentOrderPurchaseRelationList, currentPurchaseOrderSkuList, purchaseExpressOrderList),
CancellationToken.None, CancellationToken.None,
TaskCreationOptions.LongRunning, TaskCreationOptions.LongRunning,
taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
@ -2736,5 +2773,6 @@ namespace BBWYB.Server.Business
} }
} }
} }
} }

79
BBWYB.Server.Business/QiKuManager.cs

@ -1,7 +1,11 @@
using BBWYB.Common.Http; using BBWYB.Common.Http;
using BBWYB.Common.Log;
using BBWYB.Common.Models; using BBWYB.Common.Models;
using BBWYB.Server.Model; using BBWYB.Server.Model;
using BBWYB.Server.Model.Db; using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Dto;
using FreeSql;
using Newtonsoft.Json;
namespace BBWYB.Server.Business namespace BBWYB.Server.Business
{ {
@ -9,14 +13,15 @@ namespace BBWYB.Server.Business
{ {
private RestApiService restApiService; private RestApiService restApiService;
private IFreeSql fsql; private IFreeSql fsql;
public QiKuManager(RestApiService restApiService, IFreeSql fsql) private NLogManager nLogManager;
public QiKuManager(RestApiService restApiService, IFreeSql fsql, NLogManager nLogManager)
{ {
this.restApiService = restApiService; this.restApiService = restApiService;
this.fsql = fsql; this.fsql = fsql;
} }
/// <summary> /// <summary>
/// 通知齐库 /// 通知齐库到货情况
/// <para>支持关联的采购平台以来源SKU为单位通知齐库</para> /// <para>支持关联的采购平台以来源SKU为单位通知齐库</para>
/// <para>不支持关联的采购平台以采购单为单位通知齐库</para> /// <para>不支持关联的采购平台以采购单为单位通知齐库</para>
/// </summary> /// </summary>
@ -24,10 +29,10 @@ namespace BBWYB.Server.Business
/// <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(OrderPurchaseInfo orderPurchaseInfo, public void PublishQiKuReceiveInfo(OrderPurchaseInfo orderPurchaseInfo,
IList<OrderPurchaseRelationInfo> orderPurchaseRelationInfoList, IList<OrderPurchaseRelationInfo> orderPurchaseRelationInfoList,
IList<OrderPurchaseSkuInfo> orderPurchaseSkuInfoList, IList<OrderPurchaseSkuInfo> orderPurchaseSkuInfoList,
IList<PurchaseExpressOrder> purchaseExpressOrderList) IList<PurchaseExpressOrder> purchaseExpressOrderList)
{ {
if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.) if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.)
PublishQiKuByRelation(orderPurchaseRelationInfoList, orderPurchaseSkuInfoList, purchaseExpressOrderList); PublishQiKuByRelation(orderPurchaseRelationInfoList, orderPurchaseSkuInfoList, purchaseExpressOrderList);
@ -114,5 +119,67 @@ namespace BBWYB.Server.Business
} }
} }
/// <summary>
/// 查询齐库合格证
/// </summary>
/// <param name="orderId"></param>
/// <param name="packTaskSkuPurchaseSchemeIdList"></param>
/// <param name="orderSkuList"></param>
public void SearchCerConfigured(string orderId, IList<QiKuPackTaskSkuPurchaseSchemeIdRequest> packTaskSkuPurchaseSchemeIdList, IList<OrderSku> orderSkuList)
{
try
{
var restApiResult = restApiService.SendRequest("http://qiku.qiyue666.com", "api/PackPurchaseTask/SearchCerConfigured", new
{
orderId,
packTaskSkuPurchaseSchemeIdList
}, null, HttpMethod.Post);
if (restApiResult.StatusCode != System.Net.HttpStatusCode.OK)
throw new Exception(restApiResult.Content);
var response = JsonConvert.DeserializeObject<ApiResponse<QiKuBindingSchemeResponse>>(restApiResult.Content);
if (!response.Success)
throw new Exception(response.Msg);
if (response.Data.PackTaskSkuPurchaseSchemeIdList != null && response.Data.PackTaskSkuPurchaseSchemeIdList.Count() > 0)
{
IList<IUpdate<OrderSku>> updateOrderSkuList = new List<IUpdate<OrderSku>>();
foreach (var skuConfigured in response.Data.PackTaskSkuPurchaseSchemeIdList)
{
var orderSku = orderSkuList.FirstOrDefault(osku => osku.BelongSkuId == skuConfigured.SkuId);
if (orderSku == null)
continue;
var oldPackState = orderSku.PackConfigState ?? Enums.PackConfigState.;
var qiKuPackState = skuConfigured.IsConfiguredCer ? Enums.PackConfigState. : Enums.PackConfigState.;
if (oldPackState != qiKuPackState)
{
orderSku.PackConfigState = qiKuPackState;
var update = fsql.Update<OrderSku>(orderSku.Id).Set(osku => osku.PackConfigState, qiKuPackState);
updateOrderSkuList.Add(update);
}
if (qiKuPackState == Enums.PackConfigState.)
{
//创建合格证拟定任务
}
}
fsql.Transaction(() =>
{
if (updateOrderSkuList.Count() > 0)
{
foreach (var update in updateOrderSkuList)
update.ExecuteAffrows();
}
});
}
}
catch (Exception ex)
{
nLogManager.Default().Error(ex, $"SearchCerConfigured\r\n{JsonConvert.SerializeObject(new { orderId, packTaskSkuPurchaseSchemeIdList })}");
}
}
} }
} }

9
BBWYB.Server.Model/Dto/Request/QiKu/QiKuPackTaskSkuPurchaseSchemeIdRequest.cs

@ -0,0 +1,9 @@
namespace BBWYB.Server.Model.Dto
{
public class QiKuPackTaskSkuPurchaseSchemeIdRequest
{
public string SkuId { get; set; }
public string SkuPurchaseSchemeId { get; set; }
}
}

22
BBWYB.Server.Model/Dto/Response/QiKu/QiKuBindingSchemeResponse.cs

@ -0,0 +1,22 @@
namespace BBWYB.Server.Model.Dto
{
public class QiKuBindingSchemeResponse
{
public string OrderId { get; set; }
public IList<QiKuBindingSchemeSkuResponse> PackTaskSkuPurchaseSchemeIdList { get; set; }
}
public class QiKuBindingSchemeSkuResponse
{
/// <summary>
/// 来源skuId
/// </summary>
public string SkuId { get; set; }
/// <summary>
/// 是否配置合格证
/// </summary>
public bool IsConfiguredCer { get; set; }
}
}
Loading…
Cancel
Save