修改邮件发送枚举--025

Uat_Study
hang 2023-08-25 10:28:43 +08:00
parent eee828ca46
commit daaf4540a4
6 changed files with 44 additions and 37 deletions

View File

@ -168,14 +168,14 @@ namespace IRaCIS.Application.Services.BackGroundJob
switch (task.BusinessScenarioEnum) switch (task.BusinessScenarioEnum)
{ {
case CommonDocumentBusinessScenario.QCTask: case EmailBusinessScenario.QCTask:
HangfireJobHelper.AddOrUpdateCronJob<IEmailSendService>(jobId, t => t.SendTrialImageQCTaskEmailAsync(task.TrialId), task.EmailCron, task.Code); HangfireJobHelper.AddOrUpdateCronJob<IEmailSendService>(jobId, t => t.SendTrialImageQCTaskEmailAsync(task.TrialId), task.EmailCron);
break; break;
case CommonDocumentBusinessScenario.QCQuestion: case EmailBusinessScenario.QCQuestion:
HangfireJobHelper.AddOrUpdateCronJob<IEmailSendService>(jobId, t => t.SendTrialQCQuestionEmailAsync(task.TrialId), task.EmailCron, task.Code); HangfireJobHelper.AddOrUpdateCronJob<IEmailSendService>(jobId, t => t.SendTrialQCQuestionEmailAsync(task.TrialId), task.EmailCron);
break; break;
case CommonDocumentBusinessScenario.ImageQuestion: case EmailBusinessScenario.ImageQuestion:
HangfireJobHelper.AddOrUpdateCronJob<IEmailSendService>(jobId, t => t.SendTrialImageQuestionAsync(task.TrialId), task.EmailCron, task.Code); HangfireJobHelper.AddOrUpdateCronJob<IEmailSendService>(jobId, t => t.SendTrialImageQuestionAsync(task.TrialId), task.EmailCron);
break; break;
//case CommonDocumentBusinessScenario.EnrollConfirmed: //case CommonDocumentBusinessScenario.EnrollConfirmed:

View File

@ -100,7 +100,7 @@ namespace IRaCIS.Core.Application.ViewModel
[NotDefault] [NotDefault]
public Guid TrialId { get; set; } public Guid TrialId { get; set; }
public CommonDocumentBusinessScenario? BusinessScenarioEnum { get; set; } public EmailBusinessScenario? BusinessScenarioEnum { get; set; }
//public CriterionType? CriterionTypeEnum { get; set; } //public CriterionType? CriterionTypeEnum { get; set; }
@ -117,7 +117,7 @@ namespace IRaCIS.Core.Application.ViewModel
public Guid TrialReadingCriterionId { get; set; } public Guid TrialReadingCriterionId { get; set; }
public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; } public EmailBusinessScenario BusinessScenarioEnum { get; set; }
} }
public class BatchAddTrialEmailNoticeConfig public class BatchAddTrialEmailNoticeConfig
@ -127,7 +127,7 @@ namespace IRaCIS.Core.Application.ViewModel
public Guid? Id { get; set; } public Guid? Id { get; set; }
public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; } public EmailBusinessScenario BusinessScenarioEnum { get; set; }
public string Code { get; set; } = string.Empty; public string Code { get; set; } = string.Empty;

View File

