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; }