From d004c60d423f910782a738230ad23fd6830c1885 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Fri, 10 Jan 2025 11:25:10 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=9F=A5=E8=AF=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Request/DeviceUploadLogPageRequest.cs | 7 +----- .../Implements/DeviceUploadLogService.cs | 25 ++++++------------- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogPageRequest.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogPageRequest.cs index e3aae39b..ceaa7902 100644 --- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogPageRequest.cs +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogPageRequest.cs @@ -19,11 +19,6 @@ public class DeviceUploadLogPageRequest : PageDto /// public bool? Sync { get; set; } - /// - /// 是否为外包 - /// - public bool? IsOutsource { get; set; } - /// /// 日期范围查询 /// @@ -33,5 +28,5 @@ public class DeviceUploadLogPageRequest : PageDto /// 用户类型 /// [EnumDataType(typeof(GainfoUserTypeEnumType))] - public GainfoUserTypeEnumType? UserType { get; set; } + public GainfoUserTypeEnumType UserType { get; set; } } \ No newline at end of file diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs index bf9136a9..08fe22b4 100644 --- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs @@ -65,7 +65,7 @@ public class DeviceUploadLogService : IDeviceUploadLogService var device = devices.First(x => x.UniqueNo == request.DeviceUniqueNo); var userType = gainfos.FirstOrDefault(x => x.Code == request.UserUniqueNo)?.Type; - var needUpload = userType == GainfoUserTypeEnumType.Normal && (device.Type == DeviceTypeEnumType.Attendance || (device.Type == DeviceTypeEnumType.Door && device.AsAttendance)); + var needUpload = userType is GainfoUserTypeEnumType.Normal or GainfoUserTypeEnumType.SecurityWhite && (device.Type == DeviceTypeEnumType.Attendance || (device.Type == DeviceTypeEnumType.Door && device.AsAttendance)); var dataType = device.Type == DeviceTypeEnumType.Attendance ? DeviceUploadLogTypeEnumType.Attendance : DeviceUploadLogTypeEnumType.Door; @@ -224,24 +224,13 @@ public class DeviceUploadLogService : IDeviceUploadLogService _ => throw new UserFriendlyException("不支持当前设备类型") }; - var userTypes = new List(); - var userType = request.IsOutsource.HasValue && request.IsOutsource.Value - ? GainfoUserTypeEnumType.Outsource - : GainfoUserTypeEnumType.Normal; + var userTypes = new List { request.UserType }; - if (request.UserType.HasValue) + if (request.UserType == GainfoUserTypeEnumType.Normal) { - userType = request.UserType.Value; - - - if (request.UserType.Value == GainfoUserTypeEnumType.Normal) - { - userTypes.Add(GainfoUserTypeEnumType.SecurityWhite); - } + userTypes.Add(GainfoUserTypeEnumType.SecurityWhite); } - userTypes.Add(userType); - var r = await _dbContext.Queryable() .LeftJoin((x, device) => x.DeviceUniqueNo == device.UniqueNo) .LeftJoin((x, device, ga) => x.UserUniqueNo == ga.Code) @@ -249,15 +238,15 @@ public class DeviceUploadLogService : IDeviceUploadLogService .LeftJoin((x, device, ga, os, gaSap) => gaSap.Code == os.SapCode) .WhereIF(request.SearchDateTimePeriod.HasValue(), x => x.RaiseDateTime >= request.SearchDateTimePeriod.Start && x.RaiseDateTime <= request.SearchDateTimePeriod.End) - .Where((x, device) => x.Type == type && userTypes.Contains(x.UserType)) + .Where((x, device) => x.Type == type && !SqlFunc.IsNullOrEmpty(x.UserType) && userTypes.Contains(x.UserType)) .WhereIF(request.Sync.HasValue, x => x.Sync == request.Sync) - .WhereIF(request.Search.IsPresent() && userType == GainfoUserTypeEnumType.Outsource, (x, device, ga, os) => + .WhereIF(request.Search.IsPresent() && userTypes.Contains(GainfoUserTypeEnumType.Outsource), (x, device, ga, os) => x.UserUniqueNo == request.Search || x.DeviceUniqueNo == request.Search || os.Supplier == request.Search || os.SapCode == request.Search ) - .WhereIF(request.Search.IsPresent() && userType != GainfoUserTypeEnumType.Outsource, (x, device, ga, os) => + .WhereIF(request.Search.IsPresent() && !userTypes.Contains(GainfoUserTypeEnumType.Outsource), (x, device, ga, os) => x.UserUniqueNo == request.Search || x.DeviceUniqueNo == request.Search )