From 192a4eb621d0da244281efc3ac43cb9095478262 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 18 Jul 2022 13:39:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Allocation/VisitTaskService.cs | 7 +++++-- .../Service/Reading/ReadingImageTaskService.cs | 4 ++-- .../Repository/ICommandRepository.cs | 2 ++ IRaCIS.Core.Infra.EFCore/Repository/Repository.cs | 13 +++++++++++++ 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index 6719e6551..2c8b908f2 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -351,7 +351,9 @@ namespace IRaCIS.Core.Application.Service var visitGroupQuery = _visitTaskRepository.Where(x => x.TrialId == trialId && x.DoctorUserId == _userInfo.Id) - .Where(t => t.ReadingTaskState != ReadingTaskState.HaveSigned) + .Where(x=>!x.Subject.IsDeleted).Where(x => x.Subject.SubjectDoctorList.Where(y=>y.TrialId==iRUnReadSubjectQuery.TrialId&&y.DoctorUserId==_userInfo.Id).Count()>0) + + .Where(t => t.ReadingTaskState != ReadingTaskState.HaveSigned&&t.TaskState== TaskState.Effect) .GroupBy(x => new { x.SubjectId, x.Subject.Code, x.BlindSubjectCode }); var visitTaskQuery = visitGroupQuery.Select(x => new IRUnReadSubjectView() @@ -385,7 +387,8 @@ namespace IRaCIS.Core.Application.Service else { - var taskQuery = _visitTaskRepository.Where(x => x.TrialId == iRUnReadSubjectQuery.TrialId && x.DoctorUserId == _userInfo.Id); + var taskQuery = _visitTaskRepository.Where(x => x.TrialId == iRUnReadSubjectQuery.TrialId && x.DoctorUserId == _userInfo.Id&&x.TaskState == TaskState.Effect) + .Where(x => !x.Subject.IsDeleted).Where(x => x.Subject.SubjectDoctorList.Where(y => y.TrialId == iRUnReadSubjectQuery.TrialId && y.DoctorUserId == _userInfo.Id).Count() > 0); IRUnReadOutDto iRUnReadOut = new IRUnReadOutDto() { diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs index 3d128b1d5..8e2e32664 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs @@ -107,7 +107,7 @@ namespace IRaCIS.Application.Services .Select(s => new SubjectTask() { SubjectId = s.Id, - UnReadTaskCount = s.SubjectVisitTaskList.Count(t => t.ReadingTaskState != ReadingTaskState.HaveSigned && t.DoctorUserId == _userInfo.Id), + UnReadTaskCount = s.SubjectVisitTaskList.Count(t => t.ReadingTaskState != ReadingTaskState.HaveSigned && t.DoctorUserId == _userInfo.Id && t.TaskState == TaskState.Effect), }).ToListAsync(); subjectList = subjectList.Select((x, index) => new SubjectTask() { @@ -140,7 +140,7 @@ namespace IRaCIS.Application.Services } else { - task = await _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.DoctorUserId == _userInfo.Id).Select(x => new GetReadingTaskDto() + task = await _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.DoctorUserId == _userInfo.Id&&x.TaskState==TaskState.Effect).Select(x => new GetReadingTaskDto() { VisitTaskId = x.Id, TaskBlindName = x.TaskBlindName, diff --git a/IRaCIS.Core.Infra.EFCore/Repository/ICommandRepository.cs b/IRaCIS.Core.Infra.EFCore/Repository/ICommandRepository.cs index 0ed738c59..b3a4d4dae 100644 --- a/IRaCIS.Core.Infra.EFCore/Repository/ICommandRepository.cs +++ b/IRaCIS.Core.Infra.EFCore/Repository/ICommandRepository.cs @@ -107,6 +107,8 @@ namespace IRaCIS.Core.Infra.EFCore Task AnyAsync(Expression> exp, bool ignoreQueryFilters = false); + bool Any(Expression> exp, bool ignoreQueryFilters = false); + Task MaxAsync(Expression> selector); Task CountAsync(Expression> whereLambda = null, bool ignoreQueryFilters = false); diff --git a/IRaCIS.Core.Infra.EFCore/Repository/Repository.cs b/IRaCIS.Core.Infra.EFCore/Repository/Repository.cs index 2dc730bcb..0644f35f9 100644 --- a/IRaCIS.Core.Infra.EFCore/Repository/Repository.cs +++ b/IRaCIS.Core.Infra.EFCore/Repository/Repository.cs @@ -469,6 +469,19 @@ namespace IRaCIS.Core.Infra.EFCore return await query.AsNoTracking().AnyAsync(exp); } + + public bool Any(Expression> exp, bool ignoreQueryFilters = false) + { + var query = _dbSet.AsQueryable(); + + if (ignoreQueryFilters) + { + query = query.IgnoreQueryFilters(); + } + + return query.AsNoTracking().Any(exp); + } + public async Task CountAsync(Expression> whereLambda = null, bool ignoreQueryFilters = false) { var query = _dbSet.AsQueryable();