diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs index 7b21a2efb..f8cabe2bc 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs @@ -81,6 +81,11 @@ namespace IRaCIS.Core.Application.Contracts public Guid? SubjectId { get; set; } public Guid? VisitId { get; set; } + + /// + /// 是否领取了 + /// + public bool IsReceived { get; set; } = false; } public class CRCRequestToQCCommand diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index 37ddc5d59..c0be892de 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -882,7 +882,7 @@ namespace IRaCIS.Core.Application.Image.QA { var nextIQCQuality = await this.GetNextIQCQuality(inDto); - if (nextIQCQuality.VisitId != null) + if (nextIQCQuality.VisitId != null&& nextIQCQuality.IsReceived==false) { var visit = await _subjectVisitRepository.Where(x => x.Id == nextIQCQuality.VisitId).FirstNotNullAsync(); if (!visit.IsTake) @@ -910,6 +910,22 @@ namespace IRaCIS.Core.Application.Image.QA .FirstOrDefaultAsync(t => t.TrialId == inDto.TrialId) .IfNullThrowException(); + + + var currentActionList = await _subjectVisitRepository.Where(x => x.TrialId == inDto.TrialId && x.CurrentActionUserId == _userInfo.UserRoleId).OrderByDescending(x => x.IsUrgent) + .ThenBy(x => x.Subject.Code).ThenBy(x => x.VisitNum).ToListAsync(); + + if (currentActionList.Count() > 0) + { + return new GetNextIQCQualityOutDto() + { + IsReceived = true, + SubjectId= currentActionList[0].SubjectId, + VisitId = currentActionList[0].Id, + + }; + } + SubjectVisit? subjectVisit = null; List? visitList = null; switch (trialConfig.QCProcessEnum)