From eaba0fec2abc70815f20c5765386213771022b3d Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Fri, 16 May 2025 10:18:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=96=BE=E7=97=85=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GetDiseaseCountStatisticsReportRequestDto.cs | 7 +++++++ .../CustomerReports/CustomerReportAppService.cs | 13 ++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/Shentun.Peis.Application.Contracts/CustomerReports/GetDiseaseCountStatisticsReportRequestDto.cs b/src/Shentun.Peis.Application.Contracts/CustomerReports/GetDiseaseCountStatisticsReportRequestDto.cs index 1061fd7..5bc01b4 100644 --- a/src/Shentun.Peis.Application.Contracts/CustomerReports/GetDiseaseCountStatisticsReportRequestDto.cs +++ b/src/Shentun.Peis.Application.Contracts/CustomerReports/GetDiseaseCountStatisticsReportRequestDto.cs @@ -1,6 +1,8 @@ using Shentun.Peis.PeisReports; using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.ComponentModel.DataAnnotations; using System.Text; namespace Shentun.Peis.CustomerReports @@ -18,5 +20,10 @@ namespace Shentun.Peis.CustomerReports /// 诊断ID 集合 这里的诊断需要增加一个是否为疾病的条件 前台拉取的数据就需要筛选 /// public List DiagnosisIds { get; set; } = new List(); + + /// + /// 完成标志(0 预登记 1正式登记 2部分已检 3已总检) 不传查所有 + /// + public List CompleteFlags { get; set; } = new List(); } } diff --git a/src/Shentun.Peis.Application/CustomerReports/CustomerReportAppService.cs b/src/Shentun.Peis.Application/CustomerReports/CustomerReportAppService.cs index 108621d..6abbbae 100644 --- a/src/Shentun.Peis.Application/CustomerReports/CustomerReportAppService.cs +++ b/src/Shentun.Peis.Application/CustomerReports/CustomerReportAppService.cs @@ -717,6 +717,10 @@ namespace Shentun.Peis.CustomerReports } } + if (input.CompleteFlags.Any()) + { + sumquery_count = sumquery_count.Where(m => input.CompleteFlags.Contains(m.a.CompleteFlag)); + } sumCount = sumquery_count.Count(); @@ -816,7 +820,10 @@ namespace Shentun.Peis.CustomerReports } } - + if (input.CompleteFlags.Any()) + { + sumquery = sumquery.Where(m => input.CompleteFlags.Contains(m.a.CompleteFlag)); + } if (input.DiagnosisIds.Any()) { @@ -824,13 +831,13 @@ namespace Shentun.Peis.CustomerReports } #endregion - var entlist = sumquery.GroupBy(g => g.c.DiagnosisId).Select(s => new GetDiseaseCountStatisticsReportDto + var entlist = sumquery.ToList().GroupBy(g => g.c.DiagnosisId).Select(s => new GetDiseaseCountStatisticsReportDto { DiagnosisName = s.FirstOrDefault().ad != null ? s.FirstOrDefault().ad.DisplayName : "", PatientCount = s.Count(), PatientNames = string.Join(",", s.Where(m => m.a != null).Select(sa => sa.a.PatientName)), Percentage = Math.Round(Convert.ToDecimal(s.Count() * 100) / sumCount, 2).ToString() - }).ToList(); + }).OrderByDescending(o => o.PatientCount).ToList(); return entlist; }