From 5a35adb1ddde078849c1498383deae482c479585 Mon Sep 17 00:00:00 2001 From: xiaochanghai Date: Fri, 24 Jan 2025 17:05:15 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=9B=E5=B0=BE=E5=9F=B9=E8=AE=AD=E8=AE=B2?= =?UTF-8?q?=E5=B8=88=E8=80=81=E7=89=88=E6=9C=AC=E5=90=8C=E6=AD=A5=EF=BC=8C?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ghre/IGhre_TeacherServices.cs | 2 + .../Ghre/Ghre_TeacherServices.cs | 66 ++++++++++++++++++- .../Job_Ushio_TrainTeacher_Sync_Quartz.cs | 10 +-- 3 files changed, 72 insertions(+), 6 deletions(-) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_TeacherServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_TeacherServices.cs index e93c6c5d..3b3709c5 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_TeacherServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_TeacherServices.cs @@ -12,4 +12,6 @@ public interface IGhre_TeacherServices : IBaseServices UpdateStatus(InsertGhre_TeacherInput input, string status); Task> InsertByStatus(InsertGhre_TeacherInput insertModel, string status); + + Task Ushio_Sync(); } \ No newline at end of file diff --git a/Tiobon.Core.Services/Ghre/Ghre_TeacherServices.cs b/Tiobon.Core.Services/Ghre/Ghre_TeacherServices.cs index c8794a1f..9ebbddb7 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_TeacherServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_TeacherServices.cs @@ -1,4 +1,5 @@ -using static Tiobon.Core.Model.Consts; +using Serilog; +using static Tiobon.Core.Model.Consts; namespace Tiobon.Core.Services; @@ -588,4 +589,67 @@ FROM (SELECT A.*, } #endregion + + + #region 牛尾培训讲师同步 + public async Task Ushio_Sync() + { + Log.Information($"【牛尾培训讲师同步】开始同步"); + try + { + string sql = @"SELECT A.SchoolId, + b.DeptID, + C.StaffId, + A.TeacherType, + A.TeacherNo, + A.TeacherName, + A.PhotoUrl, + A.Gender, + A.Email, + A.Mobile, + A.TeacherLevel, + A.Price, + A.SkillPoints, + A.ApplyReason, + C.StaffId SponsorId,A.WorkNo + FROM [120.26.205.42].[GhrUshio].[dbo].Ushio_TrainTeacher A + LEFT JOIN Ghro_Dept B ON A.DeptNo = B.DeptNo + LEFT JOIN Ghra_Staff C ON A.TeacherNo = C.StaffNo + LEFT JOIN Ghra_Staff D ON A.ApplyStaffNo = D.StaffNo + WHERE WorkNo NOT IN (SELECT WorkNo + FROM Ghre_Teacher + WHERE WorkNo IS NOT NULL)"; + + var dt = await Db.Ado.GetDataTableAsync(sql); + + var list = Db.Utilities.DataTableToList(dt); + + Log.Information($"【牛尾培训讲师同步】查询到待同步{list.Count}条数据"); + for (int i = 0; i < list.Count; i++) + { + Log.Information($"【牛尾培训讲师同步】同步队列{i + 1}/{list.Count}"); + + var insert = Mapper.Map(list[i]).ToANew(); + + if (await base.AnyAsync(x => x.WorkNo == insert.WorkNo)) + continue; + + if (insert.SchoolId == 0) insert.SchoolId = null; + + var id = await base.Add(insert); + + sql = $"SELECT ISNULL(MAX(id)+1,1) FROM Ghre_Teacher WHERE Id !='{id}'"; + var id1 = await Db.Ado.GetLongAsync(sql); + sql = $"UPDATE Ghre_Teacher SET Id={id1} WHERE Id ='{id}'"; + await Db.Ado.ExecuteCommandAsync(sql); + } + } + catch (Exception E) + { + Log.Information($"【牛尾培训讲师同步】发生错误:{E.Message}"); + Log.Information($"【牛尾培训讲师同步】发生错误行:{E.StackTrace}"); + } + Log.Information($"【牛尾培训讲师同步】结束同步"); + } + #endregion } \ No newline at end of file diff --git a/Tiobon.Core.Tasks/QuartzNet/Jobs/Job_Ushio_TrainTeacher_Sync_Quartz.cs b/Tiobon.Core.Tasks/QuartzNet/Jobs/Job_Ushio_TrainTeacher_Sync_Quartz.cs index c69729d9..f04f10c3 100644 --- a/Tiobon.Core.Tasks/QuartzNet/Jobs/Job_Ushio_TrainTeacher_Sync_Quartz.cs +++ b/Tiobon.Core.Tasks/QuartzNet/Jobs/Job_Ushio_TrainTeacher_Sync_Quartz.cs @@ -8,12 +8,12 @@ namespace Tiobon.Core.Tasks; /// public class Job_Ushio_TrainTeacher_Sync_Quartz : JobBase, IJob { - private readonly IGhrh_ResumeServices _ghrh_ResumeServices; + private readonly IGhre_TeacherServices _ghre_TeacherServices; - public Job_Ushio_TrainTeacher_Sync_Quartz(IGhrh_ResumeServices ghrh_ResumeServices, ITasksQzServices tasksQzServices, ITasksLogServices tasksLogServices) + public Job_Ushio_TrainTeacher_Sync_Quartz(IGhre_TeacherServices ghre_TeacherServices, ITasksQzServices tasksQzServices, ITasksLogServices tasksLogServices) : base(tasksQzServices, tasksLogServices) { - _ghrh_ResumeServices = ghrh_ResumeServices; + _ghre_TeacherServices = ghre_TeacherServices; } public async Task Execute(IJobExecutionContext context) { @@ -21,7 +21,7 @@ public class Job_Ushio_TrainTeacher_Sync_Quartz : JobBase, IJob } public async Task Run(IJobExecutionContext context) { - Console.WriteLine($"Job_Ushio_TrainRequest_Sync_Quartz 执行 {DateTime.Now.ToShortTimeString()}"); - await _ghrh_ResumeServices.Shihua_OA_Sync(); + Console.WriteLine($"Job_Ushio_TrainTeacher_Sync_Quartz 执行 {DateTime.Now.ToShortTimeString()}"); + await _ghre_TeacherServices.Ushio_Sync(); } }