Browse Source

第三方接口

bjmzak
DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
4b21aecaa5
  1. 4
      src/Shentun.Peis.HttpApi.Host/PeisHttpApiHostModule.cs
  2. 86
      src/Shentun.Peis.HttpApi.Host/Schedulers/ChargeRequestInterfaceQueryWorker.cs
  3. 60
      src/Shentun.Peis.HttpApi.Host/Schedulers/ImportLisResultInterfaceWorker.cs
  4. 36
      src/Shentun.Peis.HttpApi.Host/Schedulers/ImportPacsResultInterfaceWorker.cs
  5. 13
      src/Shentun.Peis.HttpApi.Host/Schedulers/ThirdInterfaceWorkerBase.cs

4
src/Shentun.Peis.HttpApi.Host/PeisHttpApiHostModule.cs

@ -615,6 +615,10 @@ public class PeisHttpApiHostModule : AbpModule
{
RecurringJob.AddOrUpdate<IImportLisResultInterfaceWorker>("导入检验结果接口", o => o.DoWork(thirdInterfaceDto.Id), corn, TimeZoneInfo.Local);
}
else if (thirdInterfaceDto.ThirdInterfaceType == "04")
{
RecurringJob.AddOrUpdate<IImportPacsResultInterfaceWorker>("导入Pacs结果接口", o => o.DoWork(thirdInterfaceDto.Id), corn, TimeZoneInfo.Local);
}
}
}

86
src/Shentun.Peis.HttpApi.Host/Schedulers/ChargeRequestInterfaceQueryWorker.cs

@ -20,19 +20,11 @@ namespace Shentun.Peis.Schedulers
public void DoWork(Guid interfaceId);
public void DoWork();
}
public class ChargeRequestInterfaceQueryWorker : HangfireBackgroundWorkerBase, IChargeRequestInterfaceQueryWorker
public class ChargeRequestInterfaceQueryWorker : ThirdInterfaceWorkerBase, IChargeRequestInterfaceQueryWorker
{
private string isActive = "N";
private static long i;
private static bool _isRunning = false;
private static readonly object lockObject = new object();
public ChargeRequestInterfaceQueryWorker()
public void DoWork()
{
//RecurringJobId = nameof(ChargeRequestInterfaceQueryWorker);
//CronExpression = Cron.Daily();
//获取所有第三方接口
throw new NotImplementedException();
}
public override Task DoWorkAsync(CancellationToken cancellationToken = default)
@ -41,76 +33,6 @@ namespace Shentun.Peis.Schedulers
return Task.CompletedTask;
}
//[DisableConcurrentExecution(timeoutInSeconds: 10 * 60)]
public void DoWork(Guid interfaceId)
{
if (_isRunning) return;
lock (lockObject)
{
_isRunning = true;
try
{
Logger.LogInformation("Executed ChargeRequestInterfaceQueryWorker..!");
var appServiceHelper = new AppServiceHelper();
appServiceHelper.Login();
var thirdInterFaceForHostOutDto = appServiceHelper.CallAppService<object, ThirdInterFaceForHostOutDto>("api/app/ThirdInterface/GetList", null);
var thirdInterfaceDto = thirdInterFaceForHostOutDto.Data.Where(o => o.Id == interfaceId).FirstOrDefault();
if (thirdInterfaceDto == null)
{
_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();
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[] objects = new object[] { chargeRequestPlugInsInput };
ReflectionHelper.Invoke(assemblyName, className, parmValue, funName);
}
}
catch (Exception ex)
{
Logger.LogError("Executed ChargeRequestInterfaceQueryWorker Error" + ex.Message);
}
_isRunning = false;
return;
}
}
public void DoWork()
{
if (_isRunning) return;
lock (lockObject)
{
_isRunning = true;
try
{
}
catch (Exception ex)
{
Logger.LogError("Executed ChargeRequestInterfaceQueryWorker Error" + ex.Message);
}
_isRunning = false;
return;
}
}
}
}

60
src/Shentun.Peis.HttpApi.Host/Schedulers/ImportLisResultInterfaceWorker.cs

@ -16,65 +16,9 @@ namespace Shentun.Peis.Schedulers
public void DoWork(Guid interfaceId);
public void DoWork();
}
public class ImportLisResultInterfaceWorker : HangfireBackgroundWorkerBase, IImportLisResultInterfaceWorker
public class ImportLisResultInterfaceWorker : ThirdInterfaceWorkerBase, IImportLisResultInterfaceWorker
{
private string isActive = "N";
private static long i;
private static bool _isRunning = false;
private static readonly object lockObject = new object();
//[DisableConcurrentExecution(timeoutInSeconds: 10 * 60)]
public void DoWork(Guid interfaceId)
{
if (_isRunning) return;
lock (lockObject)
{
_isRunning = true;
try
{
Logger.LogInformation("Executed ImportLisResultInterfaceWorker..!");
var appServiceHelper = new AppServiceHelper();
appServiceHelper.Login();
var thirdInterFaceForHostOutDto = appServiceHelper.CallAppService<object, ThirdInterFaceForHostOutDto>("api/app/ThirdInterface/GetList", null);
var thirdInterfaceDto = thirdInterFaceForHostOutDto.Data.Where(o => o.Id == interfaceId).FirstOrDefault();
if (thirdInterfaceDto == null)
{
_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();
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[] objects = new object[] { chargeRequestPlugInsInput };
ReflectionHelper.Invoke(assemblyName, className, parmValue, funName);
}
}
catch (Exception ex)
{
Logger.LogError("Executed ImportLisResultInterfaceWorker Error" + ex.Message);
}
_isRunning = false;
return;
}
}
public void DoWork()
{
throw new System.NotImplementedException();

36
src/Shentun.Peis.HttpApi.Host/Schedulers/ImportPacsResultInterfaceWorker.cs

@ -0,0 +1,36 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Shentun.Utilities;
using System;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp.BackgroundWorkers.Hangfire;
namespace Shentun.Peis.Schedulers
{
public interface IImportPacsResultInterfaceWorker
{
public void DoWork(Guid interfaceId);
public void DoWork();
}
public class ImportPacsResultInterfaceWorker : ThirdInterfaceWorkerBase, IImportPacsResultInterfaceWorker
{
private string isActive = "N";
private static long i;
private static bool _isRunning = false;
private static readonly object lockObject = new object();
public void DoWork()
{
throw new NotImplementedException();
}
public override Task DoWorkAsync(CancellationToken cancellationToken = default)
{
throw new NotImplementedException();
}
}
}

13
src/Shentun.Peis.HttpApi.Host/Schedulers/ThirdInterfaceWorkerBase.cs

@ -1,6 +1,7 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Shentun.Utilities;
using Spire.Pdf.Exporting.XPS.Schema;
using System;
using System.IO;
using System.Linq;
@ -12,11 +13,11 @@ namespace Shentun.Peis.Schedulers
{
public class ThirdInterfaceWorkerBase: HangfireBackgroundWorkerBase
{
private string isActive = "N";
private static long i;
private static bool _isRunning = false;
private static readonly object lockObject = new object();
public void DoWork(Guid interfaceId)
public virtual void DoWork(Guid interfaceId)
{
if (_isRunning) return;
lock (lockObject)
@ -24,7 +25,7 @@ namespace Shentun.Peis.Schedulers
_isRunning = true;
try
{
Logger.LogInformation("Executed ImportLisResultInterfaceWorker..!");
Logger.LogInformation("Executed" + GetType().Name + "..!");
var appServiceHelper = new AppServiceHelper();
appServiceHelper.Login();
var thirdInterFaceForHostOutDto = appServiceHelper.CallAppService<object, ThirdInterFaceForHostOutDto>("api/app/ThirdInterface/GetList", null);
@ -42,7 +43,7 @@ namespace Shentun.Peis.Schedulers
.AddJsonStream(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(parmValue)));
var interfaceConfig = configurationBuilder.Build();
isActive = interfaceConfig.GetSection("Interface").GetSection("Scheduler")
var isActive = interfaceConfig.GetSection("Interface").GetSection("Scheduler")
.GetSection("IsActive").Value;
if (isActive != "Y")
{
@ -53,14 +54,14 @@ namespace Shentun.Peis.Schedulers
var className = interfaceConfig.GetSection("Interface").GetSection("ClassName").Value;
var funName = "DoWork";
//object[] objects = new object[] { chargeRequestPlugInsInput };
ReflectionHelper.InvokeAsync(assemblyName, className, parmValue, funName);
ReflectionHelper.Invoke(assemblyName, className, parmValue, funName);
}
}
catch (Exception ex)
{
Logger.LogError("Executed ImportLisResultInterfaceWorker Error" + ex.Message);
Logger.LogError("Executed " + GetType().Name + " Error" + ex.Message);
}
_isRunning = false;
return;

Loading…
Cancel
Save