@ -90,7 +90,7 @@ namespace IRaCIS.Core.Application.Service
return (topicStr, htmlBodyStr); return (topicStr, htmlBodyStr);
}; };
await SendTrialEmailAsync(trialId, CommonDocumentBusinessScenario.QCTask, topicAndHtmlFunc); await SendTrialEmailAsync(trialId, EmailBusinessScenario.QCTask, topicAndHtmlFunc);
} }
} }
} }
@ -138,7 +138,7 @@ namespace IRaCIS.Core.Application.Service
return (topicStr, htmlBodyStr); return (topicStr, htmlBodyStr);
}; };
await SendTrialEmailAsync(trialId, CommonDocumentBusinessScenario.QCQuestion, topicAndHtmlFunc); await SendTrialEmailAsync(trialId, EmailBusinessScenario.QCQuestion, topicAndHtmlFunc);
} }
} }
} }
@ -183,7 +183,7 @@ namespace IRaCIS.Core.Application.Service
return (topicStr, htmlBodyStr); return (topicStr, htmlBodyStr);
}; };
await SendTrialEmailAsync(trialId, CommonDocumentBusinessScenario.ImageQuestion, topicAndHtmlFunc); await SendTrialEmailAsync(trialId, EmailBusinessScenario.ImageQuestion, topicAndHtmlFunc);
} }
} }
} }
@ -202,11 +202,11 @@ namespace IRaCIS.Core.Application.Service
return (topicStr, htmlBodyStr); return (topicStr, htmlBodyStr);
}; };
await SendTrialEmailAsync(info.TrialId, CommonDocumentBusinessScenario.ClinicalDataQuestion, topicAndHtmlFunc); await SendTrialEmailAsync(info.TrialId, EmailBusinessScenario.ClinicalDataQuestion, topicAndHtmlFunc);
} }
public async Task SendTrialEmailAsync(Guid trialId, CommonDocumentBusinessScenario businessScenario, Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr)> topicAndHtmlFunc, Guid? trialReadingCriterionId = null, Guid? subjectId = null) public async Task SendTrialEmailAsync(Guid trialId, EmailBusinessScenario businessScenario, Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr)> topicAndHtmlFunc, Guid? trialReadingCriterionId = null, Guid? subjectId = null)
{ {
//找到配置 //找到配置
var trialEmailConfig = await _trialEmailNoticeConfigRepository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId == trialReadingCriterionId && t.BusinessScenarioEnum == businessScenario, ignoreQueryFilters: true) var trialEmailConfig = await _trialEmailNoticeConfigRepository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId == trialReadingCriterionId && t.BusinessScenarioEnum == businessScenario, ignoreQueryFilters: true)

View File

