增加条件
continuous-integration/drone/push Build is passing Details

IRC_NewDev
hang 2024-12-11 09:44:13 +08:00
parent 828bd38eab
commit 8ff23af18c
1 changed files with 48 additions and 20 deletions

View File

@ -2485,13 +2485,12 @@ namespace IRaCIS.Core.Application.Service.Common
var subjectReadingPeriodDoctorList = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned) var subjectReadingPeriodDoctorList = _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)) .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 }) .GroupBy(t => new { t.SubjectId, t.VisitTaskNum })
.Where(g => g.Count() == 2) .Where(g => g.Count() == 2)
.Select(g => new .Select(g => new
{ {
g.Key.SubjectId, g.Key.SubjectId,
g.Key.VisitTaskNum, g.Key.VisitTaskNum,
g.Key.JudgeVisitTaskId,
GlobalList = g.Select(t => new GlobalList = g.Select(t => new
{ {
@ -2508,17 +2507,46 @@ namespace IRaCIS.Core.Application.Service.Common
}) })
.ToList(); .ToList();
#region 调试注释
//var cc = subjectReadingPeriodDoctorList.GroupBy(x => x.SubjectId) // 按 SubjectId 分组
// .Where(g => g.OrderByDescending(x => x.VisitTaskNum).First().GlobalList.Any(c => c.JudgeVisitTaskId != null))
// .ToList();
//var ss = subjectReadingPeriodDoctorList.GroupBy(x => x.SubjectId) // 按 SubjectId 分组
// //最后一个全局没有产生裁判的subject要过滤掉 过滤后
// .Where(g => g.OrderByDescending(x => x.VisitTaskNum).First().GlobalList.Any(c => c.JudgeVisitTaskId != null))
// .Select(g => g.Where(c => c.GlobalList.Any(k => k.JudgeTaskState == ReadingTaskState.HaveSigned)).OrderByDescending(c => c.VisitTaskNum).FirstOrDefault())
// .ToList();
//var kk = subjectReadingPeriodDoctorList.GroupBy(x => x.SubjectId) // 按 SubjectId 分组
// //最后一个全局没有产生裁判的subject要过滤掉 过滤后
// .Where(g => g.OrderByDescending(x => x.VisitTaskNum).First().GlobalList.Any(c => c.JudgeVisitTaskId != null))
// // 存在 已完成的全局裁判
// .Where(subg => subg.Any(t => t.GlobalList.Any(c => c.JudgeTaskState == ReadingTaskState.HaveSigned)))
// .Select(g => g.Where(c => c.GlobalList.Any(k => k.JudgeTaskState == ReadingTaskState.HaveSigned)).OrderByDescending(c => c.VisitTaskNum).FirstOrDefault())
// .ToList();
#endregion
var filteredList = subjectReadingPeriodDoctorList.GroupBy(x => x.SubjectId) // 按 SubjectId 分组 var filteredList = subjectReadingPeriodDoctorList.GroupBy(x => x.SubjectId) // 按 SubjectId 分组
//最后一个全局没有产生裁判的subject要过滤掉 过滤后 //最后一个全局没有产生裁判的subject要过滤掉 过滤后
.Where(g => g.OrderByDescending(x => x.VisitTaskNum).First().GlobalList.Any(c => c.JudgeVisitTaskId != null)) .Where(g => g.OrderByDescending(x => x.VisitTaskNum).First().GlobalList.Any(c => c.JudgeVisitTaskId != null))
//找到最大完成裁判的阅片期 // 每个subject 仅仅留最后一个全局 // subject 存在 已完成的全局裁判
.Select(g => g.Where(c => c.GlobalList.Any(k => k.JudgeTaskState == ReadingTaskState.HaveSigned)).OrderByDescending(c => c.VisitTaskNum).First()) .Where(subg => subg.Any(t => t.GlobalList.Any(c => c.JudgeTaskState == ReadingTaskState.HaveSigned)))
//找到最大完成裁判的阅片期 // 每个subject 仅仅留最后一个已完成的全局
.Select(g => g.Where(c => c.GlobalList.Any(k => k.JudgeTaskState == ReadingTaskState.HaveSigned)).OrderByDescending(c => c.VisitTaskNum).FirstOrDefault())
.SelectMany(t => t.GlobalList.Select(u => new .SelectMany(t => t.GlobalList.Select(u => new
{ {
t.SubjectId, t.SubjectId,
t.VisitTaskNum, t.VisitTaskNum,
t.JudgeVisitTaskId, u.JudgeVisitTaskId,
u.DoctorUserId, u.DoctorUserId,
u.UserName, u.UserName,
u.FullName, u.FullName,