fix 已知数据查询

This commit is contained in:
2024-07-05 15:06:26 +08:00
parent e9e72b0af7
commit c178499470
3 changed files with 23 additions and 2 deletions

View File

@@ -69,11 +69,17 @@ public class GainfoService : IGainfoService
}
//获取所有厂区
var factories = request.DepartmentSelections.Select(x => x.Tenant);
var factories = request.DepartmentSelections.Select(x => x.Tenant).ToList();
if (factories.Count == 0)
{
factories = _currentUser.GetUserClaim("tenants").Split(",").ToList();
}
var today = DateTime.Today;
var page = await _gainfoStore.Queryable(request.Status)
.WhereIF(request.SearchType != GainfoSearchEnumType.BusinessTrip && request.DepartmentSelections?.Any() == true, where)
.WhereIF(request.SearchType != GainfoSearchEnumType.BusinessTrip && request.DepartmentSelections?.Any() == false, gainfo => factories.Contains(gainfo.Factory))
.WhereIF(request.SearchType == GainfoSearchEnumType.Internal, gainfo => SqlFunc.Subqueryable<OutsourceEntity>().Where(x => x.Code == gainfo.Code).NotAny())
.WhereIF(request.SearchType == GainfoSearchEnumType.Outsource, gainfo => SqlFunc.Subqueryable<OutsourceEntity>().Where(x => x.Code == gainfo.Code).Any())
.WhereIF(request.SearchType == GainfoSearchEnumType.BusinessTrip, gainfo =>
@@ -85,6 +91,15 @@ public class GainfoService : IGainfoService
.Select<GainfoPageResponse>()
.ToPageListAsync(request);
if (request.SearchType == GainfoSearchEnumType.Outsource)
{
var codes = page.Data.Select(x => x.Code).ToList();
var outsourceInfos = await _dbContext.Queryable<OutsourceEntity>().Where(x => codes.Contains(x.Code)).Select(x => new { x.Code, x.Supplier }).ToListAsync();
page.Data.ForEach(item => { item.DepartmentNo = outsourceInfos.FirstOrDefault(x => x.Code == item.Code)?.Supplier; });
}
return page;
}