diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index 3c003f49..21351cd1 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -382,7 +382,7 @@ namespace WMS.Web.Domain.Services.Public //3.单据类型:标准直接调拨单;这里要注意了-----------测试端的“单据类型ID”和线上的可能不一样;上线的时候要核对下 //5.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 param.FilterString = " FDocumentStatus='C' and FBillTypeID='ce8f49055c5c4782b65463a3f863bb4a'"; - + for (int i = 0; i < stocks.Count(); i++) { if (i == 0) @@ -1012,31 +1012,42 @@ namespace WMS.Web.Domain.Services.Public param.Limit = 10000; //查询条件:备注其中的条件值以金蝶的值为准!!! param.FilterString = ""; - + var list = new List(); //备注:因为供应商数据不是很多,就不能和获取物料一样循环获取;组织这里就获取10000条数据就行了 var beginTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); _logger.LogInformation($"供应商拉取-开始时间:{beginTime}"); + int skip = 0; //4.参数json化 - query.Data = JsonConvert.SerializeObject(param); - var json = JsonConvert.SerializeObject(query); + while (true) + { + //4.1.页码:页码按照金蝶的要求从0开始 + param.StartRow = (Convert.ToInt32(skip) * param.Limit); - //5.请求查询接口并返回数据 - var result_json = await _client.ExecuteBillQueryAsync(json); - var result = JsonConvert.DeserializeObject>>(result_json); + query.Data = JsonConvert.SerializeObject(param); + var json = JsonConvert.SerializeObject(query); + //5.请求查询接口并返回数据 + var result_json = await _client.ExecuteBillQueryAsync(json); + var result = JsonConvert.DeserializeObject>>(result_json); + + if (result == null || result.Count == 0) + break; + + //6.拼装 + foreach (var item in result) + { + var lis = new ErpCustomerDto(); + lis.Id = int.Parse(item[0]); + lis.Number = item[1]; + lis.Name = item[2]; + list.Add(lis); + + } + //4.6页面的叠加 + skip++; + } var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); _logger.LogInformation($"供应商拉取-结束时间:{endTime}"); - //6.拼装 - var list = new List(); - foreach (var item in result) - { - var lis = new ErpCustomerDto(); - lis.Id = int.Parse(item[0]); - lis.Number = item[1]; - lis.Name = item[2]; - list.Add(lis); - - } //5.供应商集合进行缓存 _memoryCache.Set(cache_key, list, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromHours(12))); _logger.LogInformation($"供应商拉取-总条数:{list.Count}");