This commit is contained in:
tongfei
2024-04-18 10:01:08 +08:00
parent 3f6feeab5b
commit 95c08e29b6

View File

@@ -766,18 +766,20 @@ namespace WMS.Web.Repositories
{ {
//这个也可以查询到条件是数据集合实体对象的属性是数据集合的情况下只是AsEnumerable有点性能不好仅此而已 //这个也可以查询到条件是数据集合实体对象的属性是数据集合的情况下只是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();
var tids= tids_objs.GroupBy(x => x.TaskId).Select(x => x.Key).ToList();
string str = $"select * from t_wms_instock_details where "; //这个也可以查询到条件是数据集合实体对象的属性是数据集合的情况下sql语句
for (int i = 0; i < dto.SerialNumbers.Count(); i++) //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]}\"%'"; // if (i == 0)
else // str += $"SerialNumbers like '%\"{dto.SerialNumbers[i]}\"%'";
str += $" or SerialNumbers like '%\"{dto.SerialNumbers[i]}\"%'"; // else
} // str += $" or SerialNumbers like '%\"{dto.SerialNumbers[i]}\"%'";
var fs = FormattableStringFactory.Create(str); //}
var InStockDetails = _context.Set<InStockDetails>().FromSqlInterpolated(fs).ToList(); //var fs = FormattableStringFactory.Create(str);
var tids = InStockDetails.GroupBy(x => x.TaskId).Select(x => x.Key).ToList(); //var InStockDetails = _context.Set<InStockDetails>().FromSqlInterpolated(fs).ToList();
//var tids = InStockDetails.GroupBy(x => x.TaskId).Select(x => x.Key).ToList();
if (taskIds == null) if (taskIds == null)
{ {
@@ -786,6 +788,19 @@ namespace WMS.Web.Repositories
} }
else else
taskIds = tids.Intersect(taskIds).ToList(); 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<int>();
taskIds.AddRange(tids1);
}
else
taskIds = tids1.Intersect(taskIds).ToList();
} }
var query = _context.InStockTaskDetails var query = _context.InStockTaskDetails