diff --git a/src/WMS.Web.Domain/Infrastructure/IMaterialsRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IMaterialsRepositories.cs index a26e1a87..d23124f2 100644 --- a/src/WMS.Web.Domain/Infrastructure/IMaterialsRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IMaterialsRepositories.cs @@ -32,6 +32,8 @@ namespace WMS.Web.Domain.Infrastructure /// Task Get(int mid); + Materials GetNew(int mid); + /// /// 物料 /// diff --git a/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs b/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs index 525371db..45bcef79 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs @@ -46,7 +46,8 @@ namespace WMS.Web.Domain.Services.Public var mat= erpMaterials.Where(x => x.MaterialId == materialId).FirstOrDefault(); if (mat == null) { - var result= _erpService.BillQueryForMaterial(materialId).Result; + var result= _erpService.BillQueryForMaterial(materialId).GetAwaiter().GetResult(); + if (!result.IsSuccess) return ""; return result.Data == null ? "" : result.Data.MaterialName; @@ -67,7 +68,7 @@ namespace WMS.Web.Domain.Services.Public var mat = erpMaterials.Where(x => x.MaterialId == materialId).FirstOrDefault(); if (mat == null) { - var result = _erpService.BillQueryForMaterial(materialId).Result; + var result = _erpService.BillQueryForMaterial(materialId).GetAwaiter().GetResult(); if (!result.IsSuccess) return ""; return result.Data == null ? "" : result.Data.MaterialNumber; @@ -88,7 +89,7 @@ namespace WMS.Web.Domain.Services.Public var mat = erpMaterials.Where(x => x.MaterialId == materialId).FirstOrDefault(); if (mat == null) { - var result = _erpService.BillQueryForMaterial(materialId).Result; + var result = _erpService.BillQueryForMaterial(materialId).GetAwaiter().GetResult(); if (!result.IsSuccess) return ""; return result.Data == null ? "" : result.Data.Specifications; @@ -109,7 +110,7 @@ namespace WMS.Web.Domain.Services.Public var mat = erpMaterials.Where(x => x.MaterialId == materialId).FirstOrDefault(); if (mat == null) { - var result = _erpService.BillQueryForMaterial(materialId).Result; + var result = _erpService.BillQueryForMaterial(materialId).GetAwaiter().GetResult(); if (!result.IsSuccess) return ""; return result.Data == null ? "" : result.Data.BaseUnitName; @@ -130,7 +131,7 @@ namespace WMS.Web.Domain.Services.Public var mat = erpMaterials.Where(x => x.MaterialId == materialId).FirstOrDefault(); if (mat == null) { - var result = _erpService.BillQueryForMaterial(materialId).Result; + var result = _erpService.BillQueryForMaterial(materialId).GetAwaiter().GetResult(); if (!result.IsSuccess) return ""; return result.Data == null ? "" : result.Data.BarCode; @@ -151,7 +152,7 @@ namespace WMS.Web.Domain.Services.Public var mat = erpMaterials.Where(x => x.MaterialId == materialId).FirstOrDefault(); if (mat == null) { - var result = _erpService.BillQueryForMaterial(materialId).Result; + var result = _erpService.BillQueryForMaterial(materialId).GetAwaiter().GetResult(); if (!result.IsSuccess) return 0; return result.Data == null ? 0 : result.Data.BaseUnitId; @@ -171,7 +172,7 @@ namespace WMS.Web.Domain.Services.Public var mat = erpMaterials.Where(x => x.MaterialId == materialId).FirstOrDefault(); if (mat == null) { - var result = _erpService.BillQueryForMaterial(materialId).Result; + var result = _erpService.BillQueryForMaterial(materialId).GetAwaiter().GetResult(); if (!result.IsSuccess) return ""; return result.Data == null ? "" : result.Data.BaseUnitNumber; diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index 7db7decf..c4760614 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -295,7 +295,7 @@ namespace WMS.Web.Domain.Services.Public //2.时间条件:可能还有其它条件 //var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00"); - var beginTime= Convert.ToDateTime("2024-03-01 00:00:00");//正式环境 从3月1好开始 + var beginTime = Convert.ToDateTime("2024-03-01 00:00:00");//正式环境 从3月1好开始 var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //3.获取金蝶其他入库订单:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); @@ -813,10 +813,10 @@ namespace WMS.Web.Domain.Services.Public var materials = _memoryCache.Get>(_erpOptions.cache_materail_key); if (materials == null || materials.Count == 0) { - var mats= await _materialsRepositories.GetEntityList(100008); + var mats = await _materialsRepositories.GetEntityList(100008); if (mats == null || mats.Count == 0) return await this.BillQueryForMaterialPagedList(); - else + else { var beginTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); _logger.LogInformation($"物料拉取-开始时间:{beginTime}"); @@ -839,7 +839,7 @@ namespace WMS.Web.Domain.Services.Public _memoryCache.Set(_erpOptions.cache_materail_key, erp_materials_list, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(DateTimeUtil.GetTotalMinutesTimeSpan()))); var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); _logger.LogInformation($"物料拉取-结束时间:{endTime}"); - _logger.LogInformation($"物料拉取-总条数:{erp_materials_list.Count}"); + _logger.LogInformation($"物料拉取-本地数据库-总条数:{erp_materials_list.Count}"); return ResultList.ReSuccess(erp_materials_list); } @@ -874,28 +874,14 @@ namespace WMS.Web.Domain.Services.Public if (mater == null) { //2.1没有的话:去金蝶取 - //mater = await this.BillQueryForMaterialById(id); - var ent = await _materialsRepositories.Get(id); - if (ent != null) + mater = await this.BillQueryForMaterialById(id); + if (mater != null) { - var linshi_mat= await _materialsRepositories.Get(ent.MaterialNumber, 100008); - if (linshi_mat != null) - { - mater = new ErpMaterialDto(); - mater.MaterialId = ent.MaterialId; - mater.MaterialName = linshi_mat.MaterialName; - mater.MaterialNumber = linshi_mat.MaterialNumber; - mater.Specifications = linshi_mat.Specifications; - mater.BaseUnitId = linshi_mat.BaseUnitId; - mater.BaseUnitName = linshi_mat.BaseUnitName; - mater.BaseUnitNumber = linshi_mat.BaseUnitNumber; - mater.BarCode = linshi_mat.BarCode; - mater.OrgId = linshi_mat.OrgId; - //把取到的数据放集合中并重新给缓存 - materials.Add(mater); - _memoryCache.Set(_erpOptions.cache_materail_key, materials, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(DateTimeUtil.GetTotalMinutesTimeSpan()))); - return Result.ReSuccess(mater); - } + //把取到的数据放集合中并重新给缓存 + materials.Add(mater); + _memoryCache.Set(_erpOptions.cache_materail_key, materials, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(DateTimeUtil.GetTotalMinutesTimeSpan()))); + return Result.ReSuccess(mater); + } else return Result.ReSuccess(null); @@ -911,7 +897,7 @@ namespace WMS.Web.Domain.Services.Public private async Task> BillQueryForMaterialPagedList() { //2.先登录金蝶-拿到token - var token_result = await this.Init(); + var token_result = await this.Init(); if (!token_result.IsSuccess) return ResultList.ReFailure(token_result); @@ -982,8 +968,8 @@ namespace WMS.Web.Domain.Services.Public _logger.LogInformation("物料拉取->错误的Json:" + error_josn); return null; } - - + + } /// @@ -994,7 +980,7 @@ namespace WMS.Web.Domain.Services.Public private async Task BillQueryForMaterialById(int id) { //2.先登录金蝶-拿到token - var token_result = await this.Init(); + var token_result = await this.Init(); if (!token_result.IsSuccess) return null; @@ -1052,7 +1038,7 @@ namespace WMS.Web.Domain.Services.Public _logger.LogInformation("物料拉取按ID->错误的Json:" + error_josn); return null; } - + } /// @@ -1069,7 +1055,7 @@ namespace WMS.Web.Domain.Services.Public { //2.先登录金蝶-拿到token - var token_result = await this.Init(); + var token_result = await this.Init(); if (!token_result.IsSuccess) return ResultList.ReFailure(token_result); @@ -1137,7 +1123,7 @@ namespace WMS.Web.Domain.Services.Public { //2.先登录金蝶-拿到token - var token_result = await this.Init(); + var token_result = await this.Init(); if (!token_result.IsSuccess) return ResultList.ReFailure(token_result); @@ -1204,7 +1190,7 @@ namespace WMS.Web.Domain.Services.Public { //2.先登录金蝶-拿到token - var token_result = await this.Init(); + var token_result = await this.Init(); if (!token_result.IsSuccess) return ResultList.ReFailure(token_result); diff --git a/src/WMS.Web.Repositories/MaterialsRepositories.cs b/src/WMS.Web.Repositories/MaterialsRepositories.cs index 9964dd70..e0567ea0 100644 --- a/src/WMS.Web.Repositories/MaterialsRepositories.cs +++ b/src/WMS.Web.Repositories/MaterialsRepositories.cs @@ -94,6 +94,17 @@ namespace WMS.Web.Repositories return res.Clone(); } + public Materials GetNew(int mid) + { + var query = _context.Materials.Where(x => 1 == 1); + + query = query.Where(x => x.MaterialId == mid); + + var res = query.FirstOrDefault(); + + return res.Clone(); + } + /// /// 获取 ///