test 数据迁移

This commit is contained in:
2025-05-07 14:19:04 +08:00
parent 2ed6bbabe7
commit f7b2035cf4
3 changed files with 35 additions and 4 deletions

View File

@@ -75,6 +75,15 @@ public class DeviceUploadLogsController : ControllerBase
await _deviceUploadLogService.QiaoqiaoGaoshiqingAsync(request);
}
[AllowAnonymous]
[HttpPost("test2")]
[IgnoreTenant]
[Transactional]
public async Task Test()
{
await _deviceUploadLogService.Test();
}
/// <summary>
/// 获取设备记录读取的配置
/// </summary>

View File

@@ -33,6 +33,7 @@ public interface IDeviceUploadLogService : IScopeDependency
Task QiaoqiaoGaoshiqingAsync(DeviceUploadLogSecretAddRequest request);
Task Test();
/// <summary>
/// 获取设备记录获取的开始-结束时间

View File

@@ -370,6 +370,15 @@ public class DeviceUploadLogService : IDeviceUploadLogService
});
}
/// <inheritdoc />
public async Task Test()
{
var data = await _dbContext.Queryable<DeviceUploadLogEntity>().OrderBy(x => x.Id).SingleAsync();
var tableName = "deviceuploadlog_20250107";
await _dbContext.Client.Insertable(data).AS(tableName).ExecuteCommandAsync();
await _dbContext.DeleteReallyAsync(data);
}
public async Task<DateTimePeriod> GetDeviceUploadRecordSettingAsync(string deviceNo)
{
var start = await _dbContext.Queryable<DeviceUploadLogEntity>()
@@ -427,7 +436,7 @@ public class DeviceUploadLogService : IDeviceUploadLogService
public async Task<Pagination<DeviceUploadLogResponse>> 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<DeviceUploadLogEntity>()
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<DeviceUploadLogEntity>().AS("deviceuploadlog_20250107")
: _dbContext.Queryable<DeviceUploadLogEntity>();
var r = await table
.LeftJoin<DeviceEntity>((x, device) => x.DeviceUniqueNo == device.UniqueNo)
.LeftJoin<GainfoEntity>((x, device, ga) => x.UserUniqueNo == ga.Code)
.LeftJoin<OutsourceEntity>((x, device, ga, os) => x.UserUniqueNo == os.Code)
.LeftJoin<GainfoEntity>((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) =>