From 546296bb39ea43be017aaf2f0ab4fba091559cad Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Sat, 25 Nov 2023 13:48:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E5=88=86=E9=A1=B5=E6=8B=89=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/Public/ErpService.cs | 47 ++++++++++++------- 1 file changed, 29 insertions(+), 18 deletions(-) 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}");