From 333f0a0c100d64bdb9ab0aa7dc65d5d90a9d5390 Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Wed, 8 Nov 2023 14:13:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 20 ++++++ src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 12 ++++ .../Dto/Erp/Supplier/ErpSupplierDto.cs | 27 +++++++ .../IService/Public/IErpService.cs | 7 ++ .../Services/Public/ErpService.cs | 71 +++++++++++++++++++ src/WMS.Web.Domain/Values/ResultCodes.cs | 1 + 6 files changed, 138 insertions(+) create mode 100644 src/WMS.Web.Core/Dto/Erp/Supplier/ErpSupplierDto.cs diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index d1952857..5fa078fc 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -870,6 +870,26 @@ 业务组织(使用组织) + + + erp供应商基础数据 + + + + + ID + + + + + 编码 + + + + + 名称 + + 盘点单 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index fcdf0d4e..8be9635e 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -1618,6 +1618,12 @@ + + + 供应商 + + + 获取仓库信息 @@ -2420,6 +2426,12 @@ + + + erp:供应商 + + + 获取仓库 diff --git a/src/WMS.Web.Core/Dto/Erp/Supplier/ErpSupplierDto.cs b/src/WMS.Web.Core/Dto/Erp/Supplier/ErpSupplierDto.cs new file mode 100644 index 00000000..d005ae90 --- /dev/null +++ b/src/WMS.Web.Core/Dto/Erp/Supplier/ErpSupplierDto.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.Erp.Supplier +{ + /// + /// erp供应商基础数据 + /// + public class ErpSupplierDto + { + /// + /// ID + /// + public int Id { get; set; } + + /// + /// 编码 + /// + public string Number { get; set; } + + /// + /// 名称 + /// + public string Name { get; set; } + } +} diff --git a/src/WMS.Web.Domain/IService/Public/IErpService.cs b/src/WMS.Web.Domain/IService/Public/IErpService.cs index 399c0b4c..b31974da 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpService.cs @@ -6,6 +6,7 @@ using WMS.Web.Core.Dto.Erp; using WMS.Web.Core.Dto.Erp.Org; using WMS.Web.Core.Dto.Erp.OutStock; using WMS.Web.Core.Dto.Erp.Purchase; +using WMS.Web.Core.Dto.Erp.Supplier; using WMS.Web.Core.Internal.Results; using WMS.Web.Domain.Entitys; @@ -60,6 +61,12 @@ namespace WMS.Web.Domain.IService.Public /// Task> BillQueryForOrg(); + /// + /// 供应商 + /// + /// + Task> BillQueryForSupplier(); + /// /// 获取仓库信息 /// diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index e9c691c0..d596d2e6 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -15,6 +15,7 @@ using WMS.Web.Core.Dto.Erp; using WMS.Web.Core.Dto.Erp.Org; using WMS.Web.Core.Dto.Erp.OutStock; using WMS.Web.Core.Dto.Erp.Purchase; +using WMS.Web.Core.Dto.Erp.Supplier; using WMS.Web.Core.Dto.Erp.TakeStock; using WMS.Web.Core.Internal.Results; using WMS.Web.Domain.Entitys; @@ -318,6 +319,76 @@ namespace WMS.Web.Domain.Services.Public return ResultList.ReFailure(ResultCodes.ErpOrgError); } } + + /// + /// erp:供应商 + /// + /// + public async Task> BillQueryForSupplier() + { + try + { + //1.获取缓存中的物料数据; + var cache_key = "erp_supplier_list"; + var suppliers = _memoryCache.Get>(cache_key); + if (suppliers == null || suppliers.Count == 0) + { + + //2.先登录金蝶-拿到token + var token_result = await this.Init(); + if (!token_result.IsSuccess) + return ResultList.ReFailure(token_result); + + //3.获取金蝶供应商:拼接参数和条件 + var query = new ErpBillQueryDto(token_result.Data); + var param = new ErpBillQueryParamDto(FormIdParam.BD_Supplier.ToString()); + param.FieldKeys = "FSupplierId,FNumber,FName"; + param.Limit = 10000; + //查询条件:备注其中的条件值以金蝶的值为准!!! + param.FilterString = ""; + + //备注:因为供应商数据不是很多,就不能和获取物料一样循环获取;组织这里就获取10000条数据就行了 + var beginTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); + _logger.LogInformation($"供应商拉取-开始时间:{beginTime}"); + //4.参数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); + + 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 ErpSupplierDto(); + 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}"); + return ResultList.ReSuccess(list); + + } + else + { + return ResultList.ReSuccess(suppliers); + } + + } + catch (Exception) + { + return ResultList.ReFailure(ResultCodes.ErpSupplierError); + } + } + /// /// 获取仓库 /// diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs index 04afdc55..8bd65347 100644 --- a/src/WMS.Web.Domain/Values/ResultCodes.cs +++ b/src/WMS.Web.Domain/Values/ResultCodes.cs @@ -36,6 +36,7 @@ namespace WMS.Web.Domain.Values public static ValueTuple ContrastError = (80003, "箱物料对应的采购订单匹配失败,请核对后再试!"); public static ValueTuple ErpOrgError = (80004, "获取Erp相关组织数据失败,请稍候再试!"); + public static ValueTuple ErpSupplierError = (80005, "获取Erp相关供应商数据失败,请稍候再试!"); } }