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