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);
}
}
}
}