From 95c08e29b69776bba952321bb6496f058f8452e3 Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Thu, 18 Apr 2024 10:01:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InStockTaskRepositories.cs | 37 +++++++++++++------ 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/src/WMS.Web.Repositories/InStockTaskRepositories.cs b/src/WMS.Web.Repositories/InStockTaskRepositories.cs index 69762199..a9c69520 100644 --- a/src/WMS.Web.Repositories/InStockTaskRepositories.cs +++ b/src/WMS.Web.Repositories/InStockTaskRepositories.cs @@ -766,18 +766,20 @@ namespace WMS.Web.Repositories { //这个也可以查询到:条件是数据集合,实体对象的属性是数据集合的情况下;只是AsEnumerable有点性能不好!仅此而已 var tids_objs = _context.InStockDetails.AsEnumerable().Where(x => dto.SerialNumbers.All(sn => x.SerialNumbers.Contains(sn))).ToList(); + var tids= tids_objs.GroupBy(x => x.TaskId).Select(x => x.Key).ToList(); - string str = $"select * from t_wms_instock_details where "; - for (int i = 0; i < dto.SerialNumbers.Count(); i++) - { - if (i == 0) - str += $"SerialNumbers like '%\"{dto.SerialNumbers[i]}\"%'"; - else - str += $" or SerialNumbers like '%\"{dto.SerialNumbers[i]}\"%'"; - } - var fs = FormattableStringFactory.Create(str); - var InStockDetails = _context.Set().FromSqlInterpolated(fs).ToList(); - var tids = InStockDetails.GroupBy(x => x.TaskId).Select(x => x.Key).ToList(); + //这个也可以查询到:条件是数据集合,实体对象的属性是数据集合的情况下;sql语句 + //string str = $"select * from t_wms_instock_details where "; + //for (int i = 0; i < dto.SerialNumbers.Count(); i++) + //{ + // if (i == 0) + // str += $"SerialNumbers like '%\"{dto.SerialNumbers[i]}\"%'"; + // else + // str += $" or SerialNumbers like '%\"{dto.SerialNumbers[i]}\"%'"; + //} + //var fs = FormattableStringFactory.Create(str); + //var InStockDetails = _context.Set().FromSqlInterpolated(fs).ToList(); + //var tids = InStockDetails.GroupBy(x => x.TaskId).Select(x => x.Key).ToList(); if (taskIds == null) { @@ -786,6 +788,19 @@ namespace WMS.Web.Repositories } else taskIds = tids.Intersect(taskIds).ToList(); + + + var boxids_objs = _context.SerialNumbers.Where(x => dto.SerialNumbers.Contains(x.SerialNumber)).ToList(); + var boxIds = boxids_objs.GroupBy(x => x.BoxId).Select(x => x.Key).ToList(); + var tids1 = await _context.InstockTaskBox.Where(x => boxIds.Contains(x.BoxId)).GroupBy(x => x.TaskId).Select(x => x.Key).ToListAsync(); + + if (taskIds == null) + { + taskIds = new List(); + taskIds.AddRange(tids1); + } + else + taskIds = tids1.Intersect(taskIds).ToList(); } var query = _context.InStockTaskDetails