From 91cde3f9448e2e8868cd331fed6b3fd255849426 Mon Sep 17 00:00:00 2001 From: hang <87227557@qq.com> Date: Tue, 10 Dec 2024 21:30:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=BC=E5=87=BA=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Common/ExcelExportService.cs | 40 +++++++++++-------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs index f3ee53788..79b99ba7e 100644 --- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs @@ -2425,27 +2425,16 @@ namespace IRaCIS.Core.Application.Service.Common .Where(g => g.Count() == 2).Any()) .Count(); - //最后一个已完成的全局 没产生裁判 (之前有裁判),不算入裁判量 - exportInfo.judgeSubjectCount = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId) - .Where(t => t.SubjectVisitTaskList.AsQueryable().Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned) - .Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) && c.TrialReadingCriterionId == trialReadingCriterionId)) - .GroupBy(t => new { t.SubjectId, t.VisitTaskNum }) - .Where(g => g.Count() == 2 && g.Key.VisitTaskNum == g.Max(t => t.VisitTaskNum)) - .Any(g => g.Any(t => t.JudgeVisitTaskId != null))) - .Count(); - - - + #region 废弃 + ////最后一个已完成的全局 没产生裁判 (之前有裁判),不算入裁判量 //exportInfo.judgeSubjectCount = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId) // .Where(t => t.SubjectVisitTaskList.AsQueryable().Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned) - // .Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) && c.TrialReadingCriterionId == trialReadingCriterionId)) - // .GroupBy(task => new { task.SubjectId, task.VisitTaskNum }) - // .Where(g => g.Count() == 2) - // .FirstOrDefault().Any(t => t.JudgeVisitTaskId != null) - // ) + // .Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) && c.TrialReadingCriterionId == trialReadingCriterionId)) + // .GroupBy(t => new { t.SubjectId, t.VisitTaskNum }) + // .Where(g => g.Count() == 2 ) + // .Any(g => g.Any(t => t.JudgeVisitTaskId != null))) // .Count(); - //exportInfo.judgeSubjectCount = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId) // .Where(t => t.SubjectVisitTaskList.AsQueryable().Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned) // .Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) && c.TrialReadingCriterionId == trialReadingCriterionId)) @@ -2454,6 +2443,21 @@ namespace IRaCIS.Core.Application.Service.Common // .Any(g => g.OrderByDescending(c => c.VisitTaskNum).FirstOrDefault().JudgeVisitTaskId != null) // ) // .Count(); + #endregion + + + var subjectReadingPeriodList= _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned) + .Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) && c.TrialReadingCriterionId == trialReadingCriterionId)) + .GroupBy(t => new { t.SubjectId, t.VisitTaskNum ,t.JudgeVisitTaskId }) + .Where(g => g.Count() == 2) + .Select(g => new { g.Key.SubjectId, g.Key.VisitTaskNum, g.Key.JudgeVisitTaskId }) + .ToList(); + + exportInfo.judgeSubjectCount = subjectReadingPeriodList.GroupBy(x => x.SubjectId) // 按 SubjectId 分组 + .Select(g => g.OrderByDescending(x => x.VisitTaskNum).First()) // 每组取 VisitTaskNum 最大的记录 + .Where(t => t.JudgeVisitTaskId != null) + .Count(); + exportInfo.DoctorSubjectStatList = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned) //筛选全局 已完成的任务 @@ -2479,6 +2483,8 @@ namespace IRaCIS.Core.Application.Service.Common .Select(t => t.SubjectId).Distinct().Count(), }).ToList(); + + #endregion #region 阅片期部分