From af3efb6556110f22ba0d8c1e8e539188eeb0efbc Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Wed, 8 Nov 2023 14:33:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=91=E8=9D=B6=E4=BB=93=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml | 10 +-- src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 45 ++++++++++ src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 53 ++++++++++++ .../Public/IErpBasicDataExtendService.cs | 24 ++++++ .../Public/ErpBasicDataExtendService.cs | 36 ++++++++ .../Services/Public/ErpService.cs | 83 ++++++++++++------- src/WMS.Web.Domain/Values/ResultCodes.cs | 1 + 7 files changed, 216 insertions(+), 36 deletions(-) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml index 443d7192..7756dacf 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml @@ -44,7 +44,7 @@ - 保存 + 改箱保存-PDA @@ -194,7 +194,7 @@ - 保存 + 移箱保存-PDA @@ -213,7 +213,7 @@ - 保存(出库) + 出库保存(出库)-PDA @@ -253,7 +253,7 @@ - 根据出库单任务编号搜索 + 根据出库单任务编号搜索-PDA出库 @@ -318,7 +318,7 @@ - 保存 + 盘点保存-PDA diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 5fa078fc..0b09ce9d 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -2325,6 +2325,51 @@ 老ops箱信息 + + + 对应老OPS的箱ID + + + + + 箱编号(老OPS生成的箱号) + + + + + 供应商Id + + + + + 组织Id + + + + + 创建时间(对应老OPS的创建时间) + + + + + 明细 + + + + + 物料ID + + + + + 数量(装箱数量) + + + + + 序列号集 + + 根据单号搜索出库单任务信息 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index e2cf03ae..29afc263 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -1572,6 +1572,30 @@ + + + 获取仓库名称 + + + + + + + + 获取仓库名称 + + + + + + + + 获取仓库编码 + + + + + erp:单据查询-采购入库单 @@ -2172,6 +2196,11 @@ + + + 箱服务信息 + + 改箱 移箱服务 @@ -2413,6 +2442,30 @@ + + + 获取仓库名称 + + + + + + + + 获取仓库名称 + + + + + + + + 获取仓库编码 + + + + + erp数据交互服务 diff --git a/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs b/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs index 185bde2d..de5a657d 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs @@ -58,5 +58,29 @@ namespace WMS.Web.Domain.IService.Public /// /// string GetSupplierName(List erpSuppliers, int supplierId); + + /// + /// 获取仓库名称 + /// + /// + /// + /// + string GetStockName(List erpStocks, int stockId); + + /// + /// 获取仓库名称 + /// + /// + /// + /// + string GetStockName(List erpStocks, string code); + + /// + /// 获取仓库编码 + /// + /// + /// + /// + string GetStockCode(List erpStocks, int stockId); } } diff --git a/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs b/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs index 45dca39f..4f9a5a7b 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs @@ -100,5 +100,41 @@ namespace WMS.Web.Domain.Services.Public var supplier = erpSuppliers.Where(x => x.Id == supplierId).FirstOrDefault(); return supplier == null ? "" : supplier.Name; } + + /// + /// 获取仓库名称 + /// + /// + /// + /// + public string GetStockName(List erpStocks, int stockId) + { + var stock = erpStocks.Where(x => x.Id == stockId).FirstOrDefault(); + return stock == null ? "" : stock.Name; + } + + /// + /// 获取仓库名称 + /// + /// + /// + /// + public string GetStockName(List erpStocks, string code) + { + var stock = erpStocks.Where(x => x.Code == code).FirstOrDefault(); + return stock == null ? "" : stock.Name; + } + + /// + /// 获取仓库编码 + /// + /// + /// + /// + public string GetStockCode(List erpStocks, int stockId) + { + var stock = erpStocks.Where(x => x.Id == stockId).FirstOrDefault(); + return stock == null ? "" : stock.Code; + } } } diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index d596d2e6..c9a20970 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -200,7 +200,7 @@ namespace WMS.Web.Domain.Services.Public //2.禁用状态:A否,B是 //3.使用组织:只查询“深圳市元创时代科技有限公司”这个组织;组织ID=100008--固定值查询(测试端和正式是一样的) param.FilterString = "FDocumentStatus='C' and FForbidStatus='A' and FUseOrgId=100008"; - param.OrderString = "FCreateDate ASC"; + param.OrderString = "FCreateDate ASC"; //4.循环拿金蝶数据 bool isHave = true; @@ -215,13 +215,13 @@ namespace WMS.Web.Domain.Services.Public //4.2.参数json化 query.Data = JsonConvert.SerializeObject(param); var json = JsonConvert.SerializeObject(query); - + //4.3.请求查询接口并返回数据 var result_json = await _client.ExecuteBillQueryAsync(json); var result = JsonConvert.DeserializeObject>>(result_json); //4.4.判断数据是否全部拉取完成:并停止循环的条件 if (result == null || result.Count == 0) - isHave = false; + isHave = false; //4.5.拼装 foreach (var item in result) { @@ -244,11 +244,11 @@ namespace WMS.Web.Domain.Services.Public _logger.LogInformation($"物料拉取-总条数:{erp_materials_list.Count}"); return ResultList.ReSuccess(erp_materials_list); } - else + else { return ResultList.ReSuccess(materials); } - + } /// @@ -324,11 +324,11 @@ namespace WMS.Web.Domain.Services.Public /// erp:供应商 /// /// - public async Task> BillQueryForSupplier() + public async Task> BillQueryForSupplier() { try { - //1.获取缓存中的物料数据; + //1.获取缓存中的供应商数据; var cache_key = "erp_supplier_list"; var suppliers = _memoryCache.Get>(cache_key); if (suppliers == null || suppliers.Count == 0) @@ -371,7 +371,7 @@ namespace WMS.Web.Domain.Services.Public list.Add(lis); } - //5.物料集合进行缓存 + //5.供应商集合进行缓存 _memoryCache.Set(cache_key, list, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromHours(12))); _logger.LogInformation($"供应商拉取-总条数:{list.Count}"); return ResultList.ReSuccess(list); @@ -397,36 +397,57 @@ namespace WMS.Web.Domain.Services.Public { try { - var token_result = await this.Init(); - if (!token_result.IsSuccess) - return ResultList.ReFailure(token_result); - var query = new ErpBillQueryDto(token_result.Data); - var param = new ErpBillQueryParamDto(FormIdParam.BD_STOCK.ToString()); - param.FieldKeys = "FStockId,FName,FNumber,FUseOrgId"; - param.FilterString = "";//FOrgID=100008 - query.Data = JsonConvert.SerializeObject(param); - var json = JsonConvert.SerializeObject(query); - - var result_json = await _client.ExecuteBillQueryAsync(json); - var result = JsonConvert.DeserializeObject>>(result_json); - - var list = new List(); - foreach (var item in result) + //1.获取缓存中的仓库数据; + var cache_key = "erp_supplier_list"; + var stocks = _memoryCache.Get>(cache_key); + if (stocks == null || stocks.Count == 0) { - var lis = new ErpStockDto(); - lis.Id = int.Parse(item[0]); - lis.Name = item[1]; - lis.Code = item[2]; - lis.OrgId = Convert.ToInt32(item[3]); - list.Add(lis); + //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_STOCK.ToString()); + param.FieldKeys = "FStockId,FName,FNumber,FUseOrgId"; + 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); + //6.拼装 + var list = new List(); + foreach (var item in result) + { + var lis = new ErpStockDto(); + lis.Id = int.Parse(item[0]); + lis.Name = item[1]; + lis.Code = item[2]; + lis.OrgId = Convert.ToInt32(item[3]); + 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(stocks); } - return ResultList.ReSuccess(list); } catch (Exception) { - return ResultList.ReFailure("错误", 10002); + return ResultList.ReFailure(ResultCodes.ErpStockError); } } /// diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs index 8bd65347..d4df7cca 100644 --- a/src/WMS.Web.Domain/Values/ResultCodes.cs +++ b/src/WMS.Web.Domain/Values/ResultCodes.cs @@ -37,6 +37,7 @@ namespace WMS.Web.Domain.Values public static ValueTuple ErpOrgError = (80004, "获取Erp相关组织数据失败,请稍候再试!"); public static ValueTuple ErpSupplierError = (80005, "获取Erp相关供应商数据失败,请稍候再试!"); + public static ValueTuple ErpStockError = (80005, "获取Erp相关仓库数据失败,请稍候再试!"); } }