fix 同步任务调整
This commit is contained in:
@@ -7,6 +7,9 @@ using Dlhis.ScheduledTask.SyncSapInfo.Comparers;
|
||||
using Dlhis.ScheduledTask.SyncSapInfo.Services;
|
||||
using Kurisu.AspNetCore.Scope;
|
||||
using Dlhis.Entity.Basic.Enums;
|
||||
using Dlhis.Sys.Api;
|
||||
using Dlhis.Sys.Api.Response;
|
||||
using SqlSugar;
|
||||
|
||||
namespace Dlhis.ScheduledTask.SyncSapInfo.Job;
|
||||
|
||||
@@ -14,12 +17,15 @@ public class SyncPersonJob
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
private readonly IJinkoSapService _jinkoSapService;
|
||||
private readonly ITenantApi _tenantApi;
|
||||
private List<PositionEntity> _positions;
|
||||
private List<TenantResponse> _tenants;
|
||||
|
||||
public SyncPersonJob(ILogger<SyncPersonJob> logger, IJinkoSapService jinkoSapService)
|
||||
public SyncPersonJob(ILogger<SyncPersonJob> logger, IJinkoSapService jinkoSapService, ITenantApi tenantApi)
|
||||
{
|
||||
_logger = logger;
|
||||
_jinkoSapService = jinkoSapService;
|
||||
_tenantApi = tenantApi;
|
||||
}
|
||||
|
||||
public async Task RunAsync()
|
||||
@@ -44,8 +50,11 @@ public class SyncPersonJob
|
||||
}
|
||||
}
|
||||
|
||||
private int SavePerson(List<SapPersonItem> persons)
|
||||
private async Task<int> SavePerson(List<SapPersonItem> persons)
|
||||
{
|
||||
var tenantResult = await _tenantApi.GetTenantsInternalAsync();
|
||||
_tenants = tenantResult.Data;
|
||||
|
||||
var failure = 0;
|
||||
var workCodes = persons.Select(x => x.ZWORKCODE).ToList();
|
||||
var chunks = workCodes.Chunk(4000).ToList();
|
||||
@@ -67,7 +76,6 @@ public class SyncPersonJob
|
||||
var existsUpdateWorkCodes = originUpdates.Select(x => x.ZWORKCODE).ToList();
|
||||
var originInserts = persons.Where(x => searchCodes.Contains(x.ZWORKCODE)).Where(x => !existsUpdateWorkCodes.Contains(x.ZWORKCODE)).ToList();
|
||||
|
||||
|
||||
int i = 0;
|
||||
var currentTotal = originUpdates.Count + originInserts.Count;
|
||||
|
||||
@@ -137,6 +145,8 @@ public class SyncPersonJob
|
||||
Position = item.web,
|
||||
Remark = item.remark,
|
||||
Werks = item.WERKS,
|
||||
Workplace = _tenants.FirstOrDefault(x => x.Name == item.ZZ_GZDJDNM)?.Code,
|
||||
Factory = _tenants.FirstOrDefault(x => x.Name == item.ZZ_GZDCQNM)?.Code,
|
||||
};
|
||||
|
||||
if (item.isowner == "T")
|
||||
@@ -149,7 +159,7 @@ public class SyncPersonJob
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void UpdatePerson(IDbContext db, GainfoSapEntity item)
|
||||
{
|
||||
var gainfoSap = db.Queryable<GainfoSapEntity>().Where(x => x.ename == item.ename).First();
|
||||
@@ -163,7 +173,9 @@ public class SyncPersonJob
|
||||
isowner = item.isowner,
|
||||
remark = item.remark,
|
||||
email = item.email,
|
||||
WERKS = item.WERKS
|
||||
WERKS = item.WERKS,
|
||||
ZZ_GZDJDNM = item.ZZ_GZDJDNM,
|
||||
ZZ_GZDCQNM = item.ZZ_GZDCQNM,
|
||||
})
|
||||
.Where(x => x.ename == item.ename)
|
||||
.ExecuteCommand();
|
||||
@@ -180,7 +192,9 @@ public class SyncPersonJob
|
||||
DepartmentNo = item.appellation,
|
||||
Remark = item.remark,
|
||||
Degree = item.email,
|
||||
Werks = item.WERKS
|
||||
Werks = item.WERKS,
|
||||
Workplace = item.ZZ_GZDJDNM,
|
||||
Factory = item.ZZ_GZDCQNM
|
||||
})
|
||||
.Where(x => x.Code == item.ename)
|
||||
.ExecuteCommand();
|
||||
@@ -288,15 +302,18 @@ public class SyncPersonJob
|
||||
sex = sex,
|
||||
web = SubString(position?.Name ?? "", 30),
|
||||
logdate = DateTime.Now,
|
||||
isowner = int.Parse(person.ZSTATUS) < 4 ? "T" : "F",
|
||||
isowner = int.Parse(person.ZSTATUS) < 5 ? "T" : "F",
|
||||
@class = "C",
|
||||
country = "CN",
|
||||
country = person.ZZ_COUNNM,
|
||||
log_ip = "127.0.0.1",
|
||||
log_shift = "1",
|
||||
log_id = "XX",
|
||||
address = "",
|
||||
occupation = "99",
|
||||
nation = "01"
|
||||
nation = "01",
|
||||
ZZ_COUNNM = person.ZZ_COUNNM,
|
||||
ZZ_GZDJDNM = person.ZZ_GZDJDNM,
|
||||
ZZ_GZDCQNM = person.ZZ_GZDCQNM,
|
||||
};
|
||||
|
||||
return o;
|
||||
|
||||
Reference in New Issue
Block a user