51 lines
1.6 KiB
C#
51 lines
1.6 KiB
C#
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;
|
|
|
|
/// <inheritdoc />
|
|
public SyncFaceJob(IServiceProvider serviceProvider, IJinkoJIPService jinkoJipService) : base(serviceProvider)
|
|
{
|
|
_jinkoJipService = jinkoJipService;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override async Task RunAsync(IServiceProvider serviceProvider)
|
|
{
|
|
var faceDbContext = DbContext.ChangeDb("face");
|
|
|
|
var existsData = await DbContext.Queryable<SapDataSyncEntity>().Where(x => x.IsSync).Select(x => x.Key).ToListAsync();
|
|
|
|
var userFaces = await faceDbContext.Queryable<GainfoFaceEntity>()
|
|
.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);
|
|
}
|
|
}
|
|
}
|
|
} |