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