From f8e501fb0dd53fe6388ca4e62705d2b253cfdf23 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 2 Jul 2025 15:16:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=A5=E7=BB=84Pd=E6=8A=A5?= =?UTF-8?q?=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Document/TrialEmailNoticeConfigService.cs | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs index 089231c78..ed3b19658 100644 --- a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs +++ b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs @@ -5,6 +5,7 @@ //-------------------------------------------------------------------- using Amazon.Runtime; +using IRaCIS.Application.Interfaces; using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Application.Helper; @@ -45,6 +46,7 @@ namespace IRaCIS.Core.Application.Service IRepository _readingTaskQuestionAnswerRepository, IRepository _readingQuestionCriterionTrialRepository, IOptionsMonitor _systemEmailSendConfig, + IDictionaryService _dictionaryService, IEmailSendService _emailSendService, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IWebHostEnvironment _hostEnvironment) : BaseService, ITrialEmailNoticeConfigService { @@ -193,6 +195,9 @@ namespace IRaCIS.Core.Application.Service var isEn_us = _userInfo.IsEn_Us; EmailBusinessScenario businessScenarioEnum = EmailBusinessScenario.None; + var enrollReplace = ""; + var PdReplace = ""; + #region 任务关联的项目配置 标准信息及配置,subject 信息 var taskInfo = await _visitTaskRepository.Where(t => t.Id == visitTaskId).Select(t => new { @@ -319,8 +324,9 @@ namespace IRaCIS.Core.Application.Service //入组确认 根据每个标准配置的是否自动发送,发送邮件与否 if (businessScenarioEnum == EmailBusinessScenario.EnrollConfirmed) { + var findItem = (await _dictionaryService.GetBasicDataSelect("Trial_Enroll_Report")).Where(t => t.Code == ((int)taskInfo.CriterionType).ToString()).FirstOrDefault(); - + enrollReplace = _userInfo.IsEn_Us ? findItem.Value : findItem.ValueCN; //如果其他阅片人已经做了,说明发送了入组确认报告,第二个人做完就不发送了 @@ -345,7 +351,9 @@ namespace IRaCIS.Core.Application.Service } else if (businessScenarioEnum == EmailBusinessScenario.PDConfirmed) { + var findItem = (await _dictionaryService.GetBasicDataSelect("Trial_PD_Report")).Where(t => t.Code == ((int)taskInfo.CriterionType).ToString()).FirstOrDefault(); + PdReplace = _userInfo.IsEn_Us ? findItem.Value : findItem.ValueCN; //有序 @@ -614,6 +622,8 @@ namespace IRaCIS.Core.Application.Service var value = new Dictionary() { + ["Criterion_Enroll_Replace"]= enrollReplace, + ["Criterion_PD_Replace"]= PdReplace, ["SponsorName"] = taskInfo.SponsorName, ["ResearchProgramNo"] = taskInfo.ResearchProgramNo, ["TrialSiteCode"] = taskInfo.TrialSiteCode, @@ -651,10 +661,11 @@ namespace IRaCIS.Core.Application.Service { var wordStoreServerPath = Path.Combine(Path.GetDirectoryName(serverFilePath), Path.GetFileNameWithoutExtension(serverFilePath) + ".docx"); - //using (FileStream fileStream = new FileStream(wordStoreServerPath, FileMode.Create, FileAccess.Write)) - //{ - // wordMemoryStream.WriteTo(fileStream); - //} + //模板写入数据先放本地才能转换为pdf + using (FileStream fileStream = new FileStream(wordStoreServerPath, FileMode.Create, FileAccess.Write)) + { + wordMemoryStream.WriteTo(fileStream); + } FileConvertHelper.ConvertWordToPdf(wordStoreServerPath, Path.GetDirectoryName(serverFilePath)); @@ -695,10 +706,11 @@ namespace IRaCIS.Core.Application.Service { var wordStoreServerPath = Path.Combine(Path.GetDirectoryName(serverFilePath), Path.GetFileNameWithoutExtension(serverFilePath) + ".docx"); - //using (FileStream fileStream = new FileStream(wordStoreServerPath, FileMode.Create, FileAccess.Write)) - //{ - // wordMemoryStream.WriteTo(fileStream); - //} + //模板写入数据先放本地才能转换为pdf + using (FileStream fileStream = new FileStream(wordStoreServerPath, FileMode.Create, FileAccess.Write)) + { + wordMemoryStream.WriteTo(fileStream); + } FileConvertHelper.ConvertWordToPdf(wordStoreServerPath, Path.GetDirectoryName(serverFilePath)); File.Delete(wordStoreServerPath);