From d88a738a0da6765379109d6c1508c4bb643009eb Mon Sep 17 00:00:00 2001
From: 18942506660 <18942506660@A18942506660>
Date: Thu, 9 Nov 2023 16:04:18 +0800
Subject: [PATCH] =?UTF-8?q?=E7=9B=98=E7=82=B9=E5=8D=95=E5=A2=9E=E5=8A=A0?=
=?UTF-8?q?=E5=AD=90=E4=BB=93=E5=BA=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../TakeStock/TakeStockQueryInfoResponse.cs | 4 +
.../Services/Public/ErpService.cs | 74 +++++++++++--------
.../TakeStockRepositories.cs | 6 ++
3 files changed, 53 insertions(+), 31 deletions(-)
diff --git a/src/WMS.Web.Core/Dto/TakeStock/TakeStockQueryInfoResponse.cs b/src/WMS.Web.Core/Dto/TakeStock/TakeStockQueryInfoResponse.cs
index 8d092964..dee0857a 100644
--- a/src/WMS.Web.Core/Dto/TakeStock/TakeStockQueryInfoResponse.cs
+++ b/src/WMS.Web.Core/Dto/TakeStock/TakeStockQueryInfoResponse.cs
@@ -42,6 +42,10 @@ namespace WMS.Web.Core.Dto.TakeStock
///
public string SubStock { get; set; }
///
+ /// 子仓库
+ ///
+ public string Erp_SubStockCode { get; set; }
+ ///
/// 盘点前数量(wms系统数量)
///
public decimal BeforeQty { get; set; }
diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs
index f00836d1..922a55e5 100644
--- a/src/WMS.Web.Domain/Services/Public/ErpService.cs
+++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs
@@ -92,7 +92,7 @@ namespace WMS.Web.Domain.Services.Public
/// 模糊搜索
/// 单据编号集合精确查找
///
- public async Task> BillQueryForPurchaseInStock(string billNo="", List sourceBillNos = null)
+ public async Task> BillQueryForPurchaseInStock(string billNo = "", List sourceBillNos = null)
{
try
{
@@ -122,7 +122,7 @@ namespace WMS.Web.Domain.Services.Public
//3.单据类型:标准采购订单和标准委外订单
//4.明细关闭状态:正常
//5.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步
- param.FilterString = "FCreateDate>='" + beginTime + "' and FCreateDate<='" + endTime + "' and FDocumentStatus='C' and (FBillTypeID='83d822ca3e374b4ab01e5dd46a0062bd' or FBillTypeID='6d01d059713d42a28bb976c90a121142') and FMRPCloseStatus='A'";
+ param.FilterString = "FCreateDate>='" + beginTime + "' and FCreateDate<='" + endTime + "' and FDocumentStatus='C' and (FBillTypeID='83d822ca3e374b4ab01e5dd46a0062bd' or FBillTypeID='6d01d059713d42a28bb976c90a121142') and FMRPCloseStatus='A'";
param.FilterString = param.FilterString + " and FSOSTOCKID.FNumber in (";
var str = "";
@@ -138,9 +138,9 @@ namespace WMS.Web.Domain.Services.Public
param.FilterString = param.FilterString + str + ")";
//单据编号模糊查询
- if (!string.IsNullOrEmpty(billNo))
+ if (!string.IsNullOrEmpty(billNo))
{
- param.FilterString = param.FilterString + " and FBillNo like '%"+billNo+"%'";
+ param.FilterString = param.FilterString + " and FBillNo like '%" + billNo + "%'";
}
//根据原订单号查询
@@ -272,7 +272,7 @@ namespace WMS.Web.Domain.Services.Public
return ResultList.ReFailure(ResultCodes.ErpMaterialError);
}
-
+
}
@@ -551,34 +551,46 @@ 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 = "FStockFlexDetail_FDetailID,FFlexEntryName,FFlexEntryId,'0'";
- param.Limit = 100000;
- if (!string.IsNullOrEmpty(code))
- param.FilterString = "FNumber='" + code + "'";//FNumber='C'
- 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_substock_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);
+ 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 = "FStockFlexDetail_FDetailID,FFlexEntryName,FFlexEntryId,'0'";
+ param.Limit = 100000;
+ if (!string.IsNullOrEmpty(code))
+ param.FilterString = "FNumber='" + code + "'";//FNumber='C'
+ 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)
+ {
+ 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)
{
@@ -1089,7 +1101,7 @@ namespace WMS.Web.Domain.Services.Public
}
}
-
+
#endregion
}
diff --git a/src/WMS.Web.Repositories/TakeStockRepositories.cs b/src/WMS.Web.Repositories/TakeStockRepositories.cs
index 5e6c6526..114b7707 100644
--- a/src/WMS.Web.Repositories/TakeStockRepositories.cs
+++ b/src/WMS.Web.Repositories/TakeStockRepositories.cs
@@ -166,6 +166,11 @@ namespace WMS.Web.Repositories
if (!materials_result.IsSuccess)
return (new List(), 0);
var materials = materials_result.Data.ToList();
+ //金蝶子仓库
+ var subStock_result = await _erpService.BillQueryForSubStock();
+ if (!subStock_result.IsSuccess)
+ return (new List(), 0);
+ var subStocks = subStock_result.Data.ToList();
var query = _context.TakeStock
//.GroupJoin(_context.TakeStock, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders })
@@ -193,6 +198,7 @@ namespace WMS.Web.Repositories
Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.MaterialId),
Stock = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, s.StockCode),
SubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, _loginRepositories.CompanyId, s.SubStockCode),
+ Erp_SubStockCode= _erpBasicDataExtendService.GetStockName(subStocks, s.Erp_SubStockCode),
BeforeQty = s.BeforeQty,
AfterQty = s.AfterQty,
FinalQty = s.FinalQty,