refactor 封装任务,调整人员获取
This commit is contained in:
58
Src/Dlhis.ScheduledTask/Jobs/SyncOrganizationJob.cs
Normal file
58
Src/Dlhis.ScheduledTask/Jobs/SyncOrganizationJob.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
using Dlhis.Entity.Basic.Entity;
|
||||
using Dlhis.ScheduledTask.SyncSapInfo.Dto;
|
||||
using Dlhis.ScheduledTask.SyncSapInfo.Services;
|
||||
using Hangfire;
|
||||
using Kurisu.Scheduled;
|
||||
using Kurisu.Scheduled.Attributes;
|
||||
|
||||
namespace Dlhis.ScheduledTask.Jobs;
|
||||
|
||||
/// <summary>
|
||||
/// SAP组织架构数据同步
|
||||
/// </summary>
|
||||
[RecurringJob(nameof(SyncOrganizationJob), "0 0 0 * * ?", Name = "SAP组织架构数据同步", Queue = "SAP")]
|
||||
public class SyncOrganizationJob : BaseJob
|
||||
{
|
||||
private readonly IJinkoSapService _jinkoSapService;
|
||||
|
||||
public SyncOrganizationJob(IServiceProvider serviceProvider, IJinkoSapService jinkoSapService) : base(serviceProvider)
|
||||
{
|
||||
_jinkoSapService = jinkoSapService;
|
||||
}
|
||||
|
||||
public override async Task RunAsync(IServiceProvider serviceProvider)
|
||||
{
|
||||
var orgResult = await _jinkoSapService.GetSapOrganizationsAsync();
|
||||
|
||||
if (orgResult.Org != null && orgResult.Org.Items.Count > 0)
|
||||
{
|
||||
await SaveOrg(orgResult.Org.Items);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task SaveOrg(List<SapOrganizationItem> modifiedOrgList)
|
||||
{
|
||||
foreach (SapOrganizationItem item in modifiedOrgList)
|
||||
{
|
||||
var department = await DbContext.Queryable<DepartmentEntity>().Where(x => x.No == item.OBJID).FirstAsync();
|
||||
if (department == null)
|
||||
{
|
||||
department = new DepartmentEntity
|
||||
{
|
||||
No = item.OBJID,
|
||||
Name = item.STEXT,
|
||||
PNo = item.SOBID,
|
||||
};
|
||||
|
||||
await DbContext.InsertAsync(department);
|
||||
}
|
||||
else
|
||||
{
|
||||
department.PNo = item.SOBID;
|
||||
department.Name = item.STEXT;
|
||||
|
||||
await DbContext.UpdateAsync(department);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user