fix 已知数据查询
This commit is contained in:
@@ -86,6 +86,11 @@ public class DevicePageResponse
|
||||
/// </summary>
|
||||
public bool Enable { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 厂区
|
||||
/// </summary>
|
||||
public string Factory { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否作为考勤
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user