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

@@ -86,6 +86,11 @@ public class DevicePageResponse
/// </summary>
public bool Enable { get; set; }
/// <summary>
/// 厂区
/// </summary>
public string Factory { get; set; }
/// <summary>
/// 是否作为考勤

View File

@@ -46,7 +46,8 @@ public class DeviceService : IDeviceService
Type = d.Type,
BusinessPlaceCode = bp.Code,
BusinessPlaceName = bp.Name,
LastHeartbeatTime = dr.LastHeartbeatTime
LastHeartbeatTime = dr.LastHeartbeatTime,
Factory = d.TenantId
}, true)
.ToPageListAsync(request);

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;
}