From 6a53aaf010e5bb10269d82e4ef4d895fbca40611 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 17 Jul 2023 15:59:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A0=E5=BA=8F=E9=98=85=E7=89=87=E9=A1=BA?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingImageTaskService.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 18cfbca90..ba791cea0 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -2332,9 +2332,22 @@ namespace IRaCIS.Application.Services } else { - task = await _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.TrialReadingCriterionId == trialReadingCriterionId && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.DoctorUserId == _userInfo.Id + var query = _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.TrialReadingCriterionId == trialReadingCriterionId && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.DoctorUserId == _userInfo.Id && x.TrialReadingCriterionId == trialReadingCriterionId - && x.TaskState == TaskState.Effect).Select(x => new GetReadingTaskDto() + && x.TaskState == TaskState.Effect); + var count = await query.CountAsync(); + if (count == 0) + { + throw new BusinessValidationFailedException(_localizer["ReadingImage_TaskFinish"]); + } + Random random = new Random(); + var skipcount = 0; + if (count >= 2) + { + skipcount = random.Next(0, count - 1); + } + task = await query + .Select(x => new GetReadingTaskDto() { VisitTaskId = x.Id, ArmEnum = x.ArmEnum, @@ -2345,7 +2358,7 @@ namespace IRaCIS.Application.Services SubjectId = x.SubjectId, SubjectCode = x.Subject.Code, TrialReadingCriterionId = x.TrialReadingCriterionId, - }).FirstOrDefaultAsync(); + }).Skip(skipcount).FirstOrDefaultAsync(); }