using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Device.Entities; using Dlhis.Entity.Device.Enums; using Kurisu.AspNetCore.Utils.Extensions; using Kurisu.SqlSugar.Services; namespace Dlhis.ScheduledTask.TaskAssignment.Job { public class CreateGetAttendanceJob { private readonly IDbContext _dbContext; private readonly ILogger _logger; public CreateGetAttendanceJob(IDbContext dbContext, ILogger logger) { _logger = logger; _dbContext = dbContext; } public async Task RunAsync() { _dbContext.Client.QueryFilter.ClearAndBackup(); try { var devices = await _dbContext.Queryable().Where(x => x.Enable).ToListAsync(); devices = devices.Where(x => x.Funcs.Contains(DeviceFuncEnumType.Attendance)).ToList(); var tasks = devices.Select(x => new DeviceTaskEntity { DeviceUniqueNo = x.UniqueNo, Status = DeviceTaskStatusEnumType.Wait, TenantId = x.TenantId, Version = 0, UserNo = string.Empty, UserCode = string.Empty, Type = DeviceTaskEnumType.UploadRecord, CreatedBy = 1, CreateTime = DateTime.Now, ModifiedBy = 1, ModifiedTime = DateTime.Now, }).ToList(); await _dbContext.InsertAsync(tasks); } catch (Exception ex) { _logger.LogError(ex, $"生成{DeviceTaskEnumType.UploadRecord.GetDescription()}任务失败:" + ex.Message); } finally { _dbContext.Client.QueryFilter.Restore(); } } } }