using Dlhis.Basic.Api; using Dlhis.Entity.Sys.Entities; using Dlhis.ScheduledTask.Attributes; using SqlSugar; namespace Dlhis.ScheduledTask.Jobs; [RecurringJob(nameof(SyncBusinessTripJob), "0 0 1,6 * * ?", Name = "SAP同步出差信息")] public class SyncBusinessTripJob : BaseJob { private readonly ISyncApi _syncApi; /// public SyncBusinessTripJob(IServiceProvider serviceProvider, ISyncApi syncApi) : base(serviceProvider) { _syncApi = syncApi; } /// protected override async Task RunAsync(IServiceProvider serviceProvider) { var identityDbContext = DbContext.ChangeDb("identity"); var factories = await identityDbContext.Queryable().Where(x => !SqlFunc.IsNullOrEmpty(x.PCode)).ToListAsync(); foreach (var factory in factories) { try { await _syncApi.HandlerBusinessTripsAsync(factory.Code); } catch (Exception e) { Logger.LogError(e, "同步出差人员异常:{msg}", e.Message); } } } }