修改查询bug
parent
64291078a0
commit
b6a3391678
|
@ -30,5 +30,43 @@ public static class SendEmailHelper
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static async Task SendEmailAsync(MimeMessage messageToSend, SMTPEmailConfig sMTPEmailConfig, EventHandler<MessageSentEventArgs>? messageSentSuccess = null)
|
||||||
|
{
|
||||||
|
using (var smtp = new MailKit.Net.Smtp.SmtpClient())
|
||||||
|
{
|
||||||
|
if (messageSentSuccess != null)
|
||||||
|
{
|
||||||
|
smtp.MessageSent += messageSentSuccess;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
smtp.ServerCertificateValidationCallback = (s, c, h, e) => true;
|
||||||
|
|
||||||
|
await smtp.ConnectAsync(sMTPEmailConfig.Host, sMTPEmailConfig.Port, SecureSocketOptions.SslOnConnect);
|
||||||
|
|
||||||
|
await smtp.AuthenticateAsync(sMTPEmailConfig.UserName, sMTPEmailConfig.AuthorizationCode);
|
||||||
|
|
||||||
|
await smtp.SendAsync(messageToSend);
|
||||||
|
|
||||||
|
await smtp.DisconnectAsync(true);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class SMTPEmailConfig
|
||||||
|
{
|
||||||
|
public int Port { get; set; }
|
||||||
|
|
||||||
|
public string Host { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public string UserName { get; set; }
|
||||||
|
|
||||||
|
public string AuthorizationCode { get; set; }
|
||||||
|
}
|
||||||
|
|
|
@ -319,7 +319,7 @@
|
||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.Allocation.VisitTaskService.GetOrderReadingIQueryable(System.Guid,System.Nullable{System.Guid})">
|
<member name="M:IRaCIS.Core.Application.Service.Allocation.VisitTaskService.GetOrderReadingIQueryable(System.Guid,System.Nullable{System.Guid},System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
获取有序阅片IQuery对象
|
获取有序阅片IQuery对象
|
||||||
</summary>
|
</summary>
|
||||||
|
@ -393,6 +393,14 @@
|
||||||
TrialEmailNoticeConfigService
|
TrialEmailNoticeConfigService
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:IRaCIS.Core.Application.Service.TrialEmailNoticeConfigService.SyncSystemEmainCofigDocListAsync(System.Guid,System.Nullable{IRaCIS.Core.Domain.Share.CriterionType})">
|
||||||
|
<summary>
|
||||||
|
同步系统配置的文档到想项目中
|
||||||
|
</summary>
|
||||||
|
<param name="trialId"></param>
|
||||||
|
<returns></returns>
|
||||||
|
|
||||||
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.ImageAndDoc.StudyService.Preview(System.Guid)">
|
<member name="M:IRaCIS.Core.Application.Service.ImageAndDoc.StudyService.Preview(System.Guid)">
|
||||||
<summary> 指定资源Id,渲染Dicom检查的Jpeg预览图像 </summary>
|
<summary> 指定资源Id,渲染Dicom检查的Jpeg预览图像 </summary>
|
||||||
<param name="studyId"> Dicom检查的Id </param>
|
<param name="studyId"> Dicom检查的Id </param>
|
||||||
|
|
|
@ -16,6 +16,6 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
Task<IResponseOutput> ConfirmReReading(ConfirmReReadingCommand agreeReReadingCommand, [FromServices] IVisitTaskHelpeService _visitTaskCommonService);
|
Task<IResponseOutput> ConfirmReReading(ConfirmReReadingCommand agreeReReadingCommand, [FromServices] IVisitTaskHelpeService _visitTaskCommonService);
|
||||||
|
|
||||||
(int, IOrderedQueryable<IRUnReadSubjectView>) GetOrderReadingIQueryable(Guid trialId, Guid? trialReadingCriterionId);
|
(int, IOrderedQueryable<IRUnReadSubjectView>) GetOrderReadingIQueryable(Guid trialId, Guid? trialReadingCriterionId,string? subjectCode = null);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -881,10 +881,11 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
||||||
// .Where(t => t.UnReadTaskCount > 0);
|
// .Where(t => t.UnReadTaskCount > 0);
|
||||||
|
|
||||||
|
|
||||||
var visitTaskQuery = GetOrderReadingIQueryable(trialId, trialReadingCriterionId);
|
var visitTaskQuery = GetOrderReadingIQueryable(trialId, trialReadingCriterionId, iRUnReadSubjectQuery.SubjectCode);
|
||||||
|
|
||||||
var totalCount = visitTaskQuery.Item1;
|
var totalCount = visitTaskQuery.Item1;
|
||||||
var currentPageData = await visitTaskQuery.Item2.Skip((iRUnReadSubjectQuery.PageIndex - 1) * iRUnReadSubjectQuery.PageSize)
|
var currentPageData = await visitTaskQuery.Item2
|
||||||
|
.Skip((iRUnReadSubjectQuery.PageIndex - 1) * iRUnReadSubjectQuery.PageSize)
|
||||||
.Take(iRUnReadSubjectQuery.PageSize).ToListAsync();
|
.Take(iRUnReadSubjectQuery.PageSize).ToListAsync();
|
||||||
|
|
||||||
var result = new PageOutput<IRUnReadSubjectView>()
|
var result = new PageOutput<IRUnReadSubjectView>()
|
||||||
|
@ -941,10 +942,12 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="trialId"></param>
|
/// <param name="trialId"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public (int, IOrderedQueryable<IRUnReadSubjectView>) GetOrderReadingIQueryable(Guid trialId, Guid? trialReadingCriterionId)
|
public (int, IOrderedQueryable<IRUnReadSubjectView>) GetOrderReadingIQueryable(Guid trialId, Guid? trialReadingCriterionId,string? subjectCode =null)
|
||||||
{
|
{
|
||||||
var visitGroupQuery = _visitTaskRepository.Where(x => x.TrialId == trialId && x.DoctorUserId == _userInfo.Id)
|
var visitGroupQuery = _visitTaskRepository.Where(x => x.TrialId == trialId && x.DoctorUserId == _userInfo.Id)
|
||||||
.WhereIf(trialReadingCriterionId != null, t => t.TrialReadingCriterionId == trialReadingCriterionId)
|
.WhereIf(trialReadingCriterionId != null, t => t.TrialReadingCriterionId == trialReadingCriterionId)
|
||||||
|
.WhereIf(!string.IsNullOrEmpty(subjectCode), t => t.Subject.Code.Contains(subjectCode) || t.BlindSubjectCode.Contains(subjectCode))
|
||||||
|
|
||||||
.Where(x => !x.Subject.IsDeleted)
|
.Where(x => !x.Subject.IsDeleted)
|
||||||
.Where(t => (t.ReadingTaskState != ReadingTaskState.HaveSigned || t.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed || t.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed) && t.TaskState == TaskState.Effect)
|
.Where(t => (t.ReadingTaskState != ReadingTaskState.HaveSigned || t.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed || t.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed) && t.TaskState == TaskState.Effect)
|
||||||
.GroupBy(x => new { x.SubjectId, x.Subject.Code, x.BlindSubjectCode });
|
.GroupBy(x => new { x.SubjectId, x.Subject.Code, x.BlindSubjectCode });
|
||||||
|
@ -2292,10 +2295,6 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
||||||
else if (((_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SPM || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CPM) && applyId != null && await _visitTaskReReadingRepository.AnyAsync(t => t.Id == applyId && t.CreateUser.UserTypeEnum == UserTypeEnum.ProjectManager) && filterObj.IsAnalysisCreate == false && filterObj.ReadingCategory == ReadingCategory.Visit)
|
else if (((_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SPM || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CPM) && applyId != null && await _visitTaskReReadingRepository.AnyAsync(t => t.Id == applyId && t.CreateUser.UserTypeEnum == UserTypeEnum.ProjectManager) && filterObj.IsAnalysisCreate == false && filterObj.ReadingCategory == ReadingCategory.Visit)
|
||||||
|| (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager && applyId == null))
|
|| (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager && applyId == null))
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//有序
|
//有序
|
||||||
if (criterionConfig.IsReadingTaskViewInOrder)
|
if (criterionConfig.IsReadingTaskViewInOrder)
|
||||||
{
|
{
|
||||||
|
@ -2360,6 +2359,13 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
||||||
// 1.后续访视不处理
|
// 1.后续访视不处理
|
||||||
//2.当前任务未完成,不会产生全局任务。后续任务均为访视任务,且均为待阅片,取消分配;
|
//2.当前任务未完成,不会产生全局任务。后续任务均为访视任务,且均为待阅片,取消分配;
|
||||||
filterExpression = filterExpression.And(t => t.VisitTaskNum >= filterObj.VisitTaskNum);
|
filterExpression = filterExpression.And(t => t.VisitTaskNum >= filterObj.VisitTaskNum);
|
||||||
|
|
||||||
|
|
||||||
|
if (await _visitTaskReReadingRepository.AnyAsync(t => t.RequestReReadingType == RequestReReadingType.DocotorApply && t.RequestReReadingResultEnum == RequestReReadingResult.Default &&
|
||||||
|
t.OriginalReReadingTask.VisitTaskNum >= filterObj.VisitTaskNum && t.OriginalReReadingTask.SubjectId == filterObj.SubjectId && t.OriginalReReadingTask.TrialReadingCriterionId == filterObj.TrialReadingCriterionId && t.OriginalReReadingTask.IsAnalysisCreate == filterObj.IsAnalysisCreate))
|
||||||
|
{
|
||||||
|
isIRAppyTaskInfluenced = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//无序
|
//无序
|
||||||
else
|
else
|
||||||
|
|
|
@ -30,8 +30,9 @@ namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
|
|
||||||
var commonDocumentQueryable = _commonDocumentRepository.AsQueryable(true)
|
var commonDocumentQueryable = _commonDocumentRepository.AsQueryable(true)
|
||||||
.WhereIf( queryCommonDocument.CriterionTypeEnum!=null ,t=>t.CriterionTypeEnum == queryCommonDocument.CriterionTypeEnum)
|
|
||||||
.WhereIf(queryCommonDocument.FileTypeEnum != null, t => t.FileTypeEnum == queryCommonDocument.FileTypeEnum)
|
.WhereIf(queryCommonDocument.FileTypeEnum != null, t => t.FileTypeEnum == queryCommonDocument.FileTypeEnum)
|
||||||
|
|
||||||
|
.WhereIf( queryCommonDocument.CriterionTypeEnum!=null ,t=>t.CriterionTypeEnum == queryCommonDocument.CriterionTypeEnum)
|
||||||
.WhereIf(queryCommonDocument.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == queryCommonDocument.BusinessScenarioEnum)
|
.WhereIf(queryCommonDocument.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == queryCommonDocument.BusinessScenarioEnum)
|
||||||
.WhereIf( string.IsNullOrEmpty(queryCommonDocument.Code) , t => t.Code.Contains(queryCommonDocument.Code) )
|
.WhereIf( string.IsNullOrEmpty(queryCommonDocument.Code) , t => t.Code.Contains(queryCommonDocument.Code) )
|
||||||
.WhereIf(string.IsNullOrEmpty(queryCommonDocument.Name), t => t.Name.Contains(queryCommonDocument.Name))
|
.WhereIf(string.IsNullOrEmpty(queryCommonDocument.Name), t => t.Name.Contains(queryCommonDocument.Name))
|
||||||
|
|
|
@ -114,6 +114,8 @@ namespace IRaCIS.Application.Services
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
messageToSend.Body = builder.ToMessageBody();
|
messageToSend.Body = builder.ToMessageBody();
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
using System;
|
using System;
|
||||||
using IRaCIS.Core.Domain.Share;
|
using IRaCIS.Core.Domain.Share;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace IRaCIS.Core.Application.ViewModel
|
namespace IRaCIS.Core.Application.ViewModel
|
||||||
{
|
{
|
||||||
/// <summary> TrialEmailNoticeConfigView 列表视图模型 </summary>
|
/// <summary> TrialEmailNoticeConfigView 列表视图模型 </summary>
|
||||||
|
@ -24,19 +26,12 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||||
///<summary>TrialEmailNoticeConfigQuery 列表查询参数模型</summary>
|
///<summary>TrialEmailNoticeConfigQuery 列表查询参数模型</summary>
|
||||||
public class TrialEmailNoticeConfigQuery
|
public class TrialEmailNoticeConfigQuery
|
||||||
{
|
{
|
||||||
public string AuthorizationCode { get; set; }
|
[NotDefault]
|
||||||
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
public string ReceiveEmail { get; set; }
|
public CommonDocumentBusinessScenario? BusinessScenarioEnum { get; set; }
|
||||||
|
|
||||||
public string Code { get; set; }
|
public CriterionType? CriterionTypeEnum { get; set; }
|
||||||
|
|
||||||
public string CopyEmail { get; set; }
|
|
||||||
|
|
||||||
public string FromEmail { get; set; }
|
|
||||||
|
|
||||||
public string FilePath { get; set; }
|
|
||||||
|
|
||||||
public string FileName { get; set; }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,7 +40,7 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||||
{
|
{
|
||||||
public Guid? Id { get; set; }
|
public Guid? Id { get; set; }
|
||||||
|
|
||||||
public int BusinessScenarioEnum { get; set; }
|
public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; }
|
||||||
|
|
||||||
public string Code { get; set; }
|
public string Code { get; set; }
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,8 @@ using IRaCIS.Core.Domain.Models;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using IRaCIS.Core.Application.Interfaces;
|
using IRaCIS.Core.Application.Interfaces;
|
||||||
using IRaCIS.Core.Application.ViewModel;
|
using IRaCIS.Core.Application.ViewModel;
|
||||||
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
|
||||||
namespace IRaCIS.Core.Application.Service
|
namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -25,11 +27,43 @@ namespace IRaCIS.Core.Application.Service
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 同步系统配置的文档到想项目中
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="trialId"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
///
|
||||||
|
private async Task SyncSystemEmainCofigDocListAsync(Guid trialId, CriterionType? criterionTypeEnum)
|
||||||
|
{
|
||||||
|
if (criterionTypeEnum != null)
|
||||||
|
{
|
||||||
|
var docmentList = _repository.Where<CommonDocument>(t => t.CriterionTypeEnum == criterionTypeEnum).Select(t => new { t.Path, t.Name, t.Code, t.BusinessScenarioEnum }).ToList();
|
||||||
|
|
||||||
|
var trialDocCount = _trialEmailNoticeConfigRepository.Where(t => t.CriterionTypeEnum == criterionTypeEnum).Count();
|
||||||
|
|
||||||
|
if (trialDocCount == 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
foreach (var item in docmentList)
|
||||||
|
{
|
||||||
|
await _trialEmailNoticeConfigRepository.AddAsync(new TrialEmailNoticeConfig() { FileName = item.Name, FilePath = item.Path, BusinessScenarioEnum = item.BusinessScenarioEnum, Code = item.Code });
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
await _trialEmailNoticeConfigRepository.SaveChangesAsync();
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<List<TrialEmailNoticeConfigView>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery)
|
public async Task<List<TrialEmailNoticeConfigView>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
await SyncSystemEmainCofigDocListAsync(inQuery.TrialId, inQuery.CriterionTypeEnum);
|
||||||
|
|
||||||
var trialEmailNoticeConfigQueryable = _trialEmailNoticeConfigRepository
|
var trialEmailNoticeConfigQueryable = _trialEmailNoticeConfigRepository
|
||||||
|
.WhereIf(inQuery.CriterionTypeEnum != null, t => t.CriterionTypeEnum == inQuery.CriterionTypeEnum)
|
||||||
|
.WhereIf(inQuery.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == inQuery.BusinessScenarioEnum)
|
||||||
.ProjectTo<TrialEmailNoticeConfigView>(_mapper.ConfigurationProvider);
|
.ProjectTo<TrialEmailNoticeConfigView>(_mapper.ConfigurationProvider);
|
||||||
|
|
||||||
return await trialEmailNoticeConfigQueryable.ToListAsync();
|
return await trialEmailNoticeConfigQueryable.ToListAsync();
|
||||||
|
|
|
@ -71,6 +71,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
CreateMap<TrialEmailNoticeConfig, TrialEmailNoticeConfigView>();
|
CreateMap<TrialEmailNoticeConfig, TrialEmailNoticeConfigView>();
|
||||||
|
|
||||||
|
CreateMap<TrialEmailNoticeConfigAddOrEdit, TrialEmailNoticeConfig>();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,8 +58,8 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
[Required]
|
[Required]
|
||||||
public bool IsDistinguishCriteria { get; set; }
|
public bool IsDistinguishCriteria { get; set; }
|
||||||
|
|
||||||
[Required]
|
|
||||||
public int BusinessScenarioEnum { get; set; }
|
public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; }
|
||||||
|
|
||||||
public CriterionType CriterionTypeEnum { get; set; }
|
public CriterionType CriterionTypeEnum { get; set; }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue