diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogPageRequest.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogPageRequest.cs index 87349ff1..e3aae39b 100644 --- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogPageRequest.cs +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogPageRequest.cs @@ -1,4 +1,5 @@ using System.ComponentModel.DataAnnotations; +using Dlhis.Entity.Basic.Enums; using Dlhis.Entity.Device.Enums; using Kurisu.AspNetCore.CustomClass; using Kurisu.AspNetCore.DataAccess.Dto; @@ -27,4 +28,10 @@ public class DeviceUploadLogPageRequest : PageDto /// 日期范围查询 /// public DateTimePeriod SearchDateTimePeriod { get; set; } -} + + /// + /// 用户类型 + /// + [EnumDataType(typeof(GainfoUserTypeEnumType))] + 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 2298cd68..2d166f8b 100644 --- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs @@ -223,94 +223,53 @@ public class DeviceUploadLogService : IDeviceUploadLogService _ => throw new UserFriendlyException("不支持当前设备类型") }; - if (request.IsOutsource.HasValue && request.IsOutsource.Value) - { - var r = await _dbContext.Queryable() - .LeftJoin((os, x) => os.Code == x.UserUniqueNo) - .LeftJoin((os, x, device) => x.DeviceUniqueNo == device.UniqueNo) - .LeftJoin((os, x, device, ga) => os.Code == ga.Code) - .LeftJoin((os, x, device, ga, gaSap) => gaSap.Code == os.SapCode) - .WhereIF(request.SearchDateTimePeriod.HasValue(), (os, x) => x.RaiseDateTime >= request.SearchDateTimePeriod.Start - && x.RaiseDateTime <= request.SearchDateTimePeriod.End) - .Where((os, x) => x.Type == type) - .WhereIF(request.Search.IsPresent(), (os, x, device, ga, gaSap) => - x.UserUniqueNo == request.Search - || x.DeviceUniqueNo == request.Search - || os.Supplier == request.Search - || os.SapCode == request.Search - ).OrderBy((os, x, device, ga, gaSap) => x.ModifiedTime, OrderByType.Desc) - .Select((os, x, device, ga, gaSap) => new DeviceUploadLogResponse - { - Id = x.Id, - OriginUserUniqueNo = x.UserUniqueNo, - OutsourceSupplier = os.Supplier, - SapUserCode = os.SapCode, - SapUserName = gaSap.Name, - DeviceUniqueNo = x.DeviceUniqueNo, - RaiseDateTime = x.RaiseDateTime, - CreateTime = x.CreateTime, - SerialNo = x.SerialNo, - UserNo = ga.No, - UserCode = ga.Code, - UserName = ga.Name, - DeployPlace = device.DeployPlace, - Sync = x.Sync, - Status = x.Status, - }).ToPageListAsync(request.PageIndex, request.PageSize); + var userType = request.IsOutsource.HasValue && request.IsOutsource.Value + ? GainfoUserTypeEnumType.Outsource + : GainfoUserTypeEnumType.Normal; - return new Pagination - { - PageIndex = request.PageIndex, - PageSize = request.PageSize, - Total = 0, - Data = r - }; - } - else + if (request.UserType.HasValue) { - var r = await _dbContext.Queryable() - .LeftJoin((x, device) => x.DeviceUniqueNo == device.UniqueNo) - .LeftJoin((x, device, ga) => x.UserUniqueNo == ga.Code) - .LeftJoin((x, device, ga, os) => x.UserUniqueNo == os.Code) - .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 && !SqlFunc.IsNullOrEmpty(x.UserUniqueNo)) - .WhereIF(request.Sync.HasValue, x => x.Sync == request.Sync) - .WhereIF(request.IsOutsource.HasValue && request.IsOutsource.Value, - x => SqlFunc.Subqueryable().Where(p => p.Code == x.UserUniqueNo).Any()) - .WhereIF(request.IsOutsource.HasValue && !request.IsOutsource.Value, - x => SqlFunc.Subqueryable().Where(p => p.Code == x.UserUniqueNo).NotAny()) - .WhereIF(request.Search.IsPresent(), (x, device, ga, os) => - x.UserUniqueNo == request.Search || x.DeviceUniqueNo == request.Search - ) - .OrderBy(x => x.ModifiedTime, OrderByType.Desc) - .Select((x, device, ga, os, gaSap) => new DeviceUploadLogResponse - { - Id = x.Id, - OriginUserUniqueNo = x.UserUniqueNo, - OutsourceSupplier = os.Supplier, - SapUserCode = os.SapCode, - SapUserName = gaSap.Name, - DeviceUniqueNo = x.DeviceUniqueNo, - RaiseDateTime = x.RaiseDateTime, - CreateTime = x.CreateTime, - SerialNo = x.SerialNo, - UserNo = ga.No, - UserCode = ga.Code, - UserName = ga.Name, - DeployPlace = device.DeployPlace, - Sync = x.Sync, - Status = x.Status, - }).ToPageListAsync(request.PageIndex, request.PageSize); - - return new Pagination - { - PageIndex = request.PageIndex, - PageSize = request.PageSize, - Total = 0, - Data = r - }; + userType = request.UserType.Value; } + + var r = await _dbContext.Queryable() + .LeftJoin((x, device) => x.DeviceUniqueNo == device.UniqueNo) + .LeftJoin((x, device, ga) => x.UserUniqueNo == ga.Code) + .LeftJoin((x, device, ga, os) => x.UserUniqueNo == os.Code) + .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 && x.UserType == userType) + .WhereIF(request.Sync.HasValue, x => x.Sync == request.Sync) + .WhereIF(request.Search.IsPresent(), (x, device, ga, os) => + x.UserUniqueNo == request.Search || x.DeviceUniqueNo == request.Search + ) + .OrderBy(x => x.ModifiedTime, OrderByType.Desc) + .Select((x, device, ga, os, gaSap) => new DeviceUploadLogResponse + { + Id = x.Id, + OriginUserUniqueNo = x.UserUniqueNo, + OutsourceSupplier = os.Supplier, + SapUserCode = os.SapCode, + SapUserName = gaSap.Name, + DeviceUniqueNo = x.DeviceUniqueNo, + RaiseDateTime = x.RaiseDateTime, + CreateTime = x.CreateTime, + SerialNo = x.SerialNo, + UserNo = ga.No, + UserCode = ga.Code, + UserName = ga.Name, + DeployPlace = device.DeployPlace, + Sync = x.Sync, + Status = x.Status, + }).ToPageListAsync(request.PageIndex, request.PageSize); + + return new Pagination + { + PageIndex = request.PageIndex, + PageSize = request.PageSize, + Total = 0, + Data = r + }; } } \ No newline at end of file