From 3f6feeab5b77798298fab97f878cbb5b654c08a6 Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Thu, 18 Apr 2024 09:48:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/Controllers/InStockController.cs | 5 ++++- .../InStockTaskRepositories.cs | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/WMS.Web.Api/Controllers/InStockController.cs b/src/WMS.Web.Api/Controllers/InStockController.cs index 6c308103..06af6a75 100644 --- a/src/WMS.Web.Api/Controllers/InStockController.cs +++ b/src/WMS.Web.Api/Controllers/InStockController.cs @@ -31,13 +31,16 @@ namespace WMS.Web.Api.Controllers private readonly IInStockService _inStockService; private readonly IInStockRepositories _inStockRepositories; private readonly IExportExcelService _exportExcelService; + private readonly IRedisConcurrentProcessService _redisConcurrentProcessService; public InStockController(IOptions option, ILoginService loginService, IInStockRepositories inStockRepositories, IInStockService inStockService, - IExportExcelService exportExcelService) + IExportExcelService exportExcelService, + IRedisConcurrentProcessService redisConcurrentProcessService) { _option = option?.Value; + this._redisConcurrentProcessService = redisConcurrentProcessService; this._loginService = loginService; this._inStockService = inStockService; this._exportExcelService = exportExcelService; diff --git a/src/WMS.Web.Repositories/InStockTaskRepositories.cs b/src/WMS.Web.Repositories/InStockTaskRepositories.cs index ceebc5da..69762199 100644 --- a/src/WMS.Web.Repositories/InStockTaskRepositories.cs +++ b/src/WMS.Web.Repositories/InStockTaskRepositories.cs @@ -755,16 +755,17 @@ namespace WMS.Web.Repositories } } - var taskIds = new List(); + List taskIds = null; if (dto.BoxBillNos != null && dto.BoxBillNos.Count != 0) { + taskIds = new List(); var tids = await _context.InstockTaskBox.Where(x => dto.BoxBillNos.Contains(x.BoxBillNo)).GroupBy(x => x.TaskId).Select(x => x.Key).ToListAsync(); taskIds.AddRange(tids); } if (dto.SerialNumbers != null && dto.SerialNumbers.Count != 0) { //这个也可以查询到:条件是数据集合,实体对象的属性是数据集合的情况下;只是AsEnumerable有点性能不好!仅此而已 - //var tids_objs = _context.InStockDetails.AsEnumerable().Where(x => dto.SerialNumbers.All(sn => x.SerialNumbers.Contains(sn))).ToList(); + var tids_objs = _context.InStockDetails.AsEnumerable().Where(x => dto.SerialNumbers.All(sn => x.SerialNumbers.Contains(sn))).ToList(); string str = $"select * from t_wms_instock_details where "; for (int i = 0; i < dto.SerialNumbers.Count(); i++) @@ -777,7 +778,14 @@ namespace WMS.Web.Repositories var fs = FormattableStringFactory.Create(str); var InStockDetails = _context.Set().FromSqlInterpolated(fs).ToList(); var tids = InStockDetails.GroupBy(x => x.TaskId).Select(x => x.Key).ToList(); - taskIds.AddRange(tids); + + if (taskIds == null) + { + taskIds = new List(); + taskIds.AddRange(tids); + } + else + taskIds = tids.Intersect(taskIds).ToList(); } var query = _context.InStockTaskDetails @@ -794,7 +802,7 @@ namespace WMS.Web.Repositories query = query.Where(w => materialNumbs.Contains(w.detail.MaterialNumber)); } - if (taskIds.Count != 0) + if (taskIds != null) { query = query.Where(w => taskIds.Contains(w.order.Id)); }