From 578ff5113716c95c774d96d31677da4d4cfd286a Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Tue, 2 Jan 2024 16:55:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/Controllers/TestController.cs | 4 +++- src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 2 +- src/WMS.Web.Core/Dto/Erp/ErpInventoryDto.cs | 4 ++-- src/WMS.Web.Domain/IService/Public/IErpService.cs | 2 +- src/WMS.Web.Domain/Services/Public/ErpService.cs | 15 ++++++++------- src/WMS.Web.Domain/Services/TakeStockService.cs | 11 +++++++---- 6 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/WMS.Web.Api/Controllers/TestController.cs b/src/WMS.Web.Api/Controllers/TestController.cs index 33b9626c..47be0737 100644 --- a/src/WMS.Web.Api/Controllers/TestController.cs +++ b/src/WMS.Web.Api/Controllers/TestController.cs @@ -73,7 +73,9 @@ namespace WMS.Web.Api.Controllers //var entity=await _takeStockRepositories.GetEntityList(new List() {2 }); //var r= await _takeStockService.Loss_Profit(entity.First()); //var list = await GetList(); - //var c = await _erpService.BillQueryForInventory("G03-60-551495", "101", "12485666"); + List<(string materialNumber, string orgCode, string stockCode)> request = new List<(string materialNumber, string orgCode, string stockCode)>(); + request.Add(("G01-17-556547", "101", "CK003")); + var c = await _erpService.BillQueryForInventory(request); //var c = await _erpService.BillQueryForAssembledAppOutStock_Assembly(new List() { "ZZCX003061" }, DateTime.Now.AddDays(-10)); //var bc2 = await _erpService.BillQueryForDeliveryNoticeOutStock(new List() { "FHTZD8022232" }, DateTime.Now.AddDays(-10)); //var bc = await _erpService.BillQueryForTransferOutOutStock(null, DateTime.Now.AddDays(-10)); diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 90d9f10a..0b25622f 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -3095,7 +3095,7 @@ - + 及时库存 diff --git a/src/WMS.Web.Core/Dto/Erp/ErpInventoryDto.cs b/src/WMS.Web.Core/Dto/Erp/ErpInventoryDto.cs index 25ebba3c..147be53d 100644 --- a/src/WMS.Web.Core/Dto/Erp/ErpInventoryDto.cs +++ b/src/WMS.Web.Core/Dto/Erp/ErpInventoryDto.cs @@ -7,9 +7,9 @@ namespace WMS.Web.Core.Dto.Erp public class ErpInventoryDto { /// - /// 物料ID + /// 物料编码 /// - public int MaterialId { get; set; } + public string MaterialNumber { get; set; } /// /// 组织编码 /// diff --git a/src/WMS.Web.Domain/IService/Public/IErpService.cs b/src/WMS.Web.Domain/IService/Public/IErpService.cs index 0f2fbd9f..9ed3952f 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpService.cs @@ -147,7 +147,7 @@ namespace WMS.Web.Domain.IService.Public /// 及时库存 /// /// - Task> BillQueryForInventory(List<(int materialId, string orgCode, string stockCode)> request); + Task> BillQueryForInventory(List<(string materialNumber, string orgCode, string stockCode)> request); //同步数据(保存提交审核) Task> Save(T dto, string formId); //提交 diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index aa1c1bca..5314be50 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -2133,7 +2133,7 @@ namespace WMS.Web.Domain.Services.Public } } - public async Task> BillQueryForInventory(List<(int materialId, string orgCode, string stockCode)> request) + public async Task> BillQueryForInventory(List<(string materialNumber, string orgCode, string stockCode)> request) { try { @@ -2146,15 +2146,16 @@ namespace WMS.Web.Domain.Services.Public //3.获取金蝶采购订单:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); var param = new ErpBillQueryParamDto(FormIdParam.STK_Inventory.ToString()); - param.FieldKeys = "FBASEQTY,FMATERIALID,FSTOCKORGID.FNumber,FSTOCKID.FNumber"; + param.FieldKeys = "FBASEQTY,FMATERIALID.FNumber,FSTOCKORGID.FNumber,FSTOCKID.FNumber"; param.Limit = 100; //param.FilterString = $"FSTOCKORGID.FNumber='{request[0].orgCode}' and FSTOCKID.FNumber='{request[0].stockCode}'"; + //param.FilterString = $"FMATERIALID.FNumber='G01-17-556547'"; for (int i = 0; i < request.Count(); i++) { if (i == 0) - param.FilterString = $"(FMATERIALID={request[0].materialId} and FSTOCKORGID.FNumber='{request[0].orgCode}' and FSTOCKID.FNumber='{request[0].stockCode}')"; + param.FilterString = $"(FMATERIALID.FNumber='{request[0].materialNumber}' and FSTOCKORGID.FNumber='{request[0].orgCode}' and FSTOCKID.FNumber='{request[0].stockCode}')"; else - param.FilterString += $" or (FMATERIALID={request[i].materialId} and FSTOCKORGID.FNumber='{request[i].orgCode}' and FSTOCKID.FNumber='{request[i].stockCode}')"; + param.FilterString += $" or (FMATERIALID.FNumber='{request[i].materialNumber}' and FSTOCKORGID.FNumber='{request[i].orgCode}' and FSTOCKID.FNumber='{request[i].stockCode}')"; } query.Data = JsonConvert.SerializeObject(param); var json = JsonConvert.SerializeObject(query); @@ -2167,14 +2168,14 @@ namespace WMS.Web.Domain.Services.Public foreach (var item in result) { - var lis = erp_list.FirstOrDefault(f => f.MaterialId == Convert.ToInt32(item[1]) + var lis = erp_list.FirstOrDefault(f => f.MaterialNumber.Equals(item[1]) && f.OrgCode.Equals(item[2]) && f.StockCode.Equals(item[3])); if (lis == null) { - lis.Qty = Convert.ToInt32(item[0]); - lis.MaterialId = Convert.ToInt32(item[1]); + lis.Qty = Convert.ToDecimal(item[0]); + lis.MaterialNumber = item[1]; lis.OrgCode = item[2]; lis.StockCode = item[3]; erp_list.Add(lis); diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index 6722b054..74e46b4d 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -204,8 +204,11 @@ namespace WMS.Web.Domain.Services if (!materials_result.IsSuccess) return Result.ReFailure(ResultCodes.ErpMaterialError); var materials = materials_result.Data.ToList(); - List<(int materialId, string orgCode, string stockCode)> requestInventory = new List<(int materialId, string orgCode, string stockCode)>(); - entity.Details.ForEach(f => requestInventory.Add((f.MaterialId, f.OrgCode, f.StockCode))); + List<(string materialNumber, string orgCode, string stockCode)> requestInventory = new List<(string materialNumber, string orgCode, string stockCode)>(); + foreach (var d in entity.Details) + { + requestInventory.Add((_erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId), d.OrgCode, d.StockCode)); + }; var res_s = await sc_erpService.BillQueryForInventory(requestInventory); if (!res_s.IsSuccess) { @@ -218,7 +221,8 @@ namespace WMS.Web.Domain.Services List detils = new List(); foreach (var d in entity.Details) { - var erpInventory = res_s.Data.FirstOrDefault(f => f.MaterialId == d.MaterialId && f.StockCode == d.StockCode && f.OrgCode == d.OrgCode); + var number = _erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId); + var erpInventory = res_s.Data.FirstOrDefault(f => f.MaterialNumber == number && f.StockCode == d.StockCode && f.OrgCode == d.OrgCode); decimal qty = erpInventory?.Qty ?? 0; var unitNumber = _erpBasicDataExtendService.GetMaterialUnitNumber(materials, d.MaterialId); detils.Add(new ErpTakeStockDetailsSaveDto() @@ -235,7 +239,6 @@ namespace WMS.Web.Domain.Services LossQty = entity.ResultType == TakeStockType.Loss ? d.FinalQty : 0, Fnote = d.Remark }); - requestInventory.Add((d.MaterialId, d.OrgCode, d.StockCode)); } ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto() {