37 lines
1.1 KiB
C#
37 lines
1.1 KiB
C#
using Dlhis.Entity.Basic.Entity;
|
|
using Dlhis.ScheduledTask.Attributes;
|
|
using Dlhis.ScheduledTask.Common.Services;
|
|
using Hangfire;
|
|
using Kurisu.AspNetCore.Utils.Extensions;
|
|
|
|
namespace Dlhis.ScheduledTask.Jobs;
|
|
|
|
/// <summary>
|
|
/// SAP人员信息同步(按人事范围拆分)
|
|
/// </summary>
|
|
[RecurringJob(nameof(SyncPersonJob), "0 0 3,12,18 * * ?", Name = "SAP人员信息同步")]
|
|
public class SyncPersonJob : BaseJob
|
|
{
|
|
public SyncPersonJob(IServiceProvider serviceProvider) : base(serviceProvider)
|
|
{
|
|
}
|
|
|
|
protected override async Task RunAsync(IServiceProvider serviceProvider)
|
|
{
|
|
var werks = await DbContext.Queryable<WerkEntity>()
|
|
.Where(x => x.Enable)
|
|
.ToListAsync();
|
|
|
|
foreach (var werk in werks)
|
|
{
|
|
if (werk.BackgroundJobKey.IsEmpty())
|
|
{
|
|
var jobKey = BackgroundJob.Enqueue<IGainfoUpdateService>(x => x.TodoByWerkAsync(werk.Werk));
|
|
werk.BackgroundJobKey = jobKey;
|
|
await DbContext.UpdateAsync(werk);
|
|
|
|
Logger.LogInformation("SAP创建人事范围{werk}后台调度任务", werk.Werk);
|
|
}
|
|
}
|
|
}
|
|
} |