From 4b569e8fdb25314d30bf621681f4929e1558a21e Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Mon, 9 Mar 2026 09:51:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2=E6=9D=A1?= =?UTF-8?q?=E4=BB=B6=E4=BB=A5=E5=8F=8A=E5=AF=BC=E8=A1=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Common/Export/ExcelExportService.cs | 4 ++-- IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs | 4 ++++ IRaCIS.Core.Application/Service/QC/QCListService.cs | 2 ++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Common/Export/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/Export/ExcelExportService.cs index 10eb03d31..73a1a527a 100644 --- a/IRaCIS.Core.Application/Service/Common/Export/ExcelExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/Export/ExcelExportService.cs @@ -984,7 +984,7 @@ namespace IRaCIS.Core.Application.Service.Common var query = _subjectVisitRepository.Where(x => x.TrialId == inQuery.TrialId) .Where(t => t.Subject.IsSubjectQuit == false || t.SubmitState >= SubmitStateEnum.ToSubmit) - + .WhereIf(inQuery.SubjectStatus != null, t => t.Subject.Status == inQuery.SubjectStatus) .Where(t => t.Subject.FinalSubjectVisitId != null ? t.VisitNum <= t.Subject.FinalSubjectVisit.VisitNum : true) .WhereIf(inQuery.TrialSiteId != null, t => t.TrialSiteId == inQuery.TrialSiteId) .WhereIf(inQuery.SubjectId != null, t => t.Subject.Id == inQuery.SubjectId) @@ -1034,7 +1034,7 @@ namespace IRaCIS.Core.Application.Service.Common var query = _subjectVisitRepository.Where(x => x.TrialId == inQuery.TrialId) .Where(t => t.Subject.IsSubjectQuit == false || t.AuditState > AuditStateEnum.ToAudit) - + .WhereIf(inQuery.SubjectStatus != null, t => t.Subject.Status == inQuery.SubjectStatus) .WhereIf(inQuery.VisitId != null, t => t.Id == inQuery.VisitId) .WhereIf(inQuery.CurrentActionUserId != null, t => t.CurrentActionUserId == inQuery.CurrentActionUserId) .WhereIf(inQuery.ChallengeState != null, t => t.ChallengeState == inQuery.ChallengeState) diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs index fd33d1fe4..dde3d885d 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs @@ -60,6 +60,8 @@ namespace IRaCIS.Core.Application.Contracts public string[]? VisitPlanArray { get; set; } public bool? IsSubjectQuit { get; set; } + + public SubjectStatus? SubjectStatus { get; set; } } public class GetNextQCInfoInDto @@ -98,6 +100,8 @@ namespace IRaCIS.Core.Application.Contracts public DateTime? EndAuditTime { get; set; } + public SubjectStatus? SubjectStatus { get; set; } + public bool? IsSubjectQuit { get; set; } } diff --git a/IRaCIS.Core.Application/Service/QC/QCListService.cs b/IRaCIS.Core.Application/Service/QC/QCListService.cs index a974c0f46..8409653da 100644 --- a/IRaCIS.Core.Application/Service/QC/QCListService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCListService.cs @@ -85,6 +85,7 @@ namespace IRaCIS.Core.Application.Image.QA var svExpression = QCCommon.GetSubjectVisitFilter(inQuery.VisitPlanArray); var query = _subjectVisitRepository.Where(x => x.TrialId == inQuery.TrialId) + .WhereIf(inQuery.SubjectStatus != null, t => t.Subject.Status == inQuery.SubjectStatus) .Where(t => !(t.Subject.Status == SubjectStatus.EndOfVisit && t.SubmitState == SubmitStateEnum.None && !t.Subject.SubjectVisitList.Any(c => c.VisitNum > t.VisitNum && c.SubmitState > SubmitStateEnum.None))) .Where(t => t.Subject.FinalSubjectVisitId != null ? t.VisitNum <= t.Subject.FinalSubjectVisit.VisitNum : true) .WhereIf(inQuery.TrialSiteId != null, t => t.TrialSiteId == inQuery.TrialSiteId) @@ -280,6 +281,7 @@ namespace IRaCIS.Core.Application.Image.QA .WhereIf(inQuery.ChallengeState != null, t => t.ChallengeState == inQuery.ChallengeState) .WhereIf(inQuery.TrialSiteId != null, t => t.TrialSiteId == inQuery.TrialSiteId) .WhereIf(inQuery.SubjectId != null, t => t.Subject.Id == inQuery.SubjectId) + .WhereIf(inQuery.SubjectStatus != null, t => t.Subject.Status == inQuery.SubjectStatus) .WhereIf(inQuery.IsSubjectQuit != null, t => t.Subject.IsSubjectQuit == inQuery.IsSubjectQuit) .WhereIf(!string.IsNullOrEmpty(inQuery.SubjectInfo), t => /*t.Subject.FirstName.Contains(subjectInfo) || t.Subject.LastName.Contains(subjectInfo) ||*/ t.Subject.Code.Contains(inQuery.SubjectInfo)) .WhereIf(inQuery.VisitPlanArray != null && inQuery.VisitPlanArray?.Length > 0, svExpression)