项目邮件配置修改--008

Uat_Study
hang 2023-08-21 17:18:17 +08:00
parent e46b51d6a1
commit e24933f0dd
7 changed files with 70 additions and 17 deletions

View File

@ -602,6 +602,13 @@
<param name="trialId"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.TrialEmailNoticeConfigService.GetTrialUserIdSelectList(System.Guid)">
<summary>
黑名单用户Id 列表
</summary>
<param name="trialId"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.ImageAndDoc.StudyService.Preview(System.Guid)">
<summary> 指定资源Id渲染Dicom检查的Jpeg预览图像 </summary>
<param name="studyId"> Dicom检查的Id </param>

View File

@ -23,7 +23,7 @@ namespace IRaCIS.Core.Application.Service
CreateMap<EmailNoticeConfigAddOrEdit, EmailNoticeConfig>().ReverseMap();
CreateMap<EmailUserType, EmailUserTypeDto>();
CreateMap<EmailNoticeUserType, EmailUserTypeDto>();

View File

@ -198,6 +198,8 @@ namespace IRaCIS.Core.Application.ViewModel
public string EmailHtmlContentCN { get; set; } = string.Empty;
public List<Guid> BlackUserIdList { get; set; }
}

View File

@ -33,7 +33,9 @@ namespace IRaCIS.Core.Application.Service
private readonly IRepository<TrialEmailNoticeConfig> _trialEmailNoticeConfigRepository;
private readonly IRepository<Trial> _trialRepository;
private readonly IRepository<TrialEmailBlackUser> _trialEmailBlackUserRepository;
private readonly IRepository<TaskMedicalReview> _taskMedicalReviewRepository;
@ -46,7 +48,7 @@ namespace IRaCIS.Core.Application.Service
public TrialEmailNoticeConfigService(IRepository<TrialEmailNoticeConfig> trialEmailNoticeConfigRepository, IRepository<VisitTask> visitTaskRepository,
IRepository<Trial> trialRepository,
IRepository<TrialUser> trialUserRepository, IRepository<TaskMedicalReview> taskMedicalReviewRepository, IRepository<Subject> subjectRepository, IRepository<SubjectVisit> subjectVisitRepository)
IRepository<TrialUser> trialUserRepository, IRepository<TaskMedicalReview> taskMedicalReviewRepository, IRepository<Subject> subjectRepository, IRepository<SubjectVisit> subjectVisitRepository, IRepository<TrialEmailBlackUser> trialEmailBlackUserRepository)
{
_trialEmailNoticeConfigRepository = trialEmailNoticeConfigRepository;
_visitTaskRepository = visitTaskRepository;
@ -56,6 +58,7 @@ namespace IRaCIS.Core.Application.Service
_subjectRepository = subjectRepository;
_subjectVisitRepository = subjectVisitRepository;
_trialEmailBlackUserRepository = trialEmailBlackUserRepository;
}
/// <summary>
@ -189,7 +192,7 @@ namespace IRaCIS.Core.Application.Service
{
businessScenarioEnum = CommonDocumentBusinessScenario.PDConfirmed;
}
#endregion
#region 任务 基本信息,邮件需要
@ -212,7 +215,7 @@ namespace IRaCIS.Core.Application.Service
#region 发收件人配置 确保无误
var emailConfig = await _trialEmailNoticeConfigRepository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId==null && t.BusinessScenarioEnum == businessScenarioEnum)
var emailConfig = await _trialEmailNoticeConfigRepository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId == null && t.BusinessScenarioEnum == businessScenarioEnum)
.Include(t => t.TrialEmailNoticeUserList).FirstOrDefaultAsync();
@ -326,7 +329,7 @@ namespace IRaCIS.Core.Application.Service
);
}
}
@ -950,7 +953,7 @@ namespace IRaCIS.Core.Application.Service
//先预先生成了邮件,发送预先生成的邮件
sendEmailConfig.EmailAttachMentConfigList.Add(new EmailAttachMentConfig()
{
FileName = $"{taskInfo.SubjectCode}_{Path.GetFileNameWithoutExtension( _userInfo.IsEn_Us? emailConfig.AttachName: emailConfig.AttachNameCN)}.pdf",
FileName = $"{taskInfo.SubjectCode}_{Path.GetFileNameWithoutExtension(_userInfo.IsEn_Us ? emailConfig.AttachName : emailConfig.AttachNameCN)}.pdf",
FileStream = File.OpenRead(phyPath),
});
@ -1503,6 +1506,20 @@ namespace IRaCIS.Core.Application.Service
}
/// <summary>
/// 黑名单用户Id 列表
/// </summary>
/// <param name="trialId"></param>
/// <returns></returns>
public async Task<List<Guid>> GetTrialUserIdSelectList(Guid trialId)
{
var query = _trialUserRepository.Where(t => t.TrialId == trialId, false, true).IgnoreQueryFilters().Select(t => t.UserId).Distinct();
return await query.ToListAsync();
}
[HttpPost]
public async Task<List<TrialEmailNoticeConfigView>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery)
{
@ -1541,6 +1558,10 @@ namespace IRaCIS.Core.Application.Service
}
foreach (var userid in addOrEditTrialEmailNoticeConfig.BlackUserIdList)
{
entity.TrialEmailBlackUserList.Add(new TrialEmailBlackUser() { UserId = userid });
}
await _trialEmailNoticeConfigRepository.AddAsync(entity, true);
@ -1549,10 +1570,10 @@ namespace IRaCIS.Core.Application.Service
}
else
{
var id = (Guid)addOrEditTrialEmailNoticeConfig.Id;
await _repository.BatchDeleteAsync<TrialEmailNoticeUser>(t => t.TrialEmailNoticeConfigId == addOrEditTrialEmailNoticeConfig.Id);
var entity = (await _trialEmailNoticeConfigRepository.Where(t => t.Id == addOrEditTrialEmailNoticeConfig.Id, true, true).Include(t => t.TrialEmailNoticeUserList).FirstOrDefaultAsync()).IfNullThrowException();
await _repository.BatchDeleteAsync<TrialEmailBlackUser>(t => t.TrialEmailNoticeConfigId == addOrEditTrialEmailNoticeConfig.Id);
List<TrialEmailNoticeUser> trialEmailNoticeUsers = new List<TrialEmailNoticeUser>();
@ -1560,17 +1581,23 @@ namespace IRaCIS.Core.Application.Service
foreach (var item in addOrEditTrialEmailNoticeConfig.ToUserTypeList)
{
trialEmailNoticeUsers.Add(new TrialEmailNoticeUser() { EmailUserType = EmailUserType.To, UserType = item, TrialEmailNoticeConfigId = entity.Id });
trialEmailNoticeUsers.Add(new TrialEmailNoticeUser() { EmailUserType = EmailUserType.To, UserType = item, TrialEmailNoticeConfigId = id });
}
foreach (var item in addOrEditTrialEmailNoticeConfig.CopyUserTypeList)
{
trialEmailNoticeUsers.Add(new TrialEmailNoticeUser() { EmailUserType = EmailUserType.Copy, UserType = item, TrialEmailNoticeConfigId = entity.Id });
trialEmailNoticeUsers.Add(new TrialEmailNoticeUser() { EmailUserType = EmailUserType.Copy, UserType = item, TrialEmailNoticeConfigId = id });
}
await _repository.AddRangeAsync(trialEmailNoticeUsers);
foreach (var userid in addOrEditTrialEmailNoticeConfig.BlackUserIdList)
{
await _trialEmailBlackUserRepository.AddAsync(new TrialEmailBlackUser() { UserId = userid, TrialEmailNoticeConfigId = id });
}
await _trialEmailNoticeConfigRepository.UpdateFromDTOAsync(addOrEditTrialEmailNoticeConfig);

View File

@ -72,7 +72,8 @@ namespace IRaCIS.Core.Application.Service
CreateMap<TrialEmailNoticeConfig, TrialEmailNoticeConfigView>()
.ForMember(d => d.TrialCriterionName, c => c.MapFrom(t => t.TrialReadingCriterion.CriterionName))
.ForMember(d => d.TrialEmailNoticeUserList, c => c.MapFrom(t => t.TrialEmailNoticeUserList));
.ForMember(d => d.TrialEmailNoticeUserList, c => c.MapFrom(t => t.TrialEmailNoticeUserList))
.ForMember(d => d.BlackUserIdList, c => c.MapFrom(t => t.TrialEmailBlackUserList.Select(c=>c.UserId)));
CreateMap<TrialEmailNoticeConfigAddOrEdit, TrialEmailNoticeConfig>();

View File

@ -36,11 +36,11 @@ namespace IRaCIS.Core.Domain.Models
public string FromEmail { get; set; } = string.Empty;
[JsonIgnore]
public List<TrialEmailNoticeUser> TrialEmailNoticeUserList { get; set; } = new List<TrialEmailNoticeUser>();
public List<TrialEmailBlackUser> TrialEmailBlackUserList { get; set; } = new List<TrialEmailBlackUser>();
/// <summary> 业务模块 /// </summary>
public int BusinessModuleEnum { get; set; }
@ -80,7 +80,7 @@ namespace IRaCIS.Core.Domain.Models
public Guid? SysEmailNoticeConfigId { get; set; }
[Required]
@ -118,4 +118,19 @@ namespace IRaCIS.Core.Domain.Models
}
public class TrialEmailBlackUser:Entity
{
[JsonIgnore]
public TrialEmailNoticeConfig TrialEmailNoticeConfig { get; set; }
[JsonIgnore]
public User User { get; set; }
public Guid TrialEmailNoticeConfigId { get; set; }
public Guid UserId { get; set; }
}
}

View File

@ -755,8 +755,9 @@ namespace IRaCIS.Core.Infra.EFCore
public virtual DbSet<PIAudit> PIAudit { get; set; }
public virtual DbSet<EmailNoticeUserType> EmailNoticeUserType { get; set; }
public virtual DbSet<TrialEmailBlackUser> TrialEmailBlackUser { get; set; }
}
public class MySequentialGuidValueGenerator : ValueGenerator<Guid>