diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index efa735ed7..ff19ec9a0 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -688,7 +688,7 @@ - + 质控问题答案导出 diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs index 92ce94fec..2046759db 100644 --- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs @@ -57,7 +57,7 @@ namespace IRaCIS.Core.Application.Service.Common /// /// [HttpPost] - public async Task GetTrialQCQuestionAnserList_Export(Guid trialId, + public async Task GetTrialQCQuestionAnserList_Export(GetQCQuestionAnswerQuery inQuery, [FromServices] IRepository _trialQCQuestionAnswerRepository, [FromServices] IRepository _trialRepository, [FromServices] IRepository _userRoleRepository, @@ -86,9 +86,10 @@ namespace IRaCIS.Core.Application.Service.Common // } + var trialId = inQuery.TrialId; - var query = from qa in _trialQCQuestionAnswerRepository.Where(t => t.SubjectVisit.TrialId == trialId && - (t.SubjectVisit.AuditState == AuditStateEnum.QCPassed && t.SecondReviewTime == null || + var query = from qa in _trialQCQuestionAnswerRepository.Where(t => t.TrialId == trialId && t.SubjectVisit.IsDeleted == false && + ((t.SubjectVisit.AuditState >= AuditStateEnum.PrimaryQCPassed && t.SecondReviewTime == null) || (t.SubjectVisit.SecondReviewState == SecondReviewState.AuditPassed && t.SecondReviewTime <= t.SubjectVisit.Trial.QCQuestionConfirmedTime) || (t.SubjectVisit.SecondReviewState == SecondReviewState.WaitAudit && t.SecondReviewTime < t.SubjectVisit.Trial.QCQuestionConfirmedTime))) join u in _userRoleRepository.AsQueryable() on qa.UpdateUserId equals u.Id @@ -118,7 +119,7 @@ namespace IRaCIS.Core.Application.Service.Common var result = query.OrderBy(t => t.TrialSiteCode).ThenBy(t => t.SubjectCode).ThenBy(t => t.VisitNum).ToList(); - var list = result.GroupBy(t => new { t.SubjectVisitId, t.SecondReviewTime, t.TrialSiteCode, t.VisitNum, t.SubjectCode, t.VisitName, t.CurrentQCEnum }) + var list = result.Where(t => t.AuditTime != null).GroupBy(t => new { t.SubjectVisitId, t.SecondReviewTime, t.TrialSiteCode, t.VisitNum, t.SubjectCode, t.VisitName, t.CurrentQCEnum }) .Select(g => new QCQuestionResult_Export() { TrialSiteCode = g.Key.TrialSiteCode, @@ -134,7 +135,7 @@ namespace IRaCIS.Core.Application.Service.Common QuestionAnswerList = g.Select(t => new QCQuestionAnswerExport() { Answer = t.Answer, QuestionName = t.QuesitonName, ShowOrder = t.ShowOrder, QuestionId = t.QuestionId }).OrderBy(t => t.ShowOrder).ToList() - }).OrderBy(t => t.TrialSiteCode).ThenBy(t => t.SubjectCode).ThenBy(t => t.VisitNum).ToList(); + }).OrderBy(t => t.TrialSiteCode).ThenBy(t => t.SubjectCode).ThenBy(t => t.VisitNum).ThenBy(t=>t.CurrentQCEnum).ThenBy(t=>t.AuditTime).ToList(); var exportInfo = new ExcelExportInfo(); diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs index 73a71df38..128b15cfe 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs @@ -2247,6 +2247,11 @@ namespace IRaCIS.Core.Application.Contracts } + public class GetQCQuestionAnswerQuery + { + public Guid TrialId { get; set; } + } + public class QCQuestionAnswerResult_export { public Guid SubjectVisitId { get; set; } @@ -2287,6 +2292,8 @@ namespace IRaCIS.Core.Application.Contracts public string VisitName { get; set; } public decimal VisitNum { get; set; } + + [DictionaryTranslate("CurrentQCType")] public CurrentQC CurrentQCEnum { get; set; } public string AuditUserName { get; set; }