diff --git a/src/WMS.Web.Domain/IService/Public/IErpInventoryService.cs b/src/WMS.Web.Domain/IService/Public/IErpInventoryService.cs index 65f01a97..b347db5f 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpInventoryService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpInventoryService.cs @@ -9,6 +9,6 @@ namespace WMS.Web.Domain.IService.Public { public interface IErpInventoryService { - Task>> GetInventory(string stockCodes); + Task>> GetInventory(List stockCodes); } } diff --git a/src/WMS.Web.Domain/Services/ProductInventoryService.cs b/src/WMS.Web.Domain/Services/ProductInventoryService.cs index a8926ba3..e8bd3d92 100644 --- a/src/WMS.Web.Domain/Services/ProductInventoryService.cs +++ b/src/WMS.Web.Domain/Services/ProductInventoryService.cs @@ -62,14 +62,14 @@ namespace WMS.Web.Domain.Services { //获取单点配置 var r = await _basicsRepositories.GetUcStockByHeadOfficeAsync("", 1); - r = r.Where(w => w.Code.Equals("CK001")).ToList(); + //r = r.Where(w => w.Code.Equals("CK001")).ToList(); var codes = r.Where(w => w.ManagementSystem == 1 || w.ManagementSystem == 4).Select(s => (s.Code, s.ErpOrgCode)).ToList(); if (codes.Count() <= 0) return Result.ReSuccess(); - var str = string.Join(",", codes.Select(s => s.Code).ToList()); + //var str = string.Join(",", codes.Select(s => s.Code).ToList()); - var res = await _erpInventoryService.GetInventory(str); + var res = await _erpInventoryService.GetInventory(codes.Select(s => s.Code).ToList()); _logger.LogInformation($"拉去金蝶数据结果:{res.IsSuccess} {res.Message} {res.Data.Count()}"); if (!res.IsSuccess) return res; //过滤掉不符合要求的组织和仓库组合 diff --git a/src/WMS.Web.Domain/Services/Public/ErpInventoryService.cs b/src/WMS.Web.Domain/Services/Public/ErpInventoryService.cs index 50ba3a60..4cf1ed93 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpInventoryService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpInventoryService.cs @@ -45,53 +45,57 @@ namespace WMS.Web.Domain.Services.Public var iResult = JObject.Parse(response)["LoginResultType"].Value(); return iResult == 1 ? true : false; } - public async Task>> GetInventory(string stockCodes) + public async Task>> GetInventory(List stockCodes) { List list = new List(); HttpClientEx httpClient = new HttpClientEx(); var isSuccess = Login(httpClient); string baseUrl = _erpOptions.EndpointAddress.Replace("/ERPGW.asmx", ""); httpClient.Url = string.Format("{0}/Kingdee.K3.SCM.WebApi.ServicesStub.InventoryQueryService.GetInventoryData.common.kdsvc", baseUrl); - List Parameters = new List(); - var model = new InventoryParamModel(); - model.fstocknumbers = stockCodes; - //model.fmaterialnumbers = "G01-11-572474"; - model.isshowauxprop = true; - model.isshowstockloc = true; - model.pageindex = 1; - model.pagerows = 10000; - Parameters.Add(model); - httpClient.Content = JsonConvert.SerializeObject(Parameters); - _logger.LogInformation($"1.开始进行连接 {stockCodes}"); - string content = httpClient.AsyncRequest(); - _logger.LogInformation($"金蝶返回数据{content}"); - JObject resData = JObject.Parse(content); - - if (resData["success"].ToString().ToLower() != "true") - return Result>.ReFailure(ResultCodes.Erp_Inventory_Error); - - string json = resData["data"].ToString(); - var datas = JsonConvert.DeserializeObject>(json); - list.AddRange(datas); - - int num = Convert.ToInt32(resData["rowcount"]) / 10000; - for (int i = 1; i <= num; i++) + foreach (var code in stockCodes) { - model.pageindex++; + List Parameters = new List(); + var model = new InventoryParamModel(); + model.fstocknumbers = code; + //model.fmaterialnumbers = "G01-11-572474"; + model.isshowauxprop = true; + model.isshowstockloc = true; + model.pageindex = 1; + model.pagerows = 10000; + Parameters.Add(model); httpClient.Content = JsonConvert.SerializeObject(Parameters); - - content = httpClient.AsyncRequest(); - _logger.LogInformation($"金蝶返回数据{content}"); - resData = JObject.Parse(content); + _logger.LogInformation($"1.开始进行连接 {code}"); + string content = httpClient.AsyncRequest(); + //_logger.LogInformation($"金蝶返回数据{content}"); + JObject resData = JObject.Parse(content); if (resData["success"].ToString().ToLower() != "true") return Result>.ReFailure(ResultCodes.Erp_Inventory_Error); - json = resData["data"].ToString(); - datas = JsonConvert.DeserializeObject>(json); + string json = resData["data"].ToString(); + var datas = JsonConvert.DeserializeObject>(json); list.AddRange(datas); + + int num = Convert.ToInt32(resData["rowcount"]) / 10000; + for (int i = 1; i <= num; i++) + { + model.pageindex++; + + httpClient.Content = JsonConvert.SerializeObject(Parameters); + + content = httpClient.AsyncRequest(); + //_logger.LogInformation($"金蝶返回数据{content}"); + resData = JObject.Parse(content); + + if (resData["success"].ToString().ToLower() != "true") + return Result>.ReFailure(ResultCodes.Erp_Inventory_Error); + + json = resData["data"].ToString(); + datas = JsonConvert.DeserializeObject>(json); + list.AddRange(datas); + } } var blist = list.Where(w => w.Qty > 0 || w.BeforeQty > 0).ToList();