Merge branch 'Test_IRC_Net8' of http://192.168.3.68:2000/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
ad7463c2c9
|
@ -1,4 +1,5 @@
|
||||||
using IRaCIS.Core.Domain.Share;
|
using DocumentFormat.OpenXml;
|
||||||
|
using IRaCIS.Core.Domain.Share;
|
||||||
using IRaCIS.Core.Infrastructure;
|
using IRaCIS.Core.Infrastructure;
|
||||||
using MimeKit;
|
using MimeKit;
|
||||||
using System;
|
using System;
|
||||||
|
@ -58,4 +59,44 @@ public static class CommonEmailHelper
|
||||||
.Replace("{company abbreviation}", isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN);
|
.Replace("{company abbreviation}", isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN);
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 翻译字典
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="inDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string TranslationDictionary(TranslationDictionaryDto inDto)
|
||||||
|
{
|
||||||
|
var dic = inDto.DictionaryRepository.Where(x => x.Parent.Code == inDto.DictionaryCode && x.Code == inDto.EnumValue).FirstOrDefault();
|
||||||
|
|
||||||
|
return dic == null ? string.Empty : (inDto.IsEn_US ? dic.Value : dic.ValueCN);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 转换字典的Dto
|
||||||
|
/// </summary>
|
||||||
|
public class TranslationDictionaryDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 字典仓储
|
||||||
|
/// </summary>
|
||||||
|
public IRepository<Dictionary> DictionaryRepository { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 字典Code
|
||||||
|
/// </summary>
|
||||||
|
public string DictionaryCode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 枚举值
|
||||||
|
/// </summary>
|
||||||
|
public string EnumValue { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否是英文
|
||||||
|
/// </summary>
|
||||||
|
public bool IsEn_US { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,15 @@
|
||||||
using IRaCIS.Core.Application.MassTransit.Command;
|
using IRaCIS.Core.Application.Helper;
|
||||||
|
using IRaCIS.Core.Application.MassTransit.Command;
|
||||||
using IRaCIS.Core.Domain;
|
using IRaCIS.Core.Domain;
|
||||||
using IRaCIS.Core.Domain.BaseModel;
|
using IRaCIS.Core.Domain.BaseModel;
|
||||||
|
using IRaCIS.Core.Domain.Models;
|
||||||
|
using IRaCIS.Core.Domain.Share;
|
||||||
using MassTransit;
|
using MassTransit;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
|
using MimeKit;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
@ -13,11 +19,76 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 加急的医学反馈任务 通知MIM
|
/// 加急的医学反馈任务 通知MIM
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class UrgentMedicalReviewAddedEventConsumer : IConsumer<UrgentMedicalReviewAddedEvent>
|
public class UrgentMedicalReviewAddedEventConsumer(
|
||||||
|
IRepository<User> _userRepository,
|
||||||
|
IRepository<TaskMedicalReview> _taskMedicalReviewRepository,
|
||||||
|
IRepository<Trial> _trialRepository,
|
||||||
|
IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository,
|
||||||
|
IRepository<TrialSiteSurvey> _trialSiteSurveyRepository,
|
||||||
|
IRepository<EmailNoticeConfig> _emailNoticeConfigrepository,
|
||||||
|
IOptionsMonitor<SystemEmailSendConfig> systemEmailConfig
|
||||||
|
) : IConsumer<UrgentMedicalReviewAddedEvent>
|
||||||
{
|
{
|
||||||
public Task Consume(ConsumeContext<UrgentMedicalReviewAddedEvent> context)
|
private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 加急的医学反馈任务 通知MIM
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="context"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
/// <exception cref="NotImplementedException"></exception>
|
||||||
|
public async Task Consume(ConsumeContext<UrgentMedicalReviewAddedEvent> context)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US;
|
||||||
|
|
||||||
|
var medicalReviewId = context.Message.MedicalReviewId;
|
||||||
|
|
||||||
|
var medicalReview = await _taskMedicalReviewRepository.Where(x => x.Id == medicalReviewId).Include(x => x.VisitTask).Include(x=>x.MedicalManagerUser).FirstOrDefaultAsync();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (medicalReview.MedicalManagerUserId == null)
|
||||||
|
{
|
||||||
|
Console.WriteLine("MIMId为空 ID"+ medicalReviewId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var criterion = await _readingQuestionCriterionTrialRepository.FirstOrDefaultAsync(x => x.Id == medicalReview.VisitTask.TrialReadingCriterionId);
|
||||||
|
var userinfo = await _userRepository.Where(x => x.Id == medicalReview.MedicalManagerUserId).FirstOrDefaultAsync();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var messageToSend = new MimeMessage();
|
||||||
|
//发件地址
|
||||||
|
messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail));
|
||||||
|
messageToSend.To.Add(new MailboxAddress(String.Empty, userinfo.EMail));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == medicalReview.TrialId);
|
||||||
|
var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN;
|
||||||
|
|
||||||
|
Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input =>
|
||||||
|
{
|
||||||
|
var topicStr = string.Format(input.topicStr, companyName, trialInfo.ResearchProgramNo);
|
||||||
|
var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr),
|
||||||
|
userinfo.FullName, // 用户名
|
||||||
|
trialInfo.ExperimentName , // 项目
|
||||||
|
criterion.CriterionName, // 阅片标准
|
||||||
|
// 受试者
|
||||||
|
// 访视
|
||||||
|
// 任务类型
|
||||||
|
// 阅片人是否同意
|
||||||
|
// 审核状态
|
||||||
|
// 是否加急
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
return (topicStr, htmlBodyStr);
|
||||||
|
};
|
||||||
|
|
||||||
|
await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(_emailNoticeConfigrepository, EmailBusinessScenario.SiteSurveyReject, messageToSend, emailConfigFunc);
|
||||||
|
|
||||||
|
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -69,6 +69,9 @@ public class TaskMedicalReview : BaseFullAuditEntity
|
||||||
[Comment("阅片人是否认同")]
|
[Comment("阅片人是否认同")]
|
||||||
public MedicalReviewDoctorUserIdea DoctorUserIdeaEnum { get; set; }
|
public MedicalReviewDoctorUserIdea DoctorUserIdeaEnum { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// mim
|
||||||
|
/// </summary>
|
||||||
public Guid? MedicalManagerUserId { get; set; }
|
public Guid? MedicalManagerUserId { get; set; }
|
||||||
public Guid VisitTaskId { get; set; }
|
public Guid VisitTaskId { get; set; }
|
||||||
public Guid TrialId { get; set; }
|
public Guid TrialId { get; set; }
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using IRaCIS.Core.Domain.BaseModel;
|
using IRaCIS.Core.Domain.BaseModel;
|
||||||
using IRaCIS.Core.Domain.Share;
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
using IRaCIS.Core.Domain.Models;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
Loading…
Reference in New Issue