优化
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user