From ea8ac33a5696eb3002dfd16c83d7cf5935657b43 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Thu, 17 Oct 2024 14:03:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/Controllers/TestController.cs | 3 ++- src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 15 +++++++++++ src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 13 ++++++++++ .../Dto/LingXing/LingXingKongRequest.cs | 10 ++++++++ .../Dto/LingXing/LingXingSellerResponse.cs | 25 +++++++++++++++++++ .../IService/Public/ILingXingService.cs | 5 ++++ .../Services/ProductInventoryService.cs | 24 ++++++++++++------ .../Services/Public/LingXingService.cs | 20 +++++++++++++++ 8 files changed, 106 insertions(+), 9 deletions(-) create mode 100644 src/WMS.Web.Core/Dto/LingXing/LingXingKongRequest.cs create mode 100644 src/WMS.Web.Core/Dto/LingXing/LingXingSellerResponse.cs diff --git a/src/WMS.Web.Api/Controllers/TestController.cs b/src/WMS.Web.Api/Controllers/TestController.cs index a47b119a..7f3eff22 100644 --- a/src/WMS.Web.Api/Controllers/TestController.cs +++ b/src/WMS.Web.Api/Controllers/TestController.cs @@ -114,7 +114,8 @@ namespace WMS.Web.Api.Controllers //var ss=JsonConvert.DeserializeObject>(str); //var b = System.Text.Json.JsonSerializer.Deserialize>(str); //await _productInventoryService.LingXing(); - //var s = await _lingXingService.GetStock(); + //var s = await _lingXingService.GetSeller(); + //var ns = s.Data.Where(w =>w.Id== "2101").ToList(); //string str = string.Join(",", s.Data.Select(s => s.Id).ToList()); var sd= await _lingXingService.GetInventory(new LingXingInventoryRequest() { wid = "437" }); string sdsdf = sd.Message; diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 733752ad..018bf731 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -4039,6 +4039,21 @@ 页条数 + + + 店铺信息 + + + + + id + + + + + name + + id diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 56a49871..231aad46 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -4321,6 +4321,12 @@ + + + 获取领星所有仓库 + + + 获取即时库存 @@ -6304,6 +6310,13 @@ + + + 获取所有店铺 + + + + 获取即使库存 diff --git a/src/WMS.Web.Core/Dto/LingXing/LingXingKongRequest.cs b/src/WMS.Web.Core/Dto/LingXing/LingXingKongRequest.cs new file mode 100644 index 00000000..0a81b7a9 --- /dev/null +++ b/src/WMS.Web.Core/Dto/LingXing/LingXingKongRequest.cs @@ -0,0 +1,10 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.LingXing +{ + public class LingXingKongRequest + { + } +} diff --git a/src/WMS.Web.Core/Dto/LingXing/LingXingSellerResponse.cs b/src/WMS.Web.Core/Dto/LingXing/LingXingSellerResponse.cs new file mode 100644 index 00000000..69ecef32 --- /dev/null +++ b/src/WMS.Web.Core/Dto/LingXing/LingXingSellerResponse.cs @@ -0,0 +1,25 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.LingXing +{ + /// + /// 店铺信息 + /// + public class LingXingSellerResponse + { + public LingXingSellerResponse() { } + /// + /// id + /// + [JsonProperty("sid")] + public string Id { get; set; } + /// + /// name + /// + [JsonProperty("name")] + public string Name { get; set; } + } +} diff --git a/src/WMS.Web.Domain/IService/Public/ILingXingService.cs b/src/WMS.Web.Domain/IService/Public/ILingXingService.cs index 285487b0..121676db 100644 --- a/src/WMS.Web.Domain/IService/Public/ILingXingService.cs +++ b/src/WMS.Web.Domain/IService/Public/ILingXingService.cs @@ -18,6 +18,11 @@ namespace WMS.Web.Domain.IService.Public /// public Task>> GetStock(); /// + /// 获取领星所有仓库 + /// + /// + public Task>> GetSeller(); + /// /// 获取即时库存 /// /// diff --git a/src/WMS.Web.Domain/Services/ProductInventoryService.cs b/src/WMS.Web.Domain/Services/ProductInventoryService.cs index 1a41f023..33697c87 100644 --- a/src/WMS.Web.Domain/Services/ProductInventoryService.cs +++ b/src/WMS.Web.Domain/Services/ProductInventoryService.cs @@ -78,28 +78,36 @@ namespace WMS.Web.Domain.Services List materials = new List(); if (materials_result.IsSuccess) materials = materials_result.Data.ToList(); + //获取店铺 + var sellerList = await _lingXingService.GetSeller(); + //合并 + var group = resInventory.Data.GroupBy(g => (g.StockId, g.SKU, g.SellerId)); List inventoryList = new List(); - foreach (var item in resInventory.Data) + foreach (var item in group) { //如果物料不匹配 过滤 - var m = materials.FirstOrDefault(f => f.Specifications.Equals(item.SKU)); + var m = materials.FirstOrDefault(f => f.Specifications.Equals(item.Key.SKU)); if (m == null) continue; //找仓库 - var l_stock = resStock.Data.FirstOrDefault(f => f.Id == item.StockId); + var l_stock = resStock.Data.FirstOrDefault(f => f.Id == item.Key.StockId); if (l_stock == null) continue; var stock = r.FirstOrDefault(f => f.WarehouseCodeOfLingxing.Equals(l_stock.Name)); if (stock == null) continue; - + //店铺 + var seller = sellerList.Data.FirstOrDefault(f=>f.Id== item.Key.SellerId); + if (seller == null) continue; + var pList = resInventory.Data.Where(w => w.SKU == item.Key.SKU + && w.StockId == item.Key.StockId && w.SellerId == item.Key.SellerId).ToList(); var entity = new ProductInventory() { - Type=ProductInventoryType.LingXing, + Type = ProductInventoryType.LingXing, MaterialNumber = m.MaterialNumber, - Customer = item.SellerId, + Customer = seller.Name, OrgCode = stock.Code, StockCode = stock.ErpOrgCode, - Qty = item.Product_Valid_Num, - BeforeQty = item.Product_Total + Qty = pList.Sum(s => s.Product_Valid_Num), + BeforeQty = pList.Sum(s => s.Product_Total) }; inventoryList.Add(entity); } diff --git a/src/WMS.Web.Domain/Services/Public/LingXingService.cs b/src/WMS.Web.Domain/Services/Public/LingXingService.cs index f01832ca..fd75cfd9 100644 --- a/src/WMS.Web.Domain/Services/Public/LingXingService.cs +++ b/src/WMS.Web.Domain/Services/Public/LingXingService.cs @@ -71,6 +71,7 @@ namespace WMS.Web.Domain.Services.Public /// public async Task>> GetStock() { + //默认获取本地仓库 如果需要海外仓 另外需传参数type var request = new LingXingRequest(); var resUrl = await GetStr("/erp/sc/data/local_inventory/warehouse", request); if (!resUrl.IsSuccess) return Result>.ReFailure(ResultCodes.LingXingUrlError); @@ -80,6 +81,24 @@ namespace WMS.Web.Domain.Services.Public return Result>.ReSuccess(JsonConvert.DeserializeObject>(res.Data.ToString())); } + + /// + /// 获取所有店铺 + /// + /// + /// + public async Task>> GetSeller() + { + var request = new LingXingKongRequest(); + var resUrl = await GetStr("/erp/sc/data/seller/lists", request); + if (!resUrl.IsSuccess) return Result>.ReFailure(ResultCodes.LingXingUrlError); + + var res = await _httpClientService.GetAsync(resUrl.Data); + if (res.Code != 0) return Result>.ReFailure(ResultCodes.LingXingDataError); + + return Result>.ReSuccess(JsonConvert.DeserializeObject>(res.Data.ToString())); + } + /// /// 获取即使库存 /// @@ -301,6 +320,7 @@ namespace WMS.Web.Domain.Services.Public return inParam; } + #endregion } public class LxSignInfo