修改一版

Test.EIImageViewer
he 2023-02-09 15:08:47 +08:00
parent cb78bd6a66
commit 6b0eed3fb7
6 changed files with 204 additions and 4 deletions

View File

@ -440,6 +440,13 @@
TrialEmailNoticeConfigService
</summary>
</member>
<member name="M:IRaCIS.Core.Application.Service.TrialEmailNoticeConfigService.GetTrialEmailSet(IRaCIS.Core.Application.ViewModel.GetTrialEmailSetInDto)">
<summary>
设置项目邮箱
</summary>
<param name="inDto"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.TrialEmailNoticeConfigService.SyncSystemEmainCofigDocListAsync(System.Guid,System.Nullable{IRaCIS.Core.Domain.Share.CriterionType})">
<summary>
同步系统配置的文档到想项目中
@ -5982,6 +5989,31 @@
<member name="T:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigView">
<summary> TrialEmailNoticeConfigView 列表视图模型 </summary>
</member>
<member name="P:IRaCIS.Core.Application.ViewModel.GetTrialEmailSetOutDto.EmailFromEmail">
<summary>
发件箱账号
</summary>
</member>
<member name="P:IRaCIS.Core.Application.ViewModel.GetTrialEmailSetOutDto.EmailFromName">
<summary>
发件人
</summary>
</member>
<member name="P:IRaCIS.Core.Application.ViewModel.GetTrialEmailSetOutDto.EmailAuthorizationCode">
<summary>
密码/授权码
</summary>
</member>
<member name="P:IRaCIS.Core.Application.ViewModel.GetTrialEmailSetOutDto.EmailSMTPServerAddress">
<summary>
SMTP服务器
</summary>
</member>
<member name="P:IRaCIS.Core.Application.ViewModel.GetTrialEmailSetOutDto.EmailSMTPServerPort">
<summary>
SMTP端口
</summary>
</member>
<member name="T:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigQuery">
<summary>TrialEmailNoticeConfigQuery 列表查询参数模型</summary>
</member>

View File

@ -48,7 +48,44 @@ namespace IRaCIS.Core.Application.ViewModel
}
public class GetTrialEmailSetOutDto
{
public Guid TrialId { get; set; }
/// <summary>
/// 发件箱账号
/// </summary>
public string EmailFromEmail { get; set; } = string.Empty;
/// <summary>
/// 发件人
/// </summary>
public string EmailFromName { get; set; } = string.Empty;
/// <summary>
/// 密码/授权码
/// </summary>
public string EmailAuthorizationCode { get; set; } = string.Empty;
/// <summary>
/// SMTP服务器
/// </summary>
public string EmailSMTPServerAddress { get; set; } = string.Empty;
/// <summary>
/// SMTP端口
/// </summary>
public int? EmailSMTPServerPort { get; set; }
}
public class SetTrialEmailInDto : GetTrialEmailSetOutDto
{
}
public class GetTrialEmailSetInDto
{
public Guid TrialId { get; set; }
}
///<summary>TrialEmailNoticeConfigQuery 列表查询参数模型</summary>
public class TrialEmailNoticeConfigQuery

View File

@ -26,17 +26,79 @@ namespace IRaCIS.Core.Application.Service
{
private readonly IRepository<TrialEmailNoticeConfig> _trialEmailNoticeConfigRepository;
private readonly IRepository<Trial> _trialRepository;
public IRepository<VisitTask> _visitTaskRepository { get; }
public IRepository<TrialUser> _trialUserRepository { get; }
public TrialEmailNoticeConfigService(IRepository<TrialEmailNoticeConfig> trialEmailNoticeConfigRepository, IRepository<VisitTask> visitTaskRepository, IRepository<TrialUser> trialUserRepository)
public TrialEmailNoticeConfigService(IRepository<TrialEmailNoticeConfig> trialEmailNoticeConfigRepository, IRepository<VisitTask> visitTaskRepository,
IRepository<Trial> trialRepository,
IRepository<TrialUser> trialUserRepository)
{
_trialEmailNoticeConfigRepository = trialEmailNoticeConfigRepository;
_visitTaskRepository = visitTaskRepository;
this._trialRepository = trialRepository;
_trialUserRepository = trialUserRepository;
}
/// <summary>
/// 设置项目邮箱
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<GetTrialEmailSetOutDto> GetTrialEmailSet(GetTrialEmailSetInDto inDto)
{
return await _trialRepository.Where(x => x.Id == inDto.TrialId).Select(x => new GetTrialEmailSetOutDto()
{
TrialId = inDto.TrialId,
EmailAuthorizationCode = x.EmailAuthorizationCode,
EmailSMTPServerAddress = x.EmailSMTPServerAddress,
EmailFromEmail = x.EmailFromEmail,
EmailFromName = x.EmailFromEmail,
EmailSMTPServerPort = x.EmailSMTPServerPort
}).FirstNotNullAsync();
}
public async Task<IResponseOutput> SetTrialEmail(SetTrialEmailInDto inDto)
{
await TestEmailConfigAsync(new TrialEmailNoticeConfigAddOrEdit() {
AuthorizationCode=inDto.EmailAuthorizationCode,
FromEmail=inDto.EmailFromEmail,
FileName=inDto.EmailFromName,
SMTPServerAddress=inDto.EmailSMTPServerAddress,
SMTPServerPort= inDto.EmailSMTPServerPort.Value,
});
await _trialRepository.UpdatePartialFromQueryAsync(inDto.TrialId, x => new Trial()
{
EmailFromEmail = inDto.EmailFromEmail,
EmailFromName = inDto.EmailFromName,
EmailAuthorizationCode = inDto.EmailAuthorizationCode,
EmailSMTPServerAddress = inDto.EmailSMTPServerAddress,
EmailSMTPServerPort = inDto.EmailSMTPServerPort
});
await _trialEmailNoticeConfigRepository.BatchUpdateNoTrackingAsync(x => x.TrialId == inDto.TrialId, x => new TrialEmailNoticeConfig()
{
AuthorizationCode = inDto.EmailAuthorizationCode,
FromEmail = inDto.EmailFromEmail,
FileName = inDto.EmailFromName,
SMTPServerAddress = inDto.EmailSMTPServerAddress,
SMTPServerPort = inDto.EmailSMTPServerPort.Value,
});
await _trialRepository.SaveChangesAsync();
return ResponseOutput.Ok();
}
/// <summary>
/// 同步系统配置的文档到想项目中
@ -750,6 +812,7 @@ namespace IRaCIS.Core.Application.Service
var trialEmailNoticeConfigQueryable = _trialEmailNoticeConfigRepository.Where(t => t.TrialId == inQuery.TrialId)
.WhereIf(inQuery.CriterionTypeEnum != null, t => t.CriterionTypeEnum == inQuery.CriterionTypeEnum)
.WhereIf(inQuery.CriterionTypeEnum == null, t => t.CriterionTypeEnum == null)
.WhereIf(inQuery.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == inQuery.BusinessScenarioEnum)
.ProjectTo<TrialEmailNoticeConfigView>(_mapper.ConfigurationProvider);

View File

@ -135,7 +135,16 @@ namespace IRaCIS.Application.Services
x.TaskBlindName,
} ).ToListAsync();
var globalVisitTwoTaskIds = await _visitTaskRepository.Where(x => x.Id == taskList[1].Id).Select(x => x.RelatedVisitTaskIdList).FirstNotNullAsync();
// 找到所有的的任务
var globalVisitTwoTasks = await _visitTaskRepository.Where(x => globalVisitTwoTaskIds.Contains(x.Id)).Select(x => new {
x.Id,
x.ArmEnum,
x.VisitTaskNum,
x.SourceSubjectVisitId,
x.TaskBlindName,
}).ToListAsync();
var taskNum = globalVisitTasks.Select(x => x.VisitTaskNum).Distinct().OrderBy(x=>x).ToList();
@ -153,6 +162,19 @@ namespace IRaCIS.Application.Services
}).ToListAsync();
var judgeQuestionTwoAnswer = await _readingTaskQuestionAnswerRepository.Where(x => globalVisitTwoTaskIds.Contains(x.VisitTaskId) && x.ReadingQuestionTrial.IsJudgeQuestion).OrderBy(x => x.ReadingQuestionTrial.ShowOrder)
.Select(x => new GlobalVisitJudgeQuestion()
{
Answer = x.Answer,
ShowOrder = x.ReadingQuestionTrial.ShowOrder,
VisitTaskId = x.VisitTaskId,
QuestionId = x.ReadingQuestionTrial.Id,
QuestionName = x.ReadingQuestionTrial.QuestionName.LanguageName(x.ReadingQuestionTrial.QuestionEnName, _userInfo.IsEn_Us),
QuestionGenre = x.ReadingQuestionTrial.QuestionGenre,
DictionaryCode = x.ReadingQuestionTrial.DictionaryCode,
}).ToListAsync();
foreach (var item in taskNum)
{
var globalTaskInfos = globalVisitTasks.Where(x => x.VisitTaskNum == item).OrderBy(x => x.ArmEnum).ToList();
@ -181,6 +203,25 @@ namespace IRaCIS.Application.Services
}).ToList(),
});
var towtask = globalVisitTwoTasks.Where(x => x.VisitTaskNum == globalitem.VisitTaskNum).FirstOrDefault();
judgeReadingInfoDto.VisitTaskInfoList.Add(new JudgeReadingQuestion()
{
ArmEnum = towtask.ArmEnum,
VisitTaskId = towtask.Id,
JudgeQuestionList = judgeQuestionTwoAnswer.Where(x => x.VisitTaskId == towtask.Id).OrderBy(x => x.ShowOrder)
.Select(x => new JudgeQuestion()
{
Answer = x.Answer,
QuestionId = x.QuestionId,
QuestionName = x.QuestionName,
QuestionGenre = x.QuestionGenre,
DictionaryCode = x.DictionaryCode,
}).ToList(),
});
}
judgeInfo.VisitInfoList.Add(judgeReadingInfoDto);
}
@ -521,7 +562,7 @@ namespace IRaCIS.Application.Services
}
}
else
else if(!criterionInfo.IsReadingPeriod)
{
var query = from questionAnswet in _readingTaskQuestionAnswerRepository.Where(x => visitTaskids.Contains(x.VisitTaskId))
join question in _readingQuestionTrialRepository.Where(x => x.IsJudgeQuestion) on new { ReadingQuestionTrialId = questionAnswet.ReadingQuestionTrialId } equals new { ReadingQuestionTrialId = question.Id }

View File

@ -71,7 +71,7 @@ namespace IRaCIS.Core.Domain.Models
public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; }
public CriterionType CriterionTypeEnum { get; set; }
public CriterionType? CriterionTypeEnum { get; set; }
[Required]
public string FilePath { get; set; } = string.Empty;

View File

@ -325,6 +325,33 @@ namespace IRaCIS.Core.Domain.Models
public string BlindFollowUpPrefix { get; set; } = "Follow-up";
#region 邮件配置
/// <summary>
/// 发件箱账号
/// </summary>
public string EmailFromEmail { get; set; } = string.Empty;
/// <summary>
/// 发件人
/// </summary>
public string EmailFromName { get; set; } = string.Empty;
/// <summary>
/// 密码/授权码
/// </summary>
public string EmailAuthorizationCode { get; set; } = string.Empty;
/// <summary>
/// SMTP服务器
/// </summary>
public string EmailSMTPServerAddress { get; set; } = string.Empty;
/// <summary>
/// SMTP端口
/// </summary>
public int? EmailSMTPServerPort { get; set; }
#endregion
///// <summary>
///// 图像是否有标注
///// </summary>