diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index b0cab0a5c..0f087a579 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -841,77 +841,47 @@ namespace IRaCIS.Core.Application.Service.Allocation var trialReadingCriterionId = iRUnReadSubjectQuery.TrialReadingCriterionId; - #region 按照任务的维度统计分组 - - //var query = _visitTaskRepository.Where(t => t.TrialId == trialId) - // .Where(t => t.DoctorUserId == _userInfo.Id && t.ReadingTaskState != ReadingTaskState.HaveSigned) - // .GroupBy(t => new { t.SubjectId, t.Subject.Code }) - // .Select(g => new IRUnReadSubjectView() - // { - // SubjectCode = g.Key.Code, - // SubjectId = g.Key.SubjectId, - // UnReadTaskCount = g.Count(), - // UnReadTaskList = g.AsQueryable().Select(c => new IRUnreadTaskView() { Id = c.Id, SuggesteFinishedTime = c.SuggesteFinishedTime, IsUrgent = c.IsUrgent }).ToList() - // }); - //return query.ToList(); - #endregion - - - //var readingTool = await _trialRepository.Where(x => x.Id == iRUnReadSubjectQuery.TrialId).Select(x => x.ReadingTool).FirstOrDefaultAsync(); - //var isReadingTaskViewInOrder = await _trialRepository.Where(x => x.Id == iRUnReadSubjectQuery.TrialId).Select(x => x.IsReadingTaskViewInOrder).FirstOrDefaultAsync(); - - var criterionConfig = await _trialReadingCriterionRepository.Where(x => x.Id == iRUnReadSubjectQuery.TrialReadingCriterionId).FirstNotNullAsync(); var readingTool = criterionConfig.ReadingTool; var isReadingTaskViewInOrder = criterionConfig.IsReadingTaskViewInOrder; + var visitTaskListInfo = await GetOrderReadingIQueryable(new GetOrderReadingIQueryableInDto() + { + TrialId = trialId, + TrialReadingCriterionId = trialReadingCriterionId, + SubjectCode = iRUnReadSubjectQuery.SubjectCode, + Page = new PageInput() + { + PageIndex = iRUnReadSubjectQuery.PageIndex, + PageSize = iRUnReadSubjectQuery.PageSize, + Asc = iRUnReadSubjectQuery.Asc, + SortField = iRUnReadSubjectQuery.SortField, + + } + + }); + + + var totalCount = visitTaskListInfo.Item1; + var currentPageData = visitTaskListInfo.Item2; + + + + var result = new PageOutput() + { + PageSize = iRUnReadSubjectQuery.PageSize, + PageIndex = iRUnReadSubjectQuery.PageIndex, + TotalCount = totalCount, + CurrentPageData = currentPageData, + }; + + #region 按照Subject 维度 if (isReadingTaskViewInOrder) { - // var subjectQuery = _subjectRepository.Where(t => t.TrialId == trialId) - //.Where(t => t.SubjectDoctorList.Any(t => t.DoctorUserId == _userInfo.Id)) - //.WhereIf(!string.IsNullOrEmpty(iRUnReadSubjectQuery.SubjectCode), t => t.Code.Contains(iRUnReadSubjectQuery.SubjectCode)) - //.Select(s => new IRUnReadSubjectView() - //{ - // SubjectId = s.Id, - // SubjectCode = s.Code, - // UnReadTaskCount = s.SubjectVisitTaskList.Count(t => t.ReadingTaskState != ReadingTaskState.HaveSigned && t.DoctorUserId == _userInfo.Id), - // UnReadTaskList = s.SubjectVisitTaskList.Where(t => t.ReadingTaskState != ReadingTaskState.HaveSigned && t.DoctorUserId == _userInfo.Id) - // .Select(u => new IRUnreadTaskView() { Id = u.Id, IsUrgent = u.IsUrgent, SuggesteFinishedTime = u.SuggesteFinishedTime }).ToList(), - //}) - // .Where(t => t.UnReadTaskCount > 0); - - - var visitTaskListInfo =await GetOrderReadingIQueryable(new GetOrderReadingIQueryableInDto() - { - TrialId= trialId, - TrialReadingCriterionId=trialReadingCriterionId, - SubjectCode = iRUnReadSubjectQuery.SubjectCode, - Page= new PageInput() { - PageIndex= iRUnReadSubjectQuery.PageIndex, - PageSize= iRUnReadSubjectQuery.PageSize, - Asc = iRUnReadSubjectQuery.Asc, - SortField= iRUnReadSubjectQuery.SortField, - - } - - }); - - - var totalCount = visitTaskListInfo.Item1; - var currentPageData = visitTaskListInfo.Item2; - - - - var result = new PageOutput() - { - PageSize = iRUnReadSubjectQuery.PageSize, - PageIndex = iRUnReadSubjectQuery.PageIndex, - TotalCount = totalCount, - CurrentPageData = currentPageData, - }; - + + // 封装的方法有问题 //var result = await visitQuery.ToPagedListAsync(iRUnReadSubjectQuery.PageIndex, iRUnReadSubjectQuery.PageSize, String.IsNullOrEmpty(iRUnReadSubjectQuery.SortField) ? nameof(IRUnReadSubjectView.SubjectId) : iRUnReadSubjectQuery.SortField, iRUnReadSubjectQuery.Asc); return (result, new @@ -942,7 +912,11 @@ namespace IRaCIS.Core.Application.Service.Allocation UnReadTaskCount = await taskQuery.Where(x => x.ReadingCategory != ReadingCategory.Judge && x.ReadingTaskState != ReadingTaskState.HaveSigned).CountAsync(), }; - return (new PageOutput(), new + + + + + return (result, new { IsReadingTaskViewInOrder = isReadingTaskViewInOrder, RandomReadInfo = iRUnReadOut,