using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Sap; using Dlhis.ScheduledTask.Attributes; using Dlhis.ScheduledTask.Common.Services; namespace Dlhis.ScheduledTask.Jobs; [RecurringJob(nameof(SyncFaceJob), "0 0/15 * * * ?", Name = "face数据同步sap")] public class SyncFaceJob : BaseJob { private readonly IJinkoJIPService _jinkoJipService; /// public SyncFaceJob(IServiceProvider serviceProvider, IJinkoJIPService jinkoJipService) : base(serviceProvider) { _jinkoJipService = jinkoJipService; } /// protected override async Task RunAsync(IServiceProvider serviceProvider) { var faceDbContext = DbContext.ChangeDb("face"); var existsData = await DbContext.Queryable().Where(x => x.IsSync).Select(x => x.Key).ToListAsync(); var userFaces = await faceDbContext.Queryable() .Where(x => !existsData.Contains(x.UserCode)) .ToPageListAsync(1, 5000); foreach (var data in userFaces) { try { var response = await _jinkoJipService.SyncFaceToSapAsync(data.UserCode, data.Face); if (response.OLX == "S") { await DbContext.InsertAsync(new SapDataSyncEntity { Key = data.UserCode, Type = "Face", IsSync = true }); } } catch (Exception e) { Logger.LogError(e, "上传face数据失败:{message}", e.Message); } } } }