@ -159,8 +159,10 @@ namespace IRaCIS.Core.Application.Service
var confirmedCriterionTypeList = list.Select(t => (CriterionType?)t.CriterionType).ToList(); var confirmedCriterionTypeList = list.Select(t => (CriterionType?)t.CriterionType).ToList();
var docmentList = _repository.Where<CommonDocument>(t => t.BusinessScenarioEnum == CommonDocumentBusinessScenario.EnrollConfirmed || t.BusinessScenarioEnum == CommonDocumentBusinessScenario.PDConfirmed) var docmentList = _repository.Where<TrialEmailNoticeConfig>(t => t.BusinessScenarioEnum == EmailBusinessScenario.EnrollConfirmed || t.BusinessScenarioEnum == EmailBusinessScenario.PDConfirmed)
.Where(t => (confirmedCriterionTypeList.Contains(t.CriterionTypeEnum)) || t.CriterionTypeEnum == null).Select(t => new { t.Path, t.Name, t.Code, t.BusinessScenarioEnum, t.CriterionTypeEnum }).ToList(); //.Where(t => (confirmedCriterionTypeList.Contains(t.CriterionTypeEnum)) || t.CriterionTypeEnum == null).Select(t => new { t.Path, t.Name, t.Code, t.BusinessScenarioEnum, t.CriterionTypeEnum })
.ToList();
foreach (var item in docmentList) foreach (var item in docmentList)
@ -190,15 +192,15 @@ namespace IRaCIS.Core.Application.Service
public async Task CommonBusinessScenarioSendEmailAsync(Guid visitTaskId, bool? isEnrollment, bool? isPDConfirm) public async Task CommonBusinessScenarioSendEmailAsync(Guid visitTaskId, bool? isEnrollment, bool? isPDConfirm)
{ {
#region 区分场景 #region 区分场景
CommonDocumentBusinessScenario businessScenarioEnum; EmailBusinessScenario businessScenarioEnum;
if (isEnrollment != null && isPDConfirm == null) if (isEnrollment != null && isPDConfirm == null)
{ {
businessScenarioEnum = CommonDocumentBusinessScenario.EnrollConfirmed; businessScenarioEnum = EmailBusinessScenario.EnrollConfirmed;
} }
else /*if (isEnrollment == null && isPDConfirm != null)*/ else /*if (isEnrollment == null && isPDConfirm != null)*/
{ {
businessScenarioEnum = CommonDocumentBusinessScenario.PDConfirmed; businessScenarioEnum = EmailBusinessScenario.PDConfirmed;
} }
#endregion #endregion
@ -305,7 +307,7 @@ namespace IRaCIS.Core.Application.Service
if (businessScenarioEnum == CommonDocumentBusinessScenario.EnrollConfirmed) if (businessScenarioEnum == EmailBusinessScenario.EnrollConfirmed)
{ {
sendEmailConfig.TopicDescription = _localizer["TrialEmailN_EnrollmentConfirmation", taskInfo.ResearchProgramNo, taskInfo.SubjectCode]; sendEmailConfig.TopicDescription = _localizer["TrialEmailN_EnrollmentConfirmation", taskInfo.ResearchProgramNo, taskInfo.SubjectCode];
@ -321,7 +323,7 @@ namespace IRaCIS.Core.Application.Service
); );
} }
} }
else /*if (businessScenarioEnum == CommonDocumentBusinessScenario.PDConfirmed)*/ else /*if (businessScenarioEnum == EmailBusinessScenario.PDConfirmed)*/
{ {
sendEmailConfig.TopicDescription = _localizer["TrialEmailN_PDReport", taskInfo.ResearchProgramNo, taskInfo.SubjectCode]; sendEmailConfig.TopicDescription = _localizer["TrialEmailN_PDReport", taskInfo.ResearchProgramNo, taskInfo.SubjectCode];
@ -414,7 +416,7 @@ namespace IRaCIS.Core.Application.Service
public async Task<string> BaseBusinessScenarioSendEmailAsync(Guid visitTaskId, bool? isHandSend, EmailStoreSendMode emailStoreMode, string sendFileRelativePath) public async Task<string> BaseBusinessScenarioSendEmailAsync(Guid visitTaskId, bool? isHandSend, EmailStoreSendMode emailStoreMode, string sendFileRelativePath)
{ {
CommonDocumentBusinessScenario? businessScenarioEnum = null; EmailBusinessScenario? businessScenarioEnum = null;
#region 任务关联的项目配置 标准信息及配置subject 信息 #region 任务关联的项目配置 标准信息及配置subject 信息
var taskInfo = await _visitTaskRepository.Where(t => t.Id == visitTaskId).Select(t => new var taskInfo = await _visitTaskRepository.Where(t => t.Id == visitTaskId).Select(t => new
@ -482,7 +484,7 @@ namespace IRaCIS.Core.Application.Service
//入组确认场景 //入组确认场景
if (taskInfo.IsEnrollmentConfirm == true && taskInfo.IsEnrollementQualificationConfirm == true && taskInfo.IsBaseline == true) if (taskInfo.IsEnrollmentConfirm == true && taskInfo.IsEnrollementQualificationConfirm == true && taskInfo.IsBaseline == true)
{ {
businessScenarioEnum = CommonDocumentBusinessScenario.EnrollConfirmed; businessScenarioEnum = EmailBusinessScenario.EnrollConfirmed;
} }
@ -491,7 +493,7 @@ namespace IRaCIS.Core.Application.Service
(taskInfo.PDState == PDStateEnum.PDProgress && taskInfo.SourceSubjectVisitId != null) || (taskInfo.PDState == PDStateEnum.PDProgress && taskInfo.SourceSubjectVisitId != null) ||
(taskInfo.SouceReadModuleId != null && taskInfo.MoudulePDState == PDStateEnum.PDProgress)) (taskInfo.SouceReadModuleId != null && taskInfo.MoudulePDState == PDStateEnum.PDProgress))
{ {
businessScenarioEnum = CommonDocumentBusinessScenario.PDConfirmed; businessScenarioEnum = EmailBusinessScenario.PDConfirmed;
} }
else else
{ {
@ -612,7 +614,7 @@ namespace IRaCIS.Core.Application.Service
#region 不同场景 Tile 设置 #region 不同场景 Tile 设置
if (businessScenarioEnum == CommonDocumentBusinessScenario.EnrollConfirmed) if (businessScenarioEnum == EmailBusinessScenario.EnrollConfirmed)
{ {
sendEmailConfig.TopicDescription = _localizer["TrialEmailN_EnrollmentConfirmation", taskInfo.ResearchProgramNo, taskInfo.SubjectCode]; sendEmailConfig.TopicDescription = _localizer["TrialEmailN_EnrollmentConfirmation", taskInfo.ResearchProgramNo, taskInfo.SubjectCode];
@ -627,7 +629,7 @@ namespace IRaCIS.Core.Application.Service
); );
} }
} }
else if (businessScenarioEnum == CommonDocumentBusinessScenario.PDConfirmed) else if (businessScenarioEnum == EmailBusinessScenario.PDConfirmed)
{ {
sendEmailConfig.TopicDescription = _localizer["TrialEmailN_PDReport", taskInfo.ResearchProgramNo, taskInfo.SubjectCode]; sendEmailConfig.TopicDescription = _localizer["TrialEmailN_PDReport", taskInfo.ResearchProgramNo, taskInfo.SubjectCode];
@ -659,7 +661,7 @@ namespace IRaCIS.Core.Application.Service
//入组确认 根据每个标准配置的是否自动发送,发送邮件与否 //入组确认 根据每个标准配置的是否自动发送,发送邮件与否
if (businessScenarioEnum == CommonDocumentBusinessScenario.EnrollConfirmed) if (businessScenarioEnum == EmailBusinessScenario.EnrollConfirmed)
{ {
if (await _repository.Where<ReadingTableQuestionAnswer>().AnyAsync(x => x.VisitTaskId == visitTaskId && x.Answer == TargetState.Exist.GetEnumInt() && if (await _repository.Where<ReadingTableQuestionAnswer>().AnyAsync(x => x.VisitTaskId == visitTaskId && x.Answer == TargetState.Exist.GetEnumInt() &&
x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State && x.ReadingQuestionTrial.LesionType == LesionType.TargetLesion)) x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State && x.ReadingQuestionTrial.LesionType == LesionType.TargetLesion))
@ -704,7 +706,7 @@ namespace IRaCIS.Core.Application.Service
} }
else if (businessScenarioEnum == CommonDocumentBusinessScenario.PDConfirmed) else if (businessScenarioEnum == EmailBusinessScenario.PDConfirmed)
{ {
@ -1073,7 +1075,7 @@ namespace IRaCIS.Core.Application.Service
//找到入组确认 或者Pd 进展 已生成任务的 访视 //找到入组确认 或者Pd 进展 已生成任务的 访视
var subjectVisitList = await _subjectVisitRepository.Where(t => t.SubjectId == subjectId & t.CheckState == CheckStateEnum.CVPassed && (t.IsEnrollmentConfirm == true || t.PDState == PDStateEnum.PDProgress)).ToListAsync(); var subjectVisitList = await _subjectVisitRepository.Where(t => t.SubjectId == subjectId & t.CheckState == CheckStateEnum.CVPassed && (t.IsEnrollmentConfirm == true || t.PDState == PDStateEnum.PDProgress)).ToListAsync();
if (businessScenarioEnum == CommonDocumentBusinessScenario.EnrollConfirmed) if (businessScenarioEnum == EmailBusinessScenario.EnrollConfirmed)
{ {
if (trialConfig.IsEnrollementQualificationConfirm == false) if (trialConfig.IsEnrollementQualificationConfirm == false)
@ -1140,7 +1142,7 @@ namespace IRaCIS.Core.Application.Service
} }
} }
else if (businessScenarioEnum == CommonDocumentBusinessScenario.PDConfirmed) else if (businessScenarioEnum == EmailBusinessScenario.PDConfirmed)
{ {
if (trialConfig.IsPDProgressView == false) if (trialConfig.IsPDProgressView == false)

View File

@ -37,21 +37,26 @@ namespace IRaCIS.Core.Domain.Share
public enum CommonDocumentBusinessScenario public enum CommonDocumentBusinessScenario
{ {
EnrollConfirmed = 1,
PDConfirmed = 2,
Trial=3, Trial=3,
Reviewer=4, Reviewer=4,
}
QCTask=5, public enum EmailBusinessScenario
{
EnrollConfirmed = 1,
QCQuestion=6, PDConfirmed = 2,
QCTask = 5,
QCQuestion = 6,
ImageQuestion = 7, ImageQuestion = 7,
ClinicalDataQuestion=8, ClinicalDataQuestion = 8,
} }

View File

@ -97,7 +97,7 @@ namespace IRaCIS.Core.Domain.Models
public bool IsAutoSend { get; set; } public bool IsAutoSend { get; set; }
public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; } public EmailBusinessScenario BusinessScenarioEnum { get; set; }
public CriterionType? CriterionTypeEnum { get; set; } public CriterionType? CriterionTypeEnum { get; set; }