From e6d7a0c0e0fc50f5b17435bbea66a3ab17170952 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 9 Jun 2026 16:32:53 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=94=E5=9B=9E=E9=BB=98=E8=AE=A4=E5=80=BC?= =?UTF-8?q?=EF=BC=8C=E5=A6=82=E6=9E=9C=E6=B2=A1=E6=9C=89=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/WorkLoad/DoctorWorkloadService.cs | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs index a8f6fd4c5..391ac2022 100644 --- a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs +++ b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs @@ -215,6 +215,33 @@ namespace IRaCIS.Core.Application.Service CriterionType = g.Key.CriterionType, }).ToList(); + + // 获取所有符合条件的医生ID + var allDoctorIds = _enrollRepository + .Where(x => x.TrialId == inQuery.TrialId + && x.EnrollStatus >= EnrollStatus.ConfirmIntoGroup) + .WhereIf(inQuery.DoctorUserIdList.Count > 0, + t => inQuery.DoctorUserIdList.Contains(t.DoctorUserId)) + .Select(x => x.DoctorUserId) + .Distinct() + .ToList(); + + // 补全缺失的医生记录 + var missingDoctors = allDoctorIds + .Except(list.Select(r => r.DoctorUserId)) + .Select(doctorId => new DoctorTaskStat() + { + DoctorUserId = doctorId, + PendingCount = 0, + TotalCount = 0, + ComplectedCount = 0, + TrialReadingCriterionId = inQuery.TrialReadingCriterionId, + + }) + .ToList(); + + list.AddRange(missingDoctors); + return list; }