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相关供应商数据失败,请稍候再试!");
}
}