代码修改
continuous-integration/drone/push Build is passing Details

Uat_IRC_Net8
he 2025-05-06 17:08:04 +08:00
parent 0769f8fe05
commit 7a318eae45
1 changed files with 33 additions and 55 deletions

View File

@ -40,6 +40,8 @@ public class ImageConsumer(
IRepository<Enroll> _enrollRepository, IRepository<Enroll> _enrollRepository,
IRepository<VisitTask> _visitTaskRepository, IRepository<VisitTask> _visitTaskRepository,
IRepository<ReadModule> _readModuleRepository, IRepository<ReadModule> _readModuleRepository,
IRepository<EmailNoticeUserType> _emailNoticeUserTypeRepository,
IRepository<TrialSite> _trialSiteRepository,
IRepository<Dictionary> _dictionaryRepository, IRepository<Dictionary> _dictionaryRepository,
IRepository<EmailNoticeConfig> _emailNoticeConfigrepository, IRepository<EmailNoticeConfig> _emailNoticeConfigrepository,
IOptionsMonitor<SystemEmailSendConfig> systemEmailConfig) : IOptionsMonitor<SystemEmailSendConfig> systemEmailConfig) :
@ -214,7 +216,7 @@ public class ImageConsumer(
/// <summary> /// <summary>
/// 发送影像重传相关邮件的通用方法 /// 发送影像重传相关邮件的通用方法
/// </summary> /// </summary>
private async Task SendImageReuploadEmail(EmailNoticeConfig trialEmailConfig, EmailBusinessScenario scenario, SubjectVisit subjectVisit, Guid trialId) private async Task SendImageReuploadEmail(EmailNoticeConfig emailNoticeConfig, EmailBusinessScenario scenario, SubjectVisit subjectVisit, Guid trialId)
{ {
var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US; var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US;
@ -228,52 +230,30 @@ public class ImageConsumer(
List<UserRole> toUserList = new List<UserRole>(); List<UserRole> toUserList = new List<UserRole>();
List<UserRole> ccUserList = new List<UserRole>(); List<UserRole> ccUserList = new List<UserRole>();
switch (scenario) var emailNoticeUserList = await _emailNoticeUserTypeRepository.Where(x => x.EmailNoticeConfigId == emailNoticeConfig.Id).ToListAsync();
var crcUserList =new List<UserRole>(){ };
if (emailNoticeUserList.Select(x => x.UserType).Contains(UserTypeEnum.ClinicalResearchCoordinator))
{ {
case EmailBusinessScenario.ImageQC_IQCApplyRe_Uploading: // 64 - IQC申请重传 - Code: 42 crcUserList=await _trialSiteRepository.Where(x=>x.Id== subjectVisit.TrialSiteId).SelectMany(x=>x.CRCUserList.Select(y => y.UserRole)).ToListAsync();
// PM收件 }
toUserList = trialUser.Where(x => x.UserTypeEnum == UserTypeEnum.ProjectManager).ToList();
break;
case EmailBusinessScenario.ImageUploadCRCApplyRe_Uploading: // 65 - CRC申请重传 - Code: 43 var toList = emailNoticeUserList.Where(x => x.EmailUserType == EmailUserType.To&& x.UserType != UserTypeEnum.ClinicalResearchCoordinator).Select(x=>x.UserType).ToList();
// PM、APM收件
toUserList = trialUser.Where(x => x.UserTypeEnum == UserTypeEnum.APM || x.UserTypeEnum == UserTypeEnum.ProjectManager).ToList();
break;
case EmailBusinessScenario.ImageReUpload_PMApprovalRe_Uploading: // 66 - PM审批重传 - Code: 44 toUserList = trialUser.Where(x => toList.Contains(x.UserTypeEnum) ).ToList();
// CRC、IQC收件
toUserList = trialUser.Where(x => x.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator || x.UserTypeEnum == UserTypeEnum.IQC).ToList();
break;
case EmailBusinessScenario.DataReconciliation_PMApprovalRe_Uploading: // 63 - 一致性核查PM审批重传 - Code: 41 if (emailNoticeUserList.Any(x => x.EmailUserType == EmailUserType.To && x.UserType == UserTypeEnum.ClinicalResearchCoordinator))
// CRC收件 {
toUserList = trialUser.Where(x => x.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).ToList(); toUserList.AddRange(crcUserList);
break; }
case EmailBusinessScenario.ImageQuery_IQCApprovalRe_Uploading: // 61 - 影像质疑IQC审批重传 - Code: 39 var ccList = emailNoticeUserList.Where(x => x.EmailUserType == EmailUserType.Copy && x.UserType != UserTypeEnum.ClinicalResearchCoordinator).Select(x => x.UserType).ToList();
// CRC收件
toUserList = trialUser.Where(x => x.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).ToList();
break;
case EmailBusinessScenario.DataReconciliation_CRCApplyRe_Uploading: // 62 - 一致性核查CRC申请重传 - Code: 40 ccUserList = trialUser.Where(x => ccList.Contains(x.UserTypeEnum)).ToList();
// PM、APM收件
toUserList = trialUser.Where(x => x.UserTypeEnum == UserTypeEnum.APM || x.UserTypeEnum == UserTypeEnum.ProjectManager).ToList();
break;
case EmailBusinessScenario.ImageQueryCRCApplyRe_Uploading: // 60 - 影像质疑CRC申请重传 - Code: 38 if (emailNoticeUserList.Any(x => x.EmailUserType == EmailUserType.Copy && x.UserType == UserTypeEnum.ClinicalResearchCoordinator))
// IQC收件 {
toUserList = trialUser.Where(x => x.UserTypeEnum == UserTypeEnum.IQC).ToList(); ccUserList.AddRange(crcUserList);
break;
case EmailBusinessScenario.ReadTracking_PMApplyRe_Reading: // 67 - PM申请重阅 - Code: 45
// CPM、SPM收件
toUserList = trialUser.Where(x => x.UserTypeEnum == UserTypeEnum.SPM || x.UserTypeEnum == UserTypeEnum.CPM).ToList();
break;
case EmailBusinessScenario.Re_ReadApproval_SPMCPMApprovalRe_Reading: // 68 - SPM/CPM审批重阅 - Code: 46
// CRC收件
toUserList = trialUser.Where(x => x.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).ToList();
break;
} }
// 如果没有收件人,则不发送邮件 // 如果没有收件人,则不发送邮件
@ -410,7 +390,7 @@ public class ImageConsumer(
/// <summary> /// <summary>
/// 发送阅片人筛选相关邮件的通用方法 /// 发送阅片人筛选相关邮件的通用方法
/// </summary> /// </summary>
private async Task SendReviewerSelectionEmail(EmailNoticeConfig trialEmailConfig, EmailBusinessScenario scenario, Guid trialId, List<Guid> enrollIdList) private async Task SendReviewerSelectionEmail(EmailNoticeConfig emailNoticeConfig, EmailBusinessScenario scenario, Guid trialId, List<Guid> enrollIdList)
{ {
var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US; var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US;
@ -424,18 +404,16 @@ public class ImageConsumer(
List<UserRole> toUserList = new List<UserRole>(); List<UserRole> toUserList = new List<UserRole>();
List<UserRole> ccUserList = new List<UserRole>(); List<UserRole> ccUserList = new List<UserRole>();
switch (scenario) var emailNoticeUserList = await _emailNoticeUserTypeRepository.Where(x => x.EmailNoticeConfigId == emailNoticeConfig.Id).ToListAsync();
{
case EmailBusinessScenario.ReviewerSelection_PMApplyApproving: // 69 - PM申请审批 - Code: 47 var toList = emailNoticeUserList.Where(x => x.EmailUserType == EmailUserType.To).Select(x => x.UserType).ToList();
// CPM、SPM收件
toUserList = trialUser.Where(x => x.UserTypeEnum == UserTypeEnum.SPM || x.UserTypeEnum == UserTypeEnum.CPM).ToList(); toUserList = trialUser.Where(x => toList.Contains(x.UserTypeEnum)).ToList();
break;
var ccList = emailNoticeUserList.Where(x => x.EmailUserType == EmailUserType.Copy && x.UserType != UserTypeEnum.ClinicalResearchCoordinator).Select(x => x.UserType).ToList();
ccUserList = trialUser.Where(x => ccList.Contains(x.UserTypeEnum)).ToList();
case EmailBusinessScenario.ReviewerSelection_SPMCPMApproval: // 70 - SPM审批 - Code: 48
// APM、PM收件
toUserList = trialUser.Where(x => x.UserTypeEnum == UserTypeEnum.ProjectManager || x.UserTypeEnum == UserTypeEnum.APM).ToList();
break;
}
// 如果没有收件人,则不发送邮件 // 如果没有收件人,则不发送邮件
if (toUserList.Count == 0) if (toUserList.Count == 0)