using Dlhis.Basic.Api; using Dlhis.Entity.Basic.Entity; using Dlhis.ScheduledTask.Attributes; using Hangfire; namespace Dlhis.ScheduledTask.Jobs; /// /// SAP人员信息同步(按人事范围拆分) /// [RecurringJob(nameof(SyncPersonJob), "0 0 3,14 * * ?", Name = "SAP人员信息同步")] public class SyncPersonJob : BaseJob { public SyncPersonJob(IServiceProvider serviceProvider) : base(serviceProvider) { } protected override async Task RunAsync(IServiceProvider serviceProvider) { var werks = await DbContext.Queryable() .Where(x => x.Enable) .ToListAsync(); foreach (var werk in werks) { var jobKey = BackgroundJob.Enqueue(x => x.SyncGainfoByWerkAsync(werk.Werk)); werk.BackgroundJobKey = jobKey; await DbContext.UpdateAsync(werk); Logger.LogInformation("SAP创建人事范围{werk}后台调度任务", werk.Werk); } } }