From 0ba210b62ab4ee89f1b78e3c21fe721189554bb8 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Wed, 20 Dec 2023 16:58:22 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E7=9B=98=E7=82=B9=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=90=8C=E6=AD=A5=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 5 +++++ .../Dto/TakeStock/TakeStockQueryRequest.cs | 4 ++++ src/WMS.Web.Repositories/TakeStockRepositories.cs | 11 +++++++++++ 3 files changed, 20 insertions(+) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 076fcf85..f69e1fe0 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -4817,6 +4817,11 @@ 单据编号 + + + 同步成功或者失败 null 就是未同步 + + 盘点日期-开始 diff --git a/src/WMS.Web.Core/Dto/TakeStock/TakeStockQueryRequest.cs b/src/WMS.Web.Core/Dto/TakeStock/TakeStockQueryRequest.cs index 5626eea9..973d2371 100644 --- a/src/WMS.Web.Core/Dto/TakeStock/TakeStockQueryRequest.cs +++ b/src/WMS.Web.Core/Dto/TakeStock/TakeStockQueryRequest.cs @@ -22,6 +22,10 @@ namespace WMS.Web.Core.Dto.TakeStock /// public string BillNo { get; set; } /// + /// 同步成功或者失败 null 就是未同步 + /// + public int? SuccessSync { get; set; } + /// /// 盘点日期-开始 /// public DateTime? DateBeginDate { get; set; } = null; diff --git a/src/WMS.Web.Repositories/TakeStockRepositories.cs b/src/WMS.Web.Repositories/TakeStockRepositories.cs index 8ed5beac..d1478da0 100644 --- a/src/WMS.Web.Repositories/TakeStockRepositories.cs +++ b/src/WMS.Web.Repositories/TakeStockRepositories.cs @@ -188,6 +188,17 @@ namespace WMS.Web.Repositories var split = dto.StockCode.Split("_$"); query = query.Where(w => w.detail.StockCode == split[0] && w.detail.OrgCode == split[1]); } + if (dto.SuccessSync != null) + { + if ((SyncStatus)dto.SuccessSync == SyncStatus.Success) + query = query.Where(w => w.order.SuccessSync == SyncStatus.Success); + else if ((SyncStatus)dto.SuccessSync == SyncStatus.SyncIng) + query = query.Where(w => w.order.SuccessSync == SyncStatus.SyncIng); + else if ((SyncStatus)dto.SuccessSync == SyncStatus.Fail) + query = query.Where(w => w.order.SuccessSync == SyncStatus.Fail + || w.order.SuccessSync == SyncStatus.SubmitFail + || w.order.SuccessSync == SyncStatus.CheckFail); + } if (dto.DateBeginDate != null) query = query.Where(w => w.order.Date >= dto.DateBeginDate); if (dto.DateEndDate != null) From c71b06ca3a9bc36eda23d5efcae50bba3b729a8c Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Wed, 20 Dec 2023 17:20:39 +0800 Subject: [PATCH 2/4] =?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 | 9 +++--- .../Services/OutStockService.cs | 22 +++++++++------ .../Services/TakeStockService.cs | 28 +++++++++---------- 3 files changed, 33 insertions(+), 26 deletions(-) diff --git a/src/WMS.Web.Api/Controllers/TestController.cs b/src/WMS.Web.Api/Controllers/TestController.cs index 5f34ac44..c7635af2 100644 --- a/src/WMS.Web.Api/Controllers/TestController.cs +++ b/src/WMS.Web.Api/Controllers/TestController.cs @@ -8,6 +8,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.ServiceModel; +using System.Threading; using System.Threading.Tasks; using WMS.Web.Core.Dto; using WMS.Web.Core.Dto.Erp.Customer; @@ -56,10 +57,10 @@ namespace WMS.Web.Api.Controllers [Route("hj")] public async Task TestHJ() { - // OperateRequest dto = new OperateRequest(); - // dto.Ids.Add(71); - // var result = await this._erpService.BillQueryForSubStock(); - //var ss= result.Data.Where(w => w.Name.Equals("Fares")).ToList(); + // OperateRequest dto = new OperateRequest(); + // dto.Ids.Add(71); + // var result = await this._erpService.BillQueryForSubStock(); + //var ss= result.Data.Where(w => w.Name.Equals("Fares")).ToList(); //await _outStockService.Sync(dto, null); //var b = await _takeStockService.Sync(dto); // List list = null; diff --git a/src/WMS.Web.Domain/Services/OutStockService.cs b/src/WMS.Web.Domain/Services/OutStockService.cs index d1625507..1671d69e 100644 --- a/src/WMS.Web.Domain/Services/OutStockService.cs +++ b/src/WMS.Web.Domain/Services/OutStockService.cs @@ -197,10 +197,7 @@ namespace WMS.Web.Domain.Services if (entity.Type == OutStockType.Sal) { - Task.Run(async () => - { - await SalOutStock(entity, loginInfo); - }).GetAwaiter().GetResult(); + await Sync(entity, loginInfo); } return Result.ReSuccess(); @@ -215,13 +212,22 @@ namespace WMS.Web.Domain.Services var list = await _outStockRepositories.GetEntityList(dto.Ids); foreach (var entity in list) { - Task.Run(async () => - { - await SalOutStock(entity, loginInfo); - }).GetAwaiter().GetResult(); + await Sync(entity, loginInfo); } return Result.ReSuccess(); } + + private Task Sync(OutStock entity, LoginInDto loginInfo) + { + Task.Run(async () => + { + var res = await SalOutStock(entity, loginInfo); + if (!res.IsSuccess) + _logger.LogError($"出库单同步失败:{res.Message}"); + }); + return Task.CompletedTask; + } + /// /// 同步金蝶销售出库 /// diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index 3fda250d..5ceb2101 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -137,12 +137,7 @@ namespace WMS.Web.Domain.Services //同步金蝶 foreach (var entity in list) { - Task.Run(async () => - { - var res = await Loss_Profit(entity); - if (!res.IsSuccess) - _logger.LogError($"盘点同步失败:{res.Message}"); - }).GetAwaiter().GetResult(); + await Sync(entity); } return Result.ReSuccess(); @@ -155,20 +150,25 @@ namespace WMS.Web.Domain.Services /// public async Task Sync(OperateRequest dto) { - var list = await _takeStockRepositories.GetEntityList(dto.Ids); + var list = _takeStockRepositories.GetEntityList(dto.Ids).GetAwaiter().GetResult(); list = list.Where(w => w.SuccessSync == SyncStatus.Fail || w.SuccessSync == SyncStatus.SyncIng).ToList(); foreach (var entity in list) { - Task.Run(async () => - { - var res = await Loss_Profit(entity); - if (!res.IsSuccess) - _logger.LogError($"盘点同步失败:{res.Message}"); - }).GetAwaiter().GetResult(); + await Sync(entity); } - return Result.ReSuccess(); } + + private Task Sync(TakeStock entity) + { + Task.Run(async () => + { + var res = await Loss_Profit(entity); + if (!res.IsSuccess) + _logger.LogError($"盘点同步失败:{res.Message}"); + }); + return Task.CompletedTask; + } /// /// 盘盈盘亏同步金蝶 /// From 93c533d86d4709b327d044297fa639ae4e889797 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Wed, 20 Dec 2023 17:31:36 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/OutStockService.cs | 28 ++++++++----------- .../Services/TakeStockService.cs | 28 ++++++++----------- 2 files changed, 23 insertions(+), 33 deletions(-) diff --git a/src/WMS.Web.Domain/Services/OutStockService.cs b/src/WMS.Web.Domain/Services/OutStockService.cs index 1671d69e..9bdbf55d 100644 --- a/src/WMS.Web.Domain/Services/OutStockService.cs +++ b/src/WMS.Web.Domain/Services/OutStockService.cs @@ -197,7 +197,9 @@ namespace WMS.Web.Domain.Services if (entity.Type == OutStockType.Sal) { - await Sync(entity, loginInfo); + OperateRequest oRequest = new OperateRequest(); + oRequest.Ids.Add(entity.Id); + await Sync(oRequest, loginInfo); } return Result.ReSuccess(); @@ -207,25 +209,19 @@ namespace WMS.Web.Domain.Services /// /// /// - public async Task Sync(OperateRequest dto, LoginInDto loginInfo) + public Task Sync(OperateRequest dto, LoginInDto loginInfo) { - var list = await _outStockRepositories.GetEntityList(dto.Ids); + var list = _outStockRepositories.GetEntityList(dto.Ids).GetAwaiter().GetResult(); foreach (var entity in list) { - await Sync(entity, loginInfo); + Task.Run(async () => + { + var res = await SalOutStock(entity, loginInfo); + if (!res.IsSuccess) + _logger.LogError($"出库单同步失败:{res.Message}"); + }); } - return Result.ReSuccess(); - } - - private Task Sync(OutStock entity, LoginInDto loginInfo) - { - Task.Run(async () => - { - var res = await SalOutStock(entity, loginInfo); - if (!res.IsSuccess) - _logger.LogError($"出库单同步失败:{res.Message}"); - }); - return Task.CompletedTask; + return Task.FromResult(Result.ReSuccess()); } /// diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index 5ceb2101..aa42fb88 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -135,10 +135,9 @@ namespace WMS.Web.Domain.Services return Result.ReFailure(ResultCodes.DateWriteError); //同步金蝶 - foreach (var entity in list) - { - await Sync(entity); - } + OperateRequest oRequest = new OperateRequest(); + oRequest.Ids = list.Select(s => s.Id).ToList(); + await Sync(oRequest); return Result.ReSuccess(); } @@ -148,27 +147,22 @@ namespace WMS.Web.Domain.Services /// /// /// - public async Task Sync(OperateRequest dto) + public Task Sync(OperateRequest dto) { var list = _takeStockRepositories.GetEntityList(dto.Ids).GetAwaiter().GetResult(); list = list.Where(w => w.SuccessSync == SyncStatus.Fail || w.SuccessSync == SyncStatus.SyncIng).ToList(); foreach (var entity in list) { - await Sync(entity); + Task.Run(async () => + { + var res = await Loss_Profit(entity); + if (!res.IsSuccess) + _logger.LogError($"盘点同步失败:{res.Message}"); + }); } - return Result.ReSuccess(); + return Task.FromResult(Result.ReSuccess()); } - private Task Sync(TakeStock entity) - { - Task.Run(async () => - { - var res = await Loss_Profit(entity); - if (!res.IsSuccess) - _logger.LogError($"盘点同步失败:{res.Message}"); - }); - return Task.CompletedTask; - } /// /// 盘盈盘亏同步金蝶 /// From 4df9e97289b5f5b58c58d96513f81c9699d7dfd2 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Wed, 20 Dec 2023 17:52:14 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/SysConfigController.cs | 2 +- src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 35 ++++++++++++++++++ src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 16 ++++++++ .../Dto/Erp/Stock/ErpSubStockDto.cs | 37 +++++++++++++++++++ .../Public/IErpBasicDataExtendService.cs | 8 ++++ .../IService/Public/IErpService.cs | 2 +- .../Public/ErpBasicDataExtendService.cs | 15 +++++++- .../Services/Public/ErpService.cs | 19 +++++----- .../TakeStockRepositories.cs | 2 +- 9 files changed, 122 insertions(+), 14 deletions(-) create mode 100644 src/WMS.Web.Core/Dto/Erp/Stock/ErpSubStockDto.cs diff --git a/src/WMS.Web.Api/Controllers/SysConfigController.cs b/src/WMS.Web.Api/Controllers/SysConfigController.cs index ec0b0af1..f358b3db 100644 --- a/src/WMS.Web.Api/Controllers/SysConfigController.cs +++ b/src/WMS.Web.Api/Controllers/SysConfigController.cs @@ -227,7 +227,7 @@ namespace WMS.Web.Api.Controllers return Result>.ReSuccess(list); var subs = await _erpService.BillQueryForSubStock(); - var res = subs.Data.Where(w => w.OrgCode.Equals(orgCode)); + var res = subs.Data.Where(w => w.OrgCode.Equals(orgCode)&&w.StockCode.Equals(number)); if (!string.IsNullOrEmpty(name)) res = res.Where(w => w.Name.Contains(name)); list = res.Select(s => new UcStockResponse() diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index f69e1fe0..35dd46cb 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -1151,6 +1151,41 @@ 业务组织(使用组织)编码 + + + 子仓库信息 + + + + + id + + + + + 编码 + + + + + 名字 + + + + + 业务组织(使用组织) + + + + + 业务组织(使用组织)编码 + + + + + 仓库编码 + + erp供应商基础数据 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index c00ebab3..af2e95bf 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -2886,6 +2886,14 @@ + + + 获取子仓库名称 + + + + + 查单据类型的值 @@ -4303,6 +4311,14 @@ + + + 子仓库 + + + + + erp数据交互服务 diff --git a/src/WMS.Web.Core/Dto/Erp/Stock/ErpSubStockDto.cs b/src/WMS.Web.Core/Dto/Erp/Stock/ErpSubStockDto.cs new file mode 100644 index 00000000..d7f17344 --- /dev/null +++ b/src/WMS.Web.Core/Dto/Erp/Stock/ErpSubStockDto.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.Erp +{ + /// + /// 子仓库信息 + /// + public class Erp_SubStockDto + { + /// + /// id + /// + public int Id { get; set; } + /// + /// 编码 + /// + public string Code { get; set; } + /// + /// 名字 + /// + public string Name { get; set; } + /// + /// 业务组织(使用组织) + /// + public int OrgId { get; set; } + /// + /// 业务组织(使用组织)编码 + /// + public string OrgCode { get; set; } + /// + /// 仓库编码 + /// + public string StockCode { get; set; } + } +} diff --git a/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs b/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs index 418852f7..24cf4666 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs @@ -118,5 +118,13 @@ namespace WMS.Web.Domain.IService.Public /// /// string GetStockCode(List erpStocks, int stockId); + + /// + /// 获取子仓库名称 + /// + /// + /// + /// + string GetSubStockName(List erpStocks, string code); } } diff --git a/src/WMS.Web.Domain/IService/Public/IErpService.cs b/src/WMS.Web.Domain/IService/Public/IErpService.cs index b392f1eb..5b2bc28c 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpService.cs @@ -142,7 +142,7 @@ namespace WMS.Web.Domain.IService.Public /// 获取仓位信息信息 根据仓库编码 /// /// - Task> BillQueryForSubStock(); + Task> BillQueryForSubStock(); //同步数据(保存提交审核) Task> Save(T dto, string formId); //提交 diff --git a/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs b/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs index ba241597..23002527 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs @@ -267,7 +267,18 @@ namespace WMS.Web.Domain.Services.Public var stock = erpStocks.Where(x => x.Id == stockId).FirstOrDefault(); return stock == null ? "" : stock.Code; } - - + /// + /// 子仓库 + /// + /// + /// + /// + public string GetSubStockName(List erpStocks, string code) + { + if (erpStocks == null || erpStocks.Count == 0) + return ""; + var stock = erpStocks.Where(x => x.Code == code).FirstOrDefault(); + return stock == null ? "" : stock.Name; + } } } diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index baac7eb6..3c4f1a90 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -1240,21 +1240,21 @@ namespace WMS.Web.Domain.Services.Public /// /// /// - public async Task> BillQueryForSubStock() + public async Task> BillQueryForSubStock() { try { //1.获取缓存中的仓库数据; var cache_key = "erp_substock_list"; - var stocks = _memoryCache.Get>(cache_key); + var stocks = _memoryCache.Get>(cache_key); if (stocks == null || stocks.Count == 0) { var token_result = await this.Init(); if (!token_result.IsSuccess) - return ResultList.ReFailure(token_result); + 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.FNumber,FUseOrgId.FNumber"; + param.FieldKeys = "FStockFlexDetail_FDetailID,FFlexEntryName,FFlexEntryId.FNumber,FUseOrgId.FNumber,FNumber"; param.Limit = 100000; param.FilterString = $"FNumber='HD' or FNumber='GD'";//FNumber='C' query.Data = JsonConvert.SerializeObject(param); @@ -1263,31 +1263,32 @@ namespace WMS.Web.Domain.Services.Public var result_json = await _client.ExecuteBillQueryAsync(json); var result = JsonConvert.DeserializeObject>>(result_json); - var list = new List(); + var list = new List(); foreach (var item in result) { - var lis = new ErpStockDto(); + var lis = new Erp_SubStockDto(); if (item[0] == "0") continue; lis.Id = int.Parse(item[0]); lis.Name = item[1]; lis.Code = item[2]; lis.OrgCode = item[3]; + lis.StockCode = item[4]; list.Add(lis); } //5.供应商集合进行缓存 只有查询全部的时候才缓存 _memoryCache.Set(cache_key, list, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromHours(12))); _logger.LogInformation($"子仓库拉取-总条数:{list.Count}"); - return ResultList.ReSuccess(list); + return ResultList.ReSuccess(list); } else { - return ResultList.ReSuccess(stocks); + return ResultList.ReSuccess(stocks); } } catch (Exception) { - return ResultList.ReFailure("错误", 10002); + return ResultList.ReFailure("错误", 10002); } } diff --git a/src/WMS.Web.Repositories/TakeStockRepositories.cs b/src/WMS.Web.Repositories/TakeStockRepositories.cs index d1478da0..78aae65c 100644 --- a/src/WMS.Web.Repositories/TakeStockRepositories.cs +++ b/src/WMS.Web.Repositories/TakeStockRepositories.cs @@ -213,7 +213,7 @@ namespace WMS.Web.Repositories Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.detail.MaterialId), Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, companyId, s.detail.StockCode + s.detail.OrgCode), SubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.detail.SubStockId), - Erp_SubStock= _erpBasicDataExtendService.GetStockName(subStocks, s.detail.Erp_SubStockCode), + Erp_SubStock= _erpBasicDataExtendService.GetSubStockName(subStocks, s.detail.Erp_SubStockCode), MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialId), MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.detail.MaterialId), Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialId),