diff --git a/Src/Dlhis.Basic/Organization/Repositories/IGainfoSapRepository.cs b/Src/Dlhis.Basic/Organization/Repositories/IGainfoSapRepository.cs index dd9d3034..4bedf03e 100644 --- a/Src/Dlhis.Basic/Organization/Repositories/IGainfoSapRepository.cs +++ b/Src/Dlhis.Basic/Organization/Repositories/IGainfoSapRepository.cs @@ -5,4 +5,6 @@ namespace Dlhis.Basic.Organization.Repositories; public interface IGainfoSapRepository : IScopeDependency { Task> GetLatestPersonsAsync(List workCodes); + + Task DeleteByWorkCodeAsync(string workCode); } diff --git a/Src/Dlhis.Basic/Organization/Repositories/Implements/GainfoSapRepository.cs b/Src/Dlhis.Basic/Organization/Repositories/Implements/GainfoSapRepository.cs index 9ccbdb5d..ed37e5b2 100644 --- a/Src/Dlhis.Basic/Organization/Repositories/Implements/GainfoSapRepository.cs +++ b/Src/Dlhis.Basic/Organization/Repositories/Implements/GainfoSapRepository.cs @@ -14,6 +14,13 @@ public class GainfoSapRepository : IGainfoSapRepository _dbContext = dbContext; } + public async Task DeleteByWorkCodeAsync(string workCode) + { + return await _dbContext.Deleteable() + .Where(x => x.ename == workCode) + .ExecuteCommandAsync(); + } + public async Task> GetLatestPersonsAsync(List workCodes) { var persons = new List(); diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoUpdateService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoUpdateService.cs index 15860f92..8d2aeeed 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoUpdateService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoUpdateService.cs @@ -99,6 +99,9 @@ public class GainfoUpdateService : IGainfoUpdateService _logger.LogInformation("获取SAP人员数量为:{count}", persons.Count); if (persons.Count > 0) { + var deleteCount = await _gainfoSapRepository.DeleteByWorkCodeAsync(code); + _logger.LogInformation("删除工号:{code}的GainfoSap历史数量:{count}", code, deleteCount); + var modifiedPersons = await GetModifiedPersonAsync(persons.OrderByDescending(x => x.ZSTATUS).ThenBy(x => x.ZRZRQ).ToList()); _logger.LogInformation("SAP人员差异数量为:{count}", modifiedPersons.Count); if (modifiedPersons.Count > 0)