From 51c4bcc10b09f239334e95f86890fe909e5d2790 Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Mon, 21 Oct 2024 17:58:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 17 +++- .../SubjectVisitQCAndCheckConsumer.cs | 93 ++++++++++++++++++- .../Service/Doctor/EducationService.cs | 2 +- .../SubjectVisitStateChangedEvent.cs | 1 + .../Interceptor/AddDomainExt.cs | 2 +- 5 files changed, 108 insertions(+), 7 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index d37814e29..0d73b1ae2 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -12975,7 +12975,12 @@ - CRC 提交了 通知QC进行质控 + CRC 提交了 通知QC进行质控 Code005,006 + + + + + CRC 提交了 通知QC进行质控 Code005,006 @@ -16806,6 +16811,16 @@ 入组 Selection 列表查询参数 + + + 工作兼职 + + + + + 工作兼职En + + 工作兼职 diff --git a/IRaCIS.Core.Application/MassTransit/Consumer/SubjectVisitQCAndCheckConsumer.cs b/IRaCIS.Core.Application/MassTransit/Consumer/SubjectVisitQCAndCheckConsumer.cs index 7ce433edd..e60a54565 100644 --- a/IRaCIS.Core.Application/MassTransit/Consumer/SubjectVisitQCAndCheckConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Consumer/SubjectVisitQCAndCheckConsumer.cs @@ -1,9 +1,14 @@ using IRaCIS.Core.Application.MassTransit.Command; +using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Domain; using IRaCIS.Core.Domain.BaseModel; +using IRaCIS.Core.Infra.EFCore.Common; using MassTransit; +using Microsoft.Extensions.Options; +using MimeKit; using System; using System.Collections.Generic; +using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -12,13 +17,93 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer; /// -/// CRC 提交了 通知QC进行质控 +/// CRC 提交了 通知QC进行质控 Code005,006 /// -public class CRCSubmitedAndQCToAuditEventConsumer : IConsumer +public class CRCSubmitedAndQCToAuditEventConsumer( + IRepository _userRepository, + IRepository _trialUseRepository, + IRepository _subjectVisitRepository, + IRepository _trialRepository, + IRepository _readingQuestionCriterionTrialRepository, + IRepository _visitTaskRepository, + IRepository _dictionaryRepository, + IRepository _emailNoticeConfigrepository, + IOptionsMonitor systemEmailConfig) : IConsumer { - public Task Consume(ConsumeContext context) + private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue; + public async Task Consume(ConsumeContext context) { - throw new NotImplementedException(); + //Console.WriteLine("发送(005,006) 【加急项目所有IQC待领取质控任务】邮件!!!"); + //var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US; + + //var subjectVisitId = context.Message.SubjectVisitId; + + //var subjectVisit = await _subjectVisitRepository.Where(x => x.Id == subjectVisitId).Include(x=>x.Subject).FirstOrDefaultAsync(); + + + + + + + //var trialUser = await _trialUseRepository.Where(x => x.TrialId == subjectVisit.TrialId).Include(x => x.User).Select(x => x.User).ToListAsync(); + + //var userinfoList = trialUser.Where(x => x.UserTypeEnum == UserTypeEnum.IQC).ToList(); + + + //var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == subjectVisit.TrialId); + + //foreach (var userinfo in userinfoList) + //{ + // var messageToSend = new MimeMessage(); + // //发件地址 + // messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); + // messageToSend.To.Add(new MailboxAddress(String.Empty, userinfo.EMail)); + + + // var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + + + // var dictionValue = await CommonEmailHelper.TranslationDictionary(new TranslationDictionaryDto() + // { + + // DictionaryRepository = _dictionaryRepository, + // IsEn_US = isEn_US, + // DictionaryList = new List() + // { + // new DictionaryDto (){DictionaryCode= "ReadingCategory",EnumValue=subjectVisit.AuditState.GetEnumInt(), }, //审核状态 + + // } + // }); + + // Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => + // { + // var subjectCode = subjectVisit.Subject.Code; + // var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo, subjectCode, taskInfo.TaskBlindName); + // var htmlBodyStr = string.Format( + // CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), + // userinfo.FullName, // 用户名 {0} + // trialInfo.ExperimentName, // 项目 {1} + // subjectCode, // 受试者 {2} + // subjectVisit.VisitName, // 访视 {3} + // dictionValue[0], // 审核状态 {4} + // _systemEmailConfig.SiteUrl // 链接 {5} + + + + + // ); + + // return (topicStr, htmlBodyStr); + // }; + + // await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(_emailNoticeConfigrepository, + + // context.Message.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed ? EmailBusinessScenario.ReReadFromPMApproval : EmailBusinessScenario.ReReadFromIRApproval, + + // messageToSend, emailConfigFunc); + + // await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); + //} } } diff --git a/IRaCIS.Core.Application/Service/Doctor/EducationService.cs b/IRaCIS.Core.Application/Service/Doctor/EducationService.cs index 9184c8dff..75a609658 100644 --- a/IRaCIS.Core.Application/Service/Doctor/EducationService.cs +++ b/IRaCIS.Core.Application/Service/Doctor/EducationService.cs @@ -78,7 +78,7 @@ namespace IRaCIS.Core.Application.Service } - [HttpDelete, Route("{doctorId:guid}")] + [HttpDelete, Route("{id:guid}")] public async Task DeleteEducationInfo(Guid id) { var success = await _educationRepository.BatchDeleteNoTrackingAsync(o => o.Id == id); diff --git a/IRaCIS.Core.Domain/_DomainEvent/SubjectVisitStateChangedEvent.cs b/IRaCIS.Core.Domain/_DomainEvent/SubjectVisitStateChangedEvent.cs index fb6c3cb06..bb3e9cb06 100644 --- a/IRaCIS.Core.Domain/_DomainEvent/SubjectVisitStateChangedEvent.cs +++ b/IRaCIS.Core.Domain/_DomainEvent/SubjectVisitStateChangedEvent.cs @@ -15,6 +15,7 @@ public class CRCSubmitedAndQCToAuditEvent : DomainEvent { public Guid SubjectVisitId { get; set; } + public bool IsPd { get; set; } } diff --git a/IRaCIS.Core.Infra.EFCore/Interceptor/AddDomainExt.cs b/IRaCIS.Core.Infra.EFCore/Interceptor/AddDomainExt.cs index df891c547..23f7d88a0 100644 --- a/IRaCIS.Core.Infra.EFCore/Interceptor/AddDomainExt.cs +++ b/IRaCIS.Core.Infra.EFCore/Interceptor/AddDomainExt.cs @@ -82,7 +82,7 @@ public static class DBContext_Ext originAuditState == AuditStateEnum.None && subjectVisit.AuditState == AuditStateEnum.ToAudit ) { - subjectVisit.AddDomainEvent(new CRCSubmitedAndQCToAuditEvent() { SubjectVisitId = subjectVisit.Id }); + subjectVisit.AddDomainEvent(new CRCSubmitedAndQCToAuditEvent() { SubjectVisitId = subjectVisit.Id,IsPd= subjectVisit.PDState == PDStateEnum.PDProgress }); } //一致性核查通知PM发送邮件