优化接口

This commit is contained in:
tongfei
2024-04-18 09:48:32 +08:00
parent 110abd0349
commit 3f6feeab5b
2 changed files with 16 additions and 5 deletions

View File

@@ -31,13 +31,16 @@ namespace WMS.Web.Api.Controllers
private readonly IInStockService _inStockService; private readonly IInStockService _inStockService;
private readonly IInStockRepositories _inStockRepositories; private readonly IInStockRepositories _inStockRepositories;
private readonly IExportExcelService _exportExcelService; private readonly IExportExcelService _exportExcelService;
private readonly IRedisConcurrentProcessService _redisConcurrentProcessService;
public InStockController(IOptions<QiniuOptions> option, public InStockController(IOptions<QiniuOptions> option,
ILoginService loginService, ILoginService loginService,
IInStockRepositories inStockRepositories, IInStockRepositories inStockRepositories,
IInStockService inStockService, IInStockService inStockService,
IExportExcelService exportExcelService) IExportExcelService exportExcelService,
IRedisConcurrentProcessService redisConcurrentProcessService)
{ {
_option = option?.Value; _option = option?.Value;
this._redisConcurrentProcessService = redisConcurrentProcessService;
this._loginService = loginService; this._loginService = loginService;
this._inStockService = inStockService; this._inStockService = inStockService;
this._exportExcelService = exportExcelService; this._exportExcelService = exportExcelService;

View File

@@ -755,16 +755,17 @@ namespace WMS.Web.Repositories
} }
} }
var taskIds = new List<int>(); List<int> taskIds = null;
if (dto.BoxBillNos != null && dto.BoxBillNos.Count != 0) if (dto.BoxBillNos != null && dto.BoxBillNos.Count != 0)
{ {
taskIds = new List<int>();
var tids = await _context.InstockTaskBox.Where(x => dto.BoxBillNos.Contains(x.BoxBillNo)).GroupBy(x => x.TaskId).Select(x => x.Key).ToListAsync(); var tids = await _context.InstockTaskBox.Where(x => dto.BoxBillNos.Contains(x.BoxBillNo)).GroupBy(x => x.TaskId).Select(x => x.Key).ToListAsync();
taskIds.AddRange(tids); taskIds.AddRange(tids);
} }
if (dto.SerialNumbers != null && dto.SerialNumbers.Count != 0) if (dto.SerialNumbers != null && dto.SerialNumbers.Count != 0)
{ {
//这个也可以查询到条件是数据集合实体对象的属性是数据集合的情况下只是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();
string str = $"select * from t_wms_instock_details where "; string str = $"select * from t_wms_instock_details where ";
for (int i = 0; i < dto.SerialNumbers.Count(); i++) for (int i = 0; i < dto.SerialNumbers.Count(); i++)
@@ -777,7 +778,14 @@ namespace WMS.Web.Repositories
var fs = FormattableStringFactory.Create(str); var fs = FormattableStringFactory.Create(str);
var InStockDetails = _context.Set<InStockDetails>().FromSqlInterpolated(fs).ToList(); var InStockDetails = _context.Set<InStockDetails>().FromSqlInterpolated(fs).ToList();
var tids = InStockDetails.GroupBy(x => x.TaskId).Select(x => x.Key).ToList(); var tids = InStockDetails.GroupBy(x => x.TaskId).Select(x => x.Key).ToList();
taskIds.AddRange(tids);
if (taskIds == null)
{
taskIds = new List<int>();
taskIds.AddRange(tids);
}
else
taskIds = tids.Intersect(taskIds).ToList();
} }
var query = _context.InStockTaskDetails var query = _context.InStockTaskDetails
@@ -794,7 +802,7 @@ namespace WMS.Web.Repositories
query = query.Where(w => materialNumbs.Contains(w.detail.MaterialNumber)); 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)); query = query.Where(w => taskIds.Contains(w.order.Id));
} }