优化
This commit is contained in:
@@ -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<InStockDetails>().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<InStockDetails>().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<int>();
|
||||
taskIds.AddRange(tids1);
|
||||
}
|
||||
else
|
||||
taskIds = tids1.Intersect(taskIds).ToList();
|
||||
}
|
||||
|
||||
var query = _context.InStockTaskDetails
|
||||
|
||||
Reference in New Issue
Block a user