fix 优化内部人员查询

This commit is contained in:
2025-01-09 14:29:39 +08:00
parent 65d29cb7b5
commit 212a46dc75

View File

@@ -224,6 +224,7 @@ public class DeviceUploadLogService : IDeviceUploadLogService
_ => throw new UserFriendlyException("不支持当前设备类型") _ => throw new UserFriendlyException("不支持当前设备类型")
}; };
var userTypes = new List<GainfoUserTypeEnumType?>();
var userType = request.IsOutsource.HasValue && request.IsOutsource.Value var userType = request.IsOutsource.HasValue && request.IsOutsource.Value
? GainfoUserTypeEnumType.Outsource ? GainfoUserTypeEnumType.Outsource
: GainfoUserTypeEnumType.Normal; : GainfoUserTypeEnumType.Normal;
@@ -231,8 +232,16 @@ public class DeviceUploadLogService : IDeviceUploadLogService
if (request.UserType.HasValue) if (request.UserType.HasValue)
{ {
userType = request.UserType.Value; userType = request.UserType.Value;
if (request.UserType.Value == GainfoUserTypeEnumType.Normal)
{
userTypes.Add(GainfoUserTypeEnumType.SecurityWhite);
}
} }
userTypes.Add(userType);
var r = await _dbContext.Queryable<DeviceUploadLogEntity>() var r = await _dbContext.Queryable<DeviceUploadLogEntity>()
.LeftJoin<DeviceEntity>((x, device) => x.DeviceUniqueNo == device.UniqueNo) .LeftJoin<DeviceEntity>((x, device) => x.DeviceUniqueNo == device.UniqueNo)
.LeftJoin<GainfoEntity>((x, device, ga) => x.UserUniqueNo == ga.Code) .LeftJoin<GainfoEntity>((x, device, ga) => x.UserUniqueNo == ga.Code)
@@ -240,7 +249,7 @@ public class DeviceUploadLogService : IDeviceUploadLogService
.LeftJoin<GainfoEntity>((x, device, ga, os, gaSap) => gaSap.Code == os.SapCode) .LeftJoin<GainfoEntity>((x, device, ga, os, gaSap) => gaSap.Code == os.SapCode)
.WhereIF(request.SearchDateTimePeriod.HasValue(), x => x.RaiseDateTime >= request.SearchDateTimePeriod.Start .WhereIF(request.SearchDateTimePeriod.HasValue(), x => x.RaiseDateTime >= request.SearchDateTimePeriod.Start
&& x.RaiseDateTime <= request.SearchDateTimePeriod.End) && x.RaiseDateTime <= request.SearchDateTimePeriod.End)
.Where((x, device) => x.Type == type && x.UserType == userType) .Where((x, device) => x.Type == type && userTypes.Contains(x.UserType))
.WhereIF(request.Sync.HasValue, x => x.Sync == request.Sync) .WhereIF(request.Sync.HasValue, x => x.Sync == request.Sync)
.WhereIF(request.Search.IsPresent() && userType == GainfoUserTypeEnumType.Outsource, (x, device, ga, os) => .WhereIF(request.Search.IsPresent() && userType == GainfoUserTypeEnumType.Outsource, (x, device, ga, os) =>
x.UserUniqueNo == request.Search x.UserUniqueNo == request.Search