diff --git a/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncPersonJob.cs b/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncPersonJob.cs index 71969e5d..41c8f388 100644 --- a/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncPersonJob.cs +++ b/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncPersonJob.cs @@ -48,13 +48,16 @@ public class SyncPersonJob foreach (var searchCodes in workCodes.Chunk(4000)) { - var existsWorkCodes = await _dbContext.Queryable() - .Where(x => searchCodes.Contains(x.Code)) - .Select(x => x.Code) + var existsWorkCodes = await _dbContext.Queryable() + .Where(x => searchCodes.Contains(x.ename)) + .Select(x => x.ename) .ToListAsync(); var originUpdates = persons.Where(x => existsWorkCodes.Contains(x.ZWORKCODE)).ToList(); - var originInserts = persons.Where(x => searchCodes.Contains(x.ZWORKCODE)).Except(originUpdates, new SapPersonComparer()).ToList(); + _logger.LogInformation("SAP分批更新数:{count}", originUpdates.Count); + var existsUpdateWorkCodes = originUpdates.Select(x => x.ZWORKCODE).ToList(); + var originInserts = persons.Where(x => searchCodes.Contains(x.ZWORKCODE)).Where(x => !existsUpdateWorkCodes.Contains(x.ZWORKCODE)).ToList(); + _logger.LogInformation("SAP分批新增数:{count}", originInserts.Count); int i = 0; var currentTotal = originUpdates.Count + originInserts.Count;