统计数字换成分组统计子查询
continuous-integration/drone/push Build is running

This commit is contained in:
2026-03-23 17:02:01 +08:00
parent de0cb6788e
commit 4e20a86155
2 changed files with 39 additions and 16 deletions
@@ -289,7 +289,7 @@ namespace IRaCIS.Application.Contracts
public List<TrialCriterionReadingCategory> CriterionReadingCategoryList { get; set; }
//任务阅片状态
public List<DoctorUserTask> ReadingTaskStateList { get; set; } = new List<DoctorUserTask>();
public List<DoctorTaskStat> ReadingTaskStateList { get; set; } = new List<DoctorTaskStat>();
public List<CriterionFile> CriterionFileList { get; set; } = new List<CriterionFile>();
@@ -299,11 +299,17 @@ namespace IRaCIS.Application.Contracts
new CriterionReadingCategory()
{
EnrollId = EnrollId,
PendingCount = ReadingTaskStateList.Where(x => x.ReadingTaskState != ReadingTaskState.HaveSigned && x.TrialReadingCriterionId == t.TrialReadingCriterionId).Count(),
//PendingCount = ReadingTaskStateList.Where(x => x.ReadingTaskState != ReadingTaskState.HaveSigned && x.TrialReadingCriterionId == t.TrialReadingCriterionId).Count(),
ComplectedCount = ReadingTaskStateList.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned && x.TrialReadingCriterionId == t.TrialReadingCriterionId).Count(),
//ComplectedCount = ReadingTaskStateList.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned && x.TrialReadingCriterionId == t.TrialReadingCriterionId).Count(),
TotalCount = ReadingTaskStateList.Where(x => x.TrialReadingCriterionId == t.TrialReadingCriterionId).Count(),
//TotalCount = ReadingTaskStateList.Where(x => x.TrialReadingCriterionId == t.TrialReadingCriterionId).Count(),
PendingCount = ReadingTaskStateList.Where(x => x.TrialReadingCriterionId == t.TrialReadingCriterionId).FirstOrDefault()?.PendingCount,
ComplectedCount = ReadingTaskStateList.Where(x => x.TrialReadingCriterionId == t.TrialReadingCriterionId).FirstOrDefault()?.ComplectedCount,
TotalCount = ReadingTaskStateList.Where(x => x.TrialReadingCriterionId == t.TrialReadingCriterionId).FirstOrDefault()?.TotalCount,
StatementCriterionFileList = CriterionFileList.Where(x => x.CriterionType == t.CriterionType && x.FileType == CriterionFileType.Statement)
.WhereIf(t.CriterionType == CriterionType.SelfDefine, x => x.TrialReadingCriterionId == t.TrialReadingCriterionId).ToList(),
@@ -348,6 +354,19 @@ namespace IRaCIS.Application.Contracts
public Guid TrialReadingCriterionId { get; set; }
}
public class DoctorTaskStat
{
public CriterionType? CriterionType { get; set; }
public Guid TrialReadingCriterionId { get; set; }
public int PendingCount { get; set; }
public int ComplectedCount { get; set; }
public int TotalCount { get; set; }
}
public class TrialReadingCriterionDto
{
public ReadingOrder IsReadingTaskViewInOrder { get; set; }
@@ -435,11 +454,11 @@ namespace IRaCIS.Application.Contracts
/// <summary>
/// 待办数量
/// </summary>
public int PendingCount { get; set; }
public int? PendingCount { get; set; }
public int ComplectedCount { get; set; }
public int? ComplectedCount { get; set; }
public int TotalCount { get; set; }
public int? TotalCount { get; set; }
public List<CriterionFile> StatementCriterionFileList { get; set; }