From bfa62b49036e1ebaa3cae86826e4a94ed5017bd7 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Mon, 25 Nov 2024 18:01:33 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=A4=96=E5=8C=85=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/DeviceUploadLogService.cs | 134 ++++++++++++------ 1 file changed, 89 insertions(+), 45 deletions(-) diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs index 060825aa..e8e22d32 100644 --- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs @@ -151,51 +151,95 @@ public class DeviceUploadLogService : IDeviceUploadLogService _ => throw new UserFriendlyException("不支持当前设备类型") }; - 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) => - ga.Code == request.Search - || ga.Name == request.Search - || x.DeviceUniqueNo == request.Search - || os.Supplier.Contains(request.Search) - || os.SapCode == 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 + if (request.IsOutsource.HasValue && !request.IsOutsource.Value) { - PageIndex = request.PageIndex, - PageSize = request.PageSize, - Total = 0, - Data = r - }; + 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.Search.IsPresent(), (os, x, device, ga, gasap) => + ga.Code == request.Search + || ga.Name == request.Search + || x.DeviceUniqueNo == request.Search + || os.Supplier.Contains(request.Search) + || os.SapCode == request.Search + ).OrderBy(x => 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); + + return new Pagination + { + PageIndex = request.PageIndex, + PageSize = request.PageSize, + Total = 0, + Data = r + }; + } + else + { + 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) => + ga.Code == request.Search + || ga.Name == request.Search + || x.DeviceUniqueNo == request.Search + || os.Supplier.Contains(request.Search) + || os.SapCode == 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