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) =>