From 6a6e449e493b1a223422842d39f5d7415f667bbd Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Thu, 10 Oct 2024 13:38:21 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=BB=E5=8F=96=E4=B8=8B=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E9=98=85=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingImageTaskService.cs | 35 +++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 01b311ec5..2a42aac6c 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -2825,20 +2825,24 @@ namespace IRaCIS.Core.Application.Service } else if (inDto.SubjectId != null && trialReadingCriterion.IsReadingTaskViewInOrder == ReadingOrder.SubjectRandom) { - await _downloadAndUploadService.SubejctRandomReadingTaskNameDeal((Guid)inDto.SubjectId, (Guid)trialReadingCriterionId); + + var subjectTaskList = (await _visitTaskService.GetSubjectReadingIQueryable(new GetReadingIQueryableInDto() { TrialId = inDto.TrialId, - SubjectId = inDto.SubjectId, TrialReadingCriterionId = trialReadingCriterionId!.Value, - SubjectCode = inDto.SubjectCode, PageIndex = 1, PageSize = 99999, })).CurrentPageData; + + + + + if (subjectTaskList.Count() == 0) { throw new BusinessValidationFailedException(_localizer["ReadingImage_TaskFinish"], ApiResponseCodeEnum.CloseCurrentWindows); @@ -2851,11 +2855,36 @@ namespace IRaCIS.Core.Application.Service //受试者随机固定排序 taskList = taskList.Where(x => remainingItems.Contains(x.Id)).OrderBy(t=>t.TaskBlindName).ToList(); + // 当前受试者没有就找其他受试者 + if (taskList.Count() == 0) + { + var allsubjectTaskList = (await _visitTaskService.GetSubjectReadingIQueryable(new GetReadingIQueryableInDto() + { + TrialId = inDto.TrialId, + TrialReadingCriterionId = trialReadingCriterionId!.Value, + PageIndex = 1, + PageSize = 99999, + + })).CurrentPageData; + + foreach (var item in allsubjectTaskList) + { + var canReadList = item.UnReadCanReadTaskList.Where(x => remainingItems.Contains(x.Id)).OrderBy(t => t.TaskBlindName).ToList(); + if (canReadList.Count() > 0) + { + taskList = canReadList; + break; + } + } + } + + if (taskList.Count() == 0) { throw new BusinessValidationFailedException(_localizer["ReadingImage_TaskFinish"], ApiResponseCodeEnum.CloseCurrentWindows); } + #region 随机废弃 //Random random = new Random(); ////返回的范围是 0- taskList.Count-1