From a04d0c1bc88b981e1b15ac7e989c7de7df797c3d Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Tue, 16 Jul 2024 14:12:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=BB=BB=E5=8A=A1=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WebAppoints/WebAppointWebPeisPlugIns.cs | 2 +- .../TransToWebPeisAppService.cs | 66 +++++++++++-------- ...yncPatientRegisterReportInterfaceWorker.cs | 16 +++-- 3 files changed, 51 insertions(+), 33 deletions(-) diff --git a/src/Shentun.ColumnReferencePlugIns/WebAppoints/WebAppointWebPeisPlugIns.cs b/src/Shentun.ColumnReferencePlugIns/WebAppoints/WebAppointWebPeisPlugIns.cs index ade7785..003fe78 100644 --- a/src/Shentun.ColumnReferencePlugIns/WebAppoints/WebAppointWebPeisPlugIns.cs +++ b/src/Shentun.ColumnReferencePlugIns/WebAppoints/WebAppointWebPeisPlugIns.cs @@ -144,7 +144,7 @@ namespace Shentun.Peis.PlugIns.WebAppoints SELECT id from patient_register - where summary_date >= @HandDate and + where last_modification_time >= @HandDate and complete_flag = @CompleteFlag "; var patientRegisterIds = (await conn.QueryAsync(sql, diff --git a/src/Shentun.Peis.Application/TransToWebPeis/TransToWebPeisAppService.cs b/src/Shentun.Peis.Application/TransToWebPeis/TransToWebPeisAppService.cs index b0ac022..c1e3034 100644 --- a/src/Shentun.Peis.Application/TransToWebPeis/TransToWebPeisAppService.cs +++ b/src/Shentun.Peis.Application/TransToWebPeis/TransToWebPeisAppService.cs @@ -329,40 +329,54 @@ namespace Shentun.Peis.TransToWebPeis IsAutoCloseConnection = true }); + try + { + await WebDb.Ado.BeginTranAsync(); + + #region 清理基础数据 + //删除 + + await WebDb.Ado.ExecuteCommandAsync("delete from medical_package_detail;"); + await WebDb.Ado.ExecuteCommandAsync("delete from medical_package;"); + + await WebDb.Ado.ExecuteCommandAsync("delete from customer_org_group_detail;"); + await WebDb.Ado.ExecuteCommandAsync("delete from customer_org_group;"); + await WebDb.Ado.ExecuteCommandAsync("delete from customer_org_register;"); + await WebDb.Ado.ExecuteCommandAsync("delete from customer_org;"); + + await WebDb.Ado.ExecuteCommandAsync("delete from diagnosis;"); + await WebDb.Ado.ExecuteCommandAsync("delete from diagnosis_level;"); - #region 清理基础数据 - //删除 + await WebDb.Ado.ExecuteCommandAsync("delete from asbitem_detail;"); + await WebDb.Ado.ExecuteCommandAsync("delete from asbitem;"); - await WebDb.Ado.ExecuteCommandAsync("delete from medical_package_detail;"); - await WebDb.Ado.ExecuteCommandAsync("delete from medical_package;"); + await WebDb.Ado.ExecuteCommandAsync("delete from item;"); - await WebDb.Ado.ExecuteCommandAsync("delete from customer_org_group_detail;"); - await WebDb.Ado.ExecuteCommandAsync("delete from customer_org_group;"); - await WebDb.Ado.ExecuteCommandAsync("delete from customer_org_register;"); - await WebDb.Ado.ExecuteCommandAsync("delete from customer_org;"); + await WebDb.Ado.ExecuteCommandAsync("delete from item_type;"); + #endregion - await WebDb.Ado.ExecuteCommandAsync("delete from diagnosis;"); - await WebDb.Ado.ExecuteCommandAsync("delete from diagnosis_level;"); - await WebDb.Ado.ExecuteCommandAsync("delete from asbitem_detail;"); - await WebDb.Ado.ExecuteCommandAsync("delete from asbitem;"); + await TransItemType(WebDb); + await TransItem(WebDb); + await TransAsbitem(WebDb); + await TransMedicalPackage(WebDb); + await TransDiagnosis(WebDb); - await WebDb.Ado.ExecuteCommandAsync("delete from item"); - await WebDb.Ado.ExecuteCommandAsync("delete from item_type"); - #endregion + await TransCustomerOrgAsync(WebDb); + await TransCustomerOrgRegisterAsync(WebDb); + await TransCustomerOrgGroupAsync(WebDb); + await TransCustomerOrgGroupDetailAsync(WebDb); - await TransItemType(WebDb); - await TransItem(WebDb); - await TransAsbitem(WebDb); - await TransMedicalPackage(WebDb); - await TransDiagnosis(WebDb); + await WebDb.Ado.CommitTranAsync(); + } + catch (Exception ex) + { + await WebDb.Ado.RollbackTranAsync(); + _logger.LogError($"上传基础数据异常:{ex.Message}"); + } - await TransCustomerOrgAsync(WebDb); - await TransCustomerOrgRegisterAsync(WebDb); - await TransCustomerOrgGroupAsync(WebDb); - await TransCustomerOrgGroupDetailAsync(WebDb); } @@ -1348,7 +1362,7 @@ namespace Shentun.Peis.TransToWebPeis await WebDb.Ado.ExecuteCommandAsync($"delete from patient_register where patient_register_id='{PatientRegisterId}'"); - + await WebDb.Ado.CommitTranAsync(); } catch (Exception ex) @@ -1497,7 +1511,7 @@ namespace Shentun.Peis.TransToWebPeis }); } - await uow.CompleteAsync(); + await uow.CompleteAsync(); } } diff --git a/src/Shentun.Peis.HttpApi.Host/Schedulers/SyncPatientRegisterReportInterfaceWorker.cs b/src/Shentun.Peis.HttpApi.Host/Schedulers/SyncPatientRegisterReportInterfaceWorker.cs index f50a7db..af46bb7 100644 --- a/src/Shentun.Peis.HttpApi.Host/Schedulers/SyncPatientRegisterReportInterfaceWorker.cs +++ b/src/Shentun.Peis.HttpApi.Host/Schedulers/SyncPatientRegisterReportInterfaceWorker.cs @@ -67,8 +67,11 @@ namespace Shentun.Peis.Schedulers var backJobTypeIds = _configuration.GetSection("BackJobTypeId").Value; //Logger.LogInformation("Executed" + GetType().Name + "..!"); var appServiceHelper = new AppServiceHelper(); + appServiceHelper.Login(); + var thirdInterfaceDtos = appServiceHelper.CallAppService>("api/app/ThirdInterface/GetList", null); + var thirdInterfaceDto = thirdInterfaceDtos.Where(o => o.Id == interfaceId).FirstOrDefault(); if (thirdInterfaceDto == null) { @@ -88,6 +91,7 @@ namespace Shentun.Peis.Schedulers 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(); @@ -101,6 +105,7 @@ namespace Shentun.Peis.Schedulers } + #region 同步基础数据 appServiceHelper.CallAppService("api/app/TransToWebPeis/TransBaseData", null); @@ -111,9 +116,7 @@ namespace Shentun.Peis.Schedulers //需要导入的天数 var QueryDays = Convert.ToInt32(interfaceConfig.GetSection("Interface").GetSection("Scheduler") .GetSection("QueryDays").Value); - - - + //获取报告地址 var reportApiBaseAddress = interfaceConfig.GetSection("Interface").GetSection("ReportApiBaseAddress").Value; var reportApiUrl = interfaceConfig.GetSection("Interface").GetSection("ReportApiUrl").Value; @@ -130,17 +133,18 @@ namespace Shentun.Peis.Schedulers var funName = "GetSyncPatientRegisterIds"; object[] classConstructorArg = new object[] { thirdInterfaceDto.Id }; object[] objects = [input]; + var pluginsOut = ReflectionHelper.InvokeAsync>(assemblyName, className, classConstructorArg, funName, objects).Result; #region 同步备单数据 var preRegistrationFunName = "GetSyncPreRegistrationPatientRegisterIds"; var preRegistrationPluginsOut = ReflectionHelper.InvokeAsync>(assemblyName, className, classConstructorArg, preRegistrationFunName, objects).Result; - + if (preRegistrationPluginsOut.Any()) { - foreach (var item in pluginsOut) + foreach (var item in preRegistrationPluginsOut) { PatientRegisterIdInputDto patientRegisterIdDto = new PatientRegisterIdInputDto @@ -154,7 +158,7 @@ namespace Shentun.Peis.Schedulers Logger.LogError("同步预登记数据成功"); } - + #endregion