37 lines
1.1 KiB
C#
37 lines
1.1 KiB
C#
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 1/1 * ? ", Name = "SAP同步出差信息")]
|
|
public class SyncBusinessTripJob : BaseJob
|
|
{
|
|
private readonly ISyncApi _syncApi;
|
|
|
|
/// <inheritdoc />
|
|
public SyncBusinessTripJob(IServiceProvider serviceProvider, ISyncApi syncApi) : base(serviceProvider)
|
|
{
|
|
_syncApi = syncApi;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override async Task RunAsync(IServiceProvider serviceProvider)
|
|
{
|
|
var identityDbContext = DbContext.ChangeDb("identity");
|
|
var factories = await identityDbContext.Queryable<TenantEntity>().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);
|
|
}
|
|
}
|
|
}
|
|
} |