From f7b2035cf4bb112b91b19004d4aa577ed5407d02 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Wed, 7 May 2025 14:19:04 +0800 Subject: [PATCH] =?UTF-8?q?test=20=E6=95=B0=E6=8D=AE=E8=BF=81=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/DeviceUploadLogsController.cs | 9 ++++++ .../Services/IDeviceUploadLogService.cs | 1 + .../Implements/DeviceUploadLogService.cs | 29 ++++++++++++++++--- 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs index 5bdb3e27..d8870a09 100644 --- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs @@ -75,6 +75,15 @@ public class DeviceUploadLogsController : ControllerBase await _deviceUploadLogService.QiaoqiaoGaoshiqingAsync(request); } + [AllowAnonymous] + [HttpPost("test2")] + [IgnoreTenant] + [Transactional] + public async Task Test() + { + await _deviceUploadLogService.Test(); + } + /// /// 获取设备记录读取的配置 /// diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs index 89e5bf53..c9ca49b0 100644 --- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs @@ -33,6 +33,7 @@ public interface IDeviceUploadLogService : IScopeDependency Task QiaoqiaoGaoshiqingAsync(DeviceUploadLogSecretAddRequest request); + Task Test(); /// /// 获取设备记录获取的开始-结束时间 diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs index 215ef13b..d4054f67 100644 --- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs @@ -370,6 +370,15 @@ public class DeviceUploadLogService : IDeviceUploadLogService }); } + /// + public async Task Test() + { + var data = await _dbContext.Queryable().OrderBy(x => x.Id).SingleAsync(); + var tableName = "deviceuploadlog_20250107"; + await _dbContext.Client.Insertable(data).AS(tableName).ExecuteCommandAsync(); + await _dbContext.DeleteReallyAsync(data); + } + public async Task GetDeviceUploadRecordSettingAsync(string deviceNo) { var start = await _dbContext.Queryable() @@ -427,7 +436,7 @@ public class DeviceUploadLogService : IDeviceUploadLogService public async Task> GetPageAsync(DeviceUploadLogPageRequest request) { - DeviceUploadLogTypeEnumType? type = request.Type switch + var type = request.Type switch { DeviceTypeEnumType.Attendance => DeviceUploadLogTypeEnumType.Attendance, DeviceTypeEnumType.Door => DeviceUploadLogTypeEnumType.Door, @@ -441,13 +450,25 @@ public class DeviceUploadLogService : IDeviceUploadLogService userTypes.Add(GainfoUserTypeEnumType.SecurityWhite); } - var r = await _dbContext.Queryable() + var dayBefore60 = DateTime.Today.AddDays(-60); + if (request.SearchDateTimePeriod.Start <= dayBefore60 && request.SearchDateTimePeriod.End > dayBefore60) + { + throw new UserFriendlyException("请勿跨归档数据查询"); + } + + var isArchivedSearch = request.SearchDateTimePeriod.End <= dayBefore60; + + + var table = isArchivedSearch + ? _dbContext.Queryable().AS("deviceuploadlog_20250107") + : _dbContext.Queryable(); + + var r = await table .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 => x.RaiseDateTime >= request.SearchDateTimePeriod.Start && x.RaiseDateTime <= request.SearchDateTimePeriod.End) .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() && userTypes.Contains(GainfoUserTypeEnumType.Outsource), (x, device, ga, os) =>