From e39fb628360df7a272b12558922f11cfb06a95a9 Mon Sep 17 00:00:00 2001 From: "DESKTOP-G961P6V\\Zhh" <839860190@qq.com> Date: Fri, 17 May 2024 17:26:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChargeRequestInterfaceQueryWorker.cs | 57 +++++++++++++++++ .../ImportLisResultInterfaceWorker.cs | 58 ++++++++++++++++- .../ImportPacsResultInterfaceWorker.cs | 60 ++++++++++++++++- .../ImportPatientRegisterInterfaceWorker.cs | 64 ++++++++++++++++++- .../Schedulers/ThirdInterfaceWorkerBase.cs | 58 +---------------- 5 files changed, 236 insertions(+), 61 deletions(-) diff --git a/src/Shentun.Peis.HttpApi.Host/Schedulers/ChargeRequestInterfaceQueryWorker.cs b/src/Shentun.Peis.HttpApi.Host/Schedulers/ChargeRequestInterfaceQueryWorker.cs index 5b088a0..38f5d6b 100644 --- a/src/Shentun.Peis.HttpApi.Host/Schedulers/ChargeRequestInterfaceQueryWorker.cs +++ b/src/Shentun.Peis.HttpApi.Host/Schedulers/ChargeRequestInterfaceQueryWorker.cs @@ -22,6 +22,63 @@ namespace Shentun.Peis.Schedulers } public class ChargeRequestInterfaceQueryWorker : ThirdInterfaceWorkerBase, IChargeRequestInterfaceQueryWorker { + private static long i; + private static bool _isRunning = false; + private static readonly object lockObject = new object(); + public virtual void DoWork(Guid interfaceId) + { + if (_isRunning) return; + lock (lockObject) + { + _isRunning = true; + try + { + //Logger.LogInformation("Executed" + GetType().Name + "..!"); + var appServiceHelper = new AppServiceHelper(); + //appServiceHelper.Login(); + var thirdInterFaceForHostOutDto = appServiceHelper.CallAppService("api/app/ThirdInterface/GetList", null); + var thirdInterfaceDto = thirdInterFaceForHostOutDto.Data.Where(o => o.Id == interfaceId).FirstOrDefault(); + if (thirdInterfaceDto == null) + { + _isRunning = false; + return; + } + if (thirdInterfaceDto.IsActive != 'Y') + { + _isRunning = false; + return; + } + var parmValue = thirdInterfaceDto.ParmValue; + if (!string.IsNullOrWhiteSpace(parmValue)) + { + var configurationBuilder = new ConfigurationBuilder() + .AddJsonStream(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(parmValue))); + var interfaceConfig = configurationBuilder.Build(); + + var isActive = interfaceConfig.GetSection("Interface").GetSection("Scheduler") + .GetSection("IsActive").Value; + if (isActive != "Y") + { + _isRunning = false; + return; + } + var assemblyName = interfaceConfig.GetSection("Interface").GetSection("AssemblyName").Value; + var className = interfaceConfig.GetSection("Interface").GetSection("ClassName").Value; + var funName = "DoWork"; + object[] classConstructorArg = new object[] { thirdInterfaceDto.Id }; + ReflectionHelper.Invoke(assemblyName, className, classConstructorArg, funName); + } + + + } + catch (Exception ex) + { + Logger.LogError("Executed " + GetType().Name + " Error" + ex.Message); + } + _isRunning = false; + return; + } + } public void DoWork() { throw new NotImplementedException(); diff --git a/src/Shentun.Peis.HttpApi.Host/Schedulers/ImportLisResultInterfaceWorker.cs b/src/Shentun.Peis.HttpApi.Host/Schedulers/ImportLisResultInterfaceWorker.cs index 9f3bd70..41df290 100644 --- a/src/Shentun.Peis.HttpApi.Host/Schedulers/ImportLisResultInterfaceWorker.cs +++ b/src/Shentun.Peis.HttpApi.Host/Schedulers/ImportLisResultInterfaceWorker.cs @@ -18,7 +18,63 @@ namespace Shentun.Peis.Schedulers } public class ImportLisResultInterfaceWorker : ThirdInterfaceWorkerBase, IImportLisResultInterfaceWorker { - + private static long i; + private static bool _isRunning = false; + private static readonly object lockObject = new object(); + public virtual void DoWork(Guid interfaceId) + { + if (_isRunning) return; + lock (lockObject) + { + _isRunning = true; + try + { + //Logger.LogInformation("Executed" + GetType().Name + "..!"); + var appServiceHelper = new AppServiceHelper(); + //appServiceHelper.Login(); + var thirdInterFaceForHostOutDto = appServiceHelper.CallAppService("api/app/ThirdInterface/GetList", null); + var thirdInterfaceDto = thirdInterFaceForHostOutDto.Data.Where(o => o.Id == interfaceId).FirstOrDefault(); + if (thirdInterfaceDto == null) + { + _isRunning = false; + return; + } + if (thirdInterfaceDto.IsActive != 'Y') + { + _isRunning = false; + return; + } + var parmValue = thirdInterfaceDto.ParmValue; + if (!string.IsNullOrWhiteSpace(parmValue)) + { + var configurationBuilder = new ConfigurationBuilder() + .AddJsonStream(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(parmValue))); + var interfaceConfig = configurationBuilder.Build(); + + var isActive = interfaceConfig.GetSection("Interface").GetSection("Scheduler") + .GetSection("IsActive").Value; + if (isActive != "Y") + { + _isRunning = false; + return; + } + var assemblyName = interfaceConfig.GetSection("Interface").GetSection("AssemblyName").Value; + var className = interfaceConfig.GetSection("Interface").GetSection("ClassName").Value; + var funName = "DoWork"; + object[] classConstructorArg = new object[] { thirdInterfaceDto.Id }; + ReflectionHelper.Invoke(assemblyName, className, classConstructorArg, funName); + } + + + } + catch (Exception ex) + { + Logger.LogError("Executed " + GetType().Name + " Error" + ex.Message); + } + _isRunning = false; + return; + } + } public void DoWork() { throw new System.NotImplementedException(); diff --git a/src/Shentun.Peis.HttpApi.Host/Schedulers/ImportPacsResultInterfaceWorker.cs b/src/Shentun.Peis.HttpApi.Host/Schedulers/ImportPacsResultInterfaceWorker.cs index 1aaba23..e937a39 100644 --- a/src/Shentun.Peis.HttpApi.Host/Schedulers/ImportPacsResultInterfaceWorker.cs +++ b/src/Shentun.Peis.HttpApi.Host/Schedulers/ImportPacsResultInterfaceWorker.cs @@ -17,8 +17,64 @@ namespace Shentun.Peis.Schedulers } public class ImportPacsResultInterfaceWorker : ThirdInterfaceWorkerBase, IImportPacsResultInterfaceWorker { - - + + private static long i; + private static bool _isRunning = false; + private static readonly object lockObject = new object(); + public virtual void DoWork(Guid interfaceId) + { + if (_isRunning) return; + lock (lockObject) + { + _isRunning = true; + try + { + //Logger.LogInformation("Executed" + GetType().Name + "..!"); + var appServiceHelper = new AppServiceHelper(); + //appServiceHelper.Login(); + var thirdInterFaceForHostOutDto = appServiceHelper.CallAppService("api/app/ThirdInterface/GetList", null); + var thirdInterfaceDto = thirdInterFaceForHostOutDto.Data.Where(o => o.Id == interfaceId).FirstOrDefault(); + if (thirdInterfaceDto == null) + { + _isRunning = false; + return; + } + if (thirdInterfaceDto.IsActive != 'Y') + { + _isRunning = false; + return; + } + var parmValue = thirdInterfaceDto.ParmValue; + if (!string.IsNullOrWhiteSpace(parmValue)) + { + var configurationBuilder = new ConfigurationBuilder() + .AddJsonStream(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(parmValue))); + var interfaceConfig = configurationBuilder.Build(); + + var isActive = interfaceConfig.GetSection("Interface").GetSection("Scheduler") + .GetSection("IsActive").Value; + if (isActive != "Y") + { + _isRunning = false; + return; + } + var assemblyName = interfaceConfig.GetSection("Interface").GetSection("AssemblyName").Value; + var className = interfaceConfig.GetSection("Interface").GetSection("ClassName").Value; + var funName = "DoWork"; + object[] classConstructorArg = new object[] { thirdInterfaceDto.Id }; + ReflectionHelper.Invoke(assemblyName, className, classConstructorArg, funName); + } + + + } + catch (Exception ex) + { + Logger.LogError("Executed " + GetType().Name + " Error" + ex.Message); + } + _isRunning = false; + return; + } + } public void DoWork() { diff --git a/src/Shentun.Peis.HttpApi.Host/Schedulers/ImportPatientRegisterInterfaceWorker.cs b/src/Shentun.Peis.HttpApi.Host/Schedulers/ImportPatientRegisterInterfaceWorker.cs index c70d2f5..bdb9d3b 100644 --- a/src/Shentun.Peis.HttpApi.Host/Schedulers/ImportPatientRegisterInterfaceWorker.cs +++ b/src/Shentun.Peis.HttpApi.Host/Schedulers/ImportPatientRegisterInterfaceWorker.cs @@ -1,4 +1,9 @@ -using System; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging; +using Shentun.Utilities; +using System; +using System.IO; +using System.Linq; namespace Shentun.Peis.Schedulers { @@ -9,6 +14,63 @@ namespace Shentun.Peis.Schedulers } public class ImportPatientRegisterInterfaceWorker : ThirdInterfaceWorkerBase, IImportPatientRegisterInterfaceWorker { + private static long i; + private static bool _isRunning = false; + private static readonly object lockObject = new object(); + public virtual void DoWork(Guid interfaceId) + { + if (_isRunning) return; + lock (lockObject) + { + _isRunning = true; + try + { + //Logger.LogInformation("Executed" + GetType().Name + "..!"); + var appServiceHelper = new AppServiceHelper(); + //appServiceHelper.Login(); + var thirdInterFaceForHostOutDto = appServiceHelper.CallAppService("api/app/ThirdInterface/GetList", null); + var thirdInterfaceDto = thirdInterFaceForHostOutDto.Data.Where(o => o.Id == interfaceId).FirstOrDefault(); + if (thirdInterfaceDto == null) + { + _isRunning = false; + return; + } + if (thirdInterfaceDto.IsActive != 'Y') + { + _isRunning = false; + return; + } + var parmValue = thirdInterfaceDto.ParmValue; + if (!string.IsNullOrWhiteSpace(parmValue)) + { + var configurationBuilder = new ConfigurationBuilder() + .AddJsonStream(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(parmValue))); + var interfaceConfig = configurationBuilder.Build(); + + var isActive = interfaceConfig.GetSection("Interface").GetSection("Scheduler") + .GetSection("IsActive").Value; + if (isActive != "Y") + { + _isRunning = false; + return; + } + var assemblyName = interfaceConfig.GetSection("Interface").GetSection("AssemblyName").Value; + var className = interfaceConfig.GetSection("Interface").GetSection("ClassName").Value; + var funName = "DoWork"; + object[] classConstructorArg = new object[] { thirdInterfaceDto.Id }; + ReflectionHelper.Invoke(assemblyName, className, classConstructorArg, funName); + } + + + } + catch (Exception ex) + { + Logger.LogError("Executed " + GetType().Name + " Error" + ex.Message); + } + _isRunning = false; + return; + } + } public void DoWork() { throw new NotImplementedException(); diff --git a/src/Shentun.Peis.HttpApi.Host/Schedulers/ThirdInterfaceWorkerBase.cs b/src/Shentun.Peis.HttpApi.Host/Schedulers/ThirdInterfaceWorkerBase.cs index 53a296b..18d49e7 100644 --- a/src/Shentun.Peis.HttpApi.Host/Schedulers/ThirdInterfaceWorkerBase.cs +++ b/src/Shentun.Peis.HttpApi.Host/Schedulers/ThirdInterfaceWorkerBase.cs @@ -14,63 +14,7 @@ namespace Shentun.Peis.Schedulers public class ThirdInterfaceWorkerBase: HangfireBackgroundWorkerBase { - private static long i; - private static bool _isRunning = false; - private static readonly object lockObject = new object(); - public virtual void DoWork(Guid interfaceId) - { - if (_isRunning) return; - lock (lockObject) - { - _isRunning = true; - try - { - //Logger.LogInformation("Executed" + GetType().Name + "..!"); - var appServiceHelper = new AppServiceHelper(); - //appServiceHelper.Login(); - var thirdInterFaceForHostOutDto = appServiceHelper.CallAppService("api/app/ThirdInterface/GetList", null); - var thirdInterfaceDto = thirdInterFaceForHostOutDto.Data.Where(o => o.Id == interfaceId).FirstOrDefault(); - if (thirdInterfaceDto == null) - { - _isRunning = false; - return; - } - if(thirdInterfaceDto.IsActive != 'Y') - { - _isRunning = false; - return; - } - var parmValue = thirdInterfaceDto.ParmValue; - if (!string.IsNullOrWhiteSpace(parmValue)) - { - var configurationBuilder = new ConfigurationBuilder() - .AddJsonStream(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(parmValue))); - var interfaceConfig = configurationBuilder.Build(); - - var isActive = interfaceConfig.GetSection("Interface").GetSection("Scheduler") - .GetSection("IsActive").Value; - if (isActive != "Y") - { - _isRunning = false; - return; - } - var assemblyName = interfaceConfig.GetSection("Interface").GetSection("AssemblyName").Value; - var className = interfaceConfig.GetSection("Interface").GetSection("ClassName").Value; - var funName = "DoWork"; - object[] classConstructorArg = new object[] { thirdInterfaceDto.Id }; - ReflectionHelper.Invoke(assemblyName, className, classConstructorArg, funName); - } - - - } - catch (Exception ex) - { - Logger.LogError("Executed " + GetType().Name + " Error" + ex.Message); - } - _isRunning = false; - return; - } - } + public override Task DoWorkAsync(CancellationToken cancellationToken = default) {