From e0a2a9ea0d85a2bed4d4f4dd1b40f94eb4fa3974 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Fri, 10 Jul 2026 14:11:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A4=84=E7=90=86=E8=A7=A6=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Organization/Controllers/SyncController.cs | 7 +++++++ .../Services/IGainfoUpdateService.cs | 8 ++++++-- .../Services/Implements/GainfoUpdateService.cs | 18 ++++++++++++++---- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/Src/Dlhis.Basic/Organization/Controllers/SyncController.cs b/Src/Dlhis.Basic/Organization/Controllers/SyncController.cs index 942bca38..28a3ab07 100644 --- a/Src/Dlhis.Basic/Organization/Controllers/SyncController.cs +++ b/Src/Dlhis.Basic/Organization/Controllers/SyncController.cs @@ -36,6 +36,13 @@ public class SyncController : ControllerBase await _gainfoUpdateService.TodoByWerkAsync(request.Code); } + [HttpPost("/api/sync/gainfo/updateToLeave")] + [IgnoreTenant] + public async Task UpdatePersonAsync(CodeRequest request) + { + await _gainfoUpdateService.UpdatePersonAsync(request.Code); + } + [HttpPost("/api/sync/gainfo/user")] [IgnoreTenant] public async Task TodoByCodeAsync(CodeRequest request) diff --git a/Src/Dlhis.Basic/Organization/Services/IGainfoUpdateService.cs b/Src/Dlhis.Basic/Organization/Services/IGainfoUpdateService.cs index da36df1a..604127c7 100644 --- a/Src/Dlhis.Basic/Organization/Services/IGainfoUpdateService.cs +++ b/Src/Dlhis.Basic/Organization/Services/IGainfoUpdateService.cs @@ -1,8 +1,12 @@ -namespace Dlhis.Basic.Organization.Services; +using Dlhis.Entity.Basic.Entity; + +namespace Dlhis.Basic.Organization.Services; public interface IGainfoUpdateService : IScopeDependency { Task TodoByWerkAsync(string werk); Task TodoByCodeAsync(string code); -} + + Task UpdatePersonAsync(string userCode); +} \ No newline at end of file diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoUpdateService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoUpdateService.cs index 2dfeec1c..27e22175 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoUpdateService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoUpdateService.cs @@ -111,6 +111,16 @@ public class GainfoUpdateService : IGainfoUpdateService } } + public async Task UpdatePersonAsync(string userCode) + { + var gainfoSap = await _dbContext.Queryable() + .Where(x => x.ename == userCode) + .Where(x => x.isowner == "F") + .OrderByDescending(x => x.logdate) + .FirstAsync(); + await UpdatePersonAsync(gainfoSap); + } + private async Task SavePersonAsync(List persons) { @@ -254,7 +264,7 @@ public class GainfoUpdateService : IGainfoUpdateService return info; } - private async Task UpdatePersonAsync(GainfoSapEntity item) + public async Task UpdatePersonAsync(GainfoSapEntity item) { await _dbContext.Client.Ado.BeginTranAsync(); try @@ -510,7 +520,7 @@ public class GainfoUpdateService : IGainfoUpdateService { var first = modifiedPersons[0]; var historyCandidates = !string.IsNullOrWhiteSpace(first.ZWORKCODE) - && lastMap.TryGetValue(first.ZWORKCODE, out var currentHistoryPerson) + && lastMap.TryGetValue(first.ZWORKCODE, out var currentHistoryPerson) ? currentHistoryPerson : null; var hasHistory = historyCandidates != null; @@ -596,7 +606,7 @@ public class GainfoUpdateService : IGainfoUpdateService KOSTL = person.KOSTL_XJ, ZZ_ZD = person.ZZ_ZD, Z_ZJ = person.Z_ZJ, - STELL = person.PLANS,//person.STELL, 20251129变更 + STELL = person.PLANS, //person.STELL, 20251129变更 STELL_NM = person.STELL_NM ?? string.Empty, ZLZRQ = person.ZLZRQ, MASSN = person.MASSN ?? string.Empty, @@ -698,4 +708,4 @@ public class GainfoUpdateService : IGainfoUpdateService private static string FormatDate(DateTime? value) => value?.ToString("yyyy-MM-dd HH:mm:ss") ?? string.Empty; private static string FormatDate(DateTime value) => value.ToString("yyyy-MM-dd HH:mm:ss"); -} +} \ No newline at end of file