From 55e26202d878d057a7f28f0c2f6c0c588ad961ce Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 26 Oct 2022 12:04:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Allocation/VisitTaskService.cs | 8 +- .../DTO/TrialEmailNoticeConfigViewModel.cs | 7 +- .../Document/TrialEmailNoticeConfigService.cs | 79 ++++++++++--------- .../Service/QC/QCOperationService.cs | 3 +- .../Dto/ReadingMedicineQuestionViewModel.cs | 5 ++ .../ReadingMedicineQuestionService.cs | 4 + .../Document/TrialEmailNoticeConfig.cs | 7 +- 7 files changed, 65 insertions(+), 48 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index fe03351cc..3e7d3cd80 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -1508,10 +1508,10 @@ namespace IRaCIS.Core.Application.Service.Allocation RequestReReadingResultEnum = RequestReReadingResult.Agree, }); - await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == origenalTask.Id, u => new VisitTask() - { - ReReadingApplyState = ReReadingApplyState.Agree - }); + //await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == origenalTask.Id, u => new VisitTask() + //{ + // ReReadingApplyState = ReReadingApplyState.Agree + //}); #endregion diff --git a/IRaCIS.Core.Application/Service/Document/DTO/TrialEmailNoticeConfigViewModel.cs b/IRaCIS.Core.Application/Service/Document/DTO/TrialEmailNoticeConfigViewModel.cs index d28aee800..21d8a19e4 100644 --- a/IRaCIS.Core.Application/Service/Document/DTO/TrialEmailNoticeConfigViewModel.cs +++ b/IRaCIS.Core.Application/Service/Document/DTO/TrialEmailNoticeConfigViewModel.cs @@ -83,7 +83,10 @@ namespace IRaCIS.Core.Application.ViewModel public CriterionType CriterionTypeEnum { get; set; } - public Guid FromUserId { get; set; } + + public string FromEmail { get; set; } + + public List ToUserIdList { get; set; } public List CopyUserIdList { get; set; } @@ -99,13 +102,11 @@ namespace IRaCIS.Core.Application.ViewModel //public string CopyEmailsStr { get; set; } = string.Empty; - public string FromEmail { get; set; } = string.Empty; public bool IsUrgent { get; set; } public bool IsAutoSend { get; set; } - public bool IsDistinguishCriteria { get; set; } public bool IsReturnRequired { get; set; } diff --git a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs index 633fc4e8c..c62bf4f27 100644 --- a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs +++ b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs @@ -121,9 +121,6 @@ namespace IRaCIS.Core.Application.Service } - //邮件内容html - var isNeedSend = await FillWordTemplateAndSetEmailAsync(visitTaskId, sendEmailConfig, businessScenarioEnum, criterionTypeEnum!); - //邮件附件 var path = FileStoreHelper.GetPhysicalFilePath(_hostEnvironment, emailConfig.FilePath); @@ -132,12 +129,12 @@ namespace IRaCIS.Core.Application.Service throw new BusinessValidationFailedException("找不到该项目标准场景下邮件模板"); } - sendEmailConfig.EmailAttachMentConfigList.Add(new EmailAttachMentConfig() - { - FileName = emailConfig.FileName, + //邮件内容html + var (isNeedSend, templateStream) = await FillWordTemplateAndSetEmailAsync(visitTaskId, sendEmailConfig, businessScenarioEnum, emailConfig.FilePath, path); - FileStream = System.IO.File.OpenRead(path) - }); + + + @@ -147,10 +144,12 @@ namespace IRaCIS.Core.Application.Service - private async Task FillWordTemplateAndSetEmailAsync(Guid visitTaskId, SMTPEmailConfig sendEmailConfig, CommonDocumentBusinessScenario businessScenarioEnum, CriterionType criterionType) + private async Task<(bool IsNeedSend,FileStream? TemplateStream)> FillWordTemplateAndSetEmailAsync(Guid visitTaskId, SMTPEmailConfig sendEmailConfig, CommonDocumentBusinessScenario businessScenarioEnum, string fileName,string filePath) { var isNeedSend = true; + var answer = "否"; + var pathToFile = _hostEnvironment.WebRootPath + Path.DirectorySeparatorChar.ToString() @@ -197,9 +196,8 @@ namespace IRaCIS.Core.Application.Service } else { - isNeedSend = false; - - return isNeedSend; + //isNeedSend = false; + return (false,null); } //入组确认仅在基线 @@ -211,7 +209,9 @@ namespace IRaCIS.Core.Application.Service if (await _visitTaskRepository.AnyAsync(t => t.SourceSubjectVisitId == documentNeedBasicInfo.SourceSubjectVisitId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.Id != visitTaskId && t.ReadingTaskState == ReadingTaskState.HaveSigned)) { - isNeedSend = false; + //isNeedSend = false; + + return (false, null); } sendEmailConfig.TopicDescription = "入组确认"; @@ -227,7 +227,6 @@ namespace IRaCIS.Core.Application.Service } - var answer = "否"; if (await _repository.Where().AnyAsync(x => x.VisitTaskId == visitTaskId && x.Answer == TargetState.Exist.GetEnumInt() && x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State && x.ReadingQuestionTrial.LesionType == LesionType.TargetLesion)) @@ -261,7 +260,6 @@ namespace IRaCIS.Core.Application.Service if (documentNeedBasicInfo.IsReadingTaskViewInOrder) { - var answer = "否"; //单重 @@ -329,7 +327,9 @@ namespace IRaCIS.Core.Application.Service } else { - isNeedSend = false; + //isNeedSend = false; + + return (false, null); } @@ -391,7 +391,9 @@ namespace IRaCIS.Core.Application.Service } else { - isNeedSend = false; + //isNeedSend = false; + + return (false, null); } } @@ -417,7 +419,6 @@ namespace IRaCIS.Core.Application.Service { //单重 - var answer = "否"; if (documentNeedBasicInfo.ReadingType == ReadingMethod.Single && documentNeedBasicInfo.ArbitrationRule == ArbitrationRule.None) { @@ -444,7 +445,8 @@ namespace IRaCIS.Core.Application.Service } else { - isNeedSend = false; + //isNeedSend = false; + return (false, null); } } @@ -456,14 +458,30 @@ namespace IRaCIS.Core.Application.Service } - - - - - } - return isNeedSend; + + if (isNeedSend) + { + + var docFileStream = System.IO.File.OpenRead(fileName); + + + + + sendEmailConfig.EmailAttachMentConfigList.Add(new EmailAttachMentConfig() + { + FileName = fileName, + + FileStream = docFileStream + }); + + return (false, null); + } + else + { + return (false, null); + } } @@ -548,8 +566,6 @@ namespace IRaCIS.Core.Application.Service public async Task AddOrUpdateTrialEmailNoticeConfig(TrialEmailNoticeConfigAddOrEdit addOrEditTrialEmailNoticeConfig) { - - //var entity = await _trialEmailNoticeConfigRepository.InsertOrUpdateAsync(addOrEditTrialEmailNoticeConfig); if (addOrEditTrialEmailNoticeConfig.Id == null) @@ -558,11 +574,6 @@ namespace IRaCIS.Core.Application.Service var entity = _mapper.Map(addOrEditTrialEmailNoticeConfig); - - - entity.TrialEmailNoticeUserList.Add(new TrialEmailNoticeUser() { EmailUserType = EmailUserType.From, UserId = addOrEditTrialEmailNoticeConfig.FromUserId }); - - foreach (var item in addOrEditTrialEmailNoticeConfig.ToUserIdList) { entity.TrialEmailNoticeUserList.Add(new TrialEmailNoticeUser() { EmailUserType = EmailUserType.To, UserId = item }); @@ -594,10 +605,6 @@ namespace IRaCIS.Core.Application.Service List trialEmailNoticeUsers = new List(); - - trialEmailNoticeUsers.Add(new TrialEmailNoticeUser() { EmailUserType = EmailUserType.From, UserId = addOrEditTrialEmailNoticeConfig.FromUserId, TrialEmailNoticeConfigId = entity.Id }); - - foreach (var item in addOrEditTrialEmailNoticeConfig.ToUserIdList) { trialEmailNoticeUsers.Add(new TrialEmailNoticeUser() { EmailUserType = EmailUserType.To, UserId = item, TrialEmailNoticeConfigId = entity.Id }); diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index 29513a1f5..b985386db 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -1226,7 +1226,8 @@ namespace IRaCIS.Core.Application.Image.QA TrialReadingCriterionId = trialReadingCriterionId, ReadingSetType = ReadingSetType.ImageReading, SubjectVisitId = dbSubjectVisit.Id, - ModuleName = "", + ModuleName = $"G-{dbSubjectVisit.BlindName}", + ModuleType = ModuleTypeEnum.Global , IsUrgent = dbSubjectVisit.IsUrgent, TrialId = dbSubjectVisit.TrialId, SubjectId = dbSubjectVisit.SubjectId diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs index 8b634c90d..6ce7ed219 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs @@ -26,11 +26,16 @@ namespace IRaCIS.Core.Application.ViewModel public int? CriterionEnum { get; set; } + public Guid? TrialReadingCriterionId { get; set; } + /// /// 任务类型 /// public ReadingCategory? ReadingCategory { get; set; } + + + } diff --git a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs index eb3ecdac9..f0b70b0e2 100644 --- a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs @@ -45,6 +45,9 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task> GetReadingMedicineSystemQuestionList(ReadingMedicineSystemQuestionQuery inDto) { + //避免前端遍历 + var criterionEnum = inDto.TrialReadingCriterionId != null ? _readingQuestionCriterionTrialRepository.Where(t => t.Id == inDto.TrialReadingCriterionId).Select(t => t.CriterionType).FirstOrDefault(): CriterionType.NoCriterion; + var query = _readingMedicineSystemQuestionRepository.AsQueryable() .WhereIf(!inDto.TypeValue.IsNullOrEmpty(), x => x.TypeValue.Contains(inDto.TypeValue)) .WhereIf(!inDto.ParentTriggerValue.IsNullOrEmpty(), x => x.ParentTriggerValue.Contains(inDto.ParentTriggerValue)) @@ -52,6 +55,7 @@ namespace IRaCIS.Core.Application.Service .WhereIf(!inDto.Type.IsNullOrEmpty(), x => x.Type.Contains(inDto.Type)) .WhereIf(inDto.ReadingCategory != null, x => x.ReadingCategory == inDto.ReadingCategory) .WhereIf(inDto.CriterionEnum != null, x => x.CriterionEnumStr.Contains($"|{inDto.CriterionEnum}|") ) + .WhereIf(inDto.TrialReadingCriterionId != null, x => x.CriterionEnumStr.Contains($"|{criterionEnum}|")) .ProjectTo(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder); return await query.ToListAsync(); } diff --git a/IRaCIS.Core.Domain/Document/TrialEmailNoticeConfig.cs b/IRaCIS.Core.Domain/Document/TrialEmailNoticeConfig.cs index e77d29ae0..b59d18231 100644 --- a/IRaCIS.Core.Domain/Document/TrialEmailNoticeConfig.cs +++ b/IRaCIS.Core.Domain/Document/TrialEmailNoticeConfig.cs @@ -31,7 +31,7 @@ namespace IRaCIS.Core.Domain.Models //[Required] - //public string FromEmail { get; set; } + //public string ReceiveEmailsStr { get; set; } = string.Empty; //public string CopyEmailsStr { get; set; } = string.Empty; @@ -43,6 +43,8 @@ namespace IRaCIS.Core.Domain.Models + public string FromEmail { get; set; } + [Required] public bool IsUrgent { get; set; } @@ -61,9 +63,6 @@ namespace IRaCIS.Core.Domain.Models public bool IsAutoSend { get; set; } - [Required] - public bool IsDistinguishCriteria { get; set; } - public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; }