diff --git a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs index 565cffb0..f98ab8fe 100644 --- a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs @@ -777,23 +777,46 @@ namespace BBWY.Server.Business { Task.Factory.StartNew(() => { + IList> updatePurchaseOrderSkuList = new List>(); foreach (var qikuTask in qikuTaskList) { try { - var qikuResponse = restApiService.SendRequest("http://qiku.qiyue666.com/", + var qikuHttpResult = restApiService.SendRequest("http://qiku.qiyue666.com/", "api/PackPurchaseTask/BatchPublicPurchaseTaskV2", qikuTask, null, HttpMethod.Post); - if (qikuResponse.StatusCode != System.Net.HttpStatusCode.OK) - throw new Exception(qikuResponse.Content); + if (qikuHttpResult.StatusCode != System.Net.HttpStatusCode.OK) + throw new Exception(qikuHttpResult.Content); + var qikuResponse = JsonConvert.DeserializeObject>(qikuHttpResult.Content); + if (!qikuResponse.Success) + throw new Exception(qikuResponse.Msg); + if (qikuResponse.Data.BatchPublicPurchaseTaskV2 != null && qikuResponse.Data.BatchPublicPurchaseTaskV2.Count() > 0) + { + var orderId = qikuResponse.Data.OrderId; + foreach (var task in qikuResponse.Data.BatchPublicPurchaseTaskV2) + { + var update = fsql.Update().Set(posku => posku.QiKuTaskId, task.TaskId) + .Where(posku => posku.PurchaseOrderId == orderId && posku.SkuId == task.SkuId); + updatePurchaseOrderSkuList.Add(update); + } + } } catch (Exception ex) { - nLogManager.GetLogger($"发布齐库采购单任务-{request.ShopName}").Error(ex, JsonConvert.SerializeObject(qikuTask)); + nLogManager.GetLogger($"发布齐库采购单任务-{request.ShopName}").Error(ex); } } + + if (updatePurchaseOrderSkuList.Count() > 0) + { + fsql.Transaction(() => + { + foreach (var update in updatePurchaseOrderSkuList) + update.ExecuteAffrows(); + }); + } }); } diff --git a/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrderSku.cs b/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrderSku.cs index 4a908ca0..ce1564cf 100644 --- a/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrderSku.cs +++ b/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrderSku.cs @@ -120,6 +120,11 @@ namespace BBWY.Server.Model.Db [Column(MapType = typeof(int?))] public Enums.StockType? StockType { get; set; } + /// + /// 齐库任务Id + /// + public long? QiKuTaskId { get; set; } + } } diff --git a/BBWY.Server.Model/Dto/Response/QK/QiKuBatchPublicPurchaseTaskV2Response.cs b/BBWY.Server.Model/Dto/Response/QK/QiKuBatchPublicPurchaseTaskV2Response.cs new file mode 100644 index 00000000..beeaf5b0 --- /dev/null +++ b/BBWY.Server.Model/Dto/Response/QK/QiKuBatchPublicPurchaseTaskV2Response.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; + +namespace BBWY.Server.Model.Dto +{ + public class QiKuBatchPublicPurchaseTaskV2Response + { + public string OrderId { get; set; } + + public IList BatchPublicPurchaseTaskV2 { get; set; } + } + + public class QiKuBatchPublicPurchaseTaskV2SkuResponse + { + public string SkuId { get; set; } + + public long TaskId { get; set; } + } +}