From b9efb9bf5b4b8205020214ce2402676f9ee21a58 Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Wed, 22 May 2024 11:58:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=93=E6=A3=80=E6=8A=A5=E5=91=8A=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E4=BC=98=E5=85=88=E6=9D=A1=E7=A0=81=E5=8F=B7=E3=80=81?= =?UTF-8?q?=E6=A1=A3=E6=A1=88=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PeisReports/PeisReportAppService.cs | 233 +++++++++--------- 1 file changed, 122 insertions(+), 111 deletions(-) diff --git a/src/Shentun.Peis.Application/PeisReports/PeisReportAppService.cs b/src/Shentun.Peis.Application/PeisReports/PeisReportAppService.cs index 6014d49..0a88fff 100644 --- a/src/Shentun.Peis.Application/PeisReports/PeisReportAppService.cs +++ b/src/Shentun.Peis.Application/PeisReports/PeisReportAppService.cs @@ -129,155 +129,166 @@ namespace Shentun.Peis.PeisReports var sumquery = query; - if (input.CustomerOrgs.Any()) + var isIgnoreOtherConditions = false; + + if (!string.IsNullOrEmpty(input.PatientRegisterNo)) { + sumquery = sumquery.Where(m => m.a.PatientRegisterNo == input.PatientRegisterNo); + isIgnoreOtherConditions = true; + } - var item = input.CustomerOrgs[0]; + if (!string.IsNullOrEmpty(input.PatientNo)) + { + sumquery = sumquery.Where(m => m.ab.PatientNo == input.PatientNo); + isIgnoreOtherConditions = true; + } - if (item.CustomerOrgGroupId.Any()) - { - sumquery = sumquery.Where(m => m.a.CustomerOrgGroupId != null && item.CustomerOrgGroupId.Contains(m.a.CustomerOrgGroupId.Value)); - } - if (item.CustomerOrgRegisterId != null && item.CustomerOrgRegisterId != Guid.Empty) - { - sumquery = sumquery.Where(m => m.a.CustomerOrgRegisterId == item.CustomerOrgRegisterId); - } - if (item.CustomerOrgId != null) - { - var CustomerOrgIds = await _customerOrgManager.GetCustomerOrgChildrenId(item.CustomerOrgId.Value); - sumquery = sumquery.Where(m => CustomerOrgIds.Contains(m.a.CustomerOrgId)); - } - if (!string.IsNullOrEmpty(item.StartDate) && !string.IsNullOrEmpty(item.EndDate)) + if (isIgnoreOtherConditions) + { + sumquery = sumquery.Where(m => m.a.CompleteFlag != PatientRegisterCompleteFlag.PreRegistration); + } + else + { + + if (input.CustomerOrgs.Any()) { - if (item.DateType == '1') + + var item = input.CustomerOrgs[0]; + + if (item.CustomerOrgGroupId.Any()) { - sumquery = sumquery.Where(m => m.a.CreationTime >= Convert.ToDateTime(item.StartDate) && - m.a.CreationTime < Convert.ToDateTime(item.EndDate).AddDays(1)); + sumquery = sumquery.Where(m => m.a.CustomerOrgGroupId != null && item.CustomerOrgGroupId.Contains(m.a.CustomerOrgGroupId.Value)); } - else if (item.DateType == '2') + if (item.CustomerOrgRegisterId != null && item.CustomerOrgRegisterId != Guid.Empty) { - sumquery = sumquery.Where(m => m.a.MedicalStartDate != null && m.a.MedicalStartDate.Value >= Convert.ToDateTime(item.StartDate) && - m.a.MedicalStartDate.Value < Convert.ToDateTime(item.EndDate).AddDays(1)); + sumquery = sumquery.Where(m => m.a.CustomerOrgRegisterId == item.CustomerOrgRegisterId); } - else if (item.DateType == '3') + if (item.CustomerOrgId != null) { - sumquery = sumquery.Where(m => m.a.SummaryDate != null && m.a.SummaryDate.Value >= Convert.ToDateTime(item.StartDate) && - m.a.SummaryDate.Value < Convert.ToDateTime(item.EndDate).AddDays(1)); + var CustomerOrgIds = await _customerOrgManager.GetCustomerOrgChildrenId(item.CustomerOrgId.Value); + sumquery = sumquery.Where(m => CustomerOrgIds.Contains(m.a.CustomerOrgId)); } - } - - if (input.CustomerOrgs.Count > 1) - { - foreach (var item2 in input.CustomerOrgs) + if (!string.IsNullOrEmpty(item.StartDate) && !string.IsNullOrEmpty(item.EndDate)) { + if (item.DateType == '1') + { + sumquery = sumquery.Where(m => m.a.CreationTime >= Convert.ToDateTime(item.StartDate) && + m.a.CreationTime < Convert.ToDateTime(item.EndDate).AddDays(1)); + } + else if (item.DateType == '2') + { + sumquery = sumquery.Where(m => m.a.MedicalStartDate != null && m.a.MedicalStartDate.Value >= Convert.ToDateTime(item.StartDate) && + m.a.MedicalStartDate.Value < Convert.ToDateTime(item.EndDate).AddDays(1)); + } + else if (item.DateType == '3') + { + sumquery = sumquery.Where(m => m.a.SummaryDate != null && m.a.SummaryDate.Value >= Convert.ToDateTime(item.StartDate) && + m.a.SummaryDate.Value < Convert.ToDateTime(item.EndDate).AddDays(1)); + } + } - if (input.CustomerOrgs.IndexOf(item2) > 0) + if (input.CustomerOrgs.Count > 1) + { + foreach (var item2 in input.CustomerOrgs) { - var newquery = query; - if (item2.CustomerOrgGroupId.Any()) - { - newquery = newquery.Where(m => m.a.CustomerOrgGroupId != null && item2.CustomerOrgGroupId.Contains(m.a.CustomerOrgGroupId.Value)); - } - if (item2.CustomerOrgRegisterId != null && item2.CustomerOrgRegisterId != Guid.Empty) - { - newquery = newquery.Where(m => m.a.CustomerOrgRegisterId == item2.CustomerOrgRegisterId); - } - if (item2.CustomerOrgId != null) - { - var CustomerOrgIds = await _customerOrgManager.GetCustomerOrgChildrenId(item2.CustomerOrgId.Value); - newquery = newquery.Where(m => CustomerOrgIds.Contains(m.a.CustomerOrgId)); - } - if (!string.IsNullOrEmpty(item2.StartDate) && !string.IsNullOrEmpty(item2.EndDate)) + + if (input.CustomerOrgs.IndexOf(item2) > 0) { - if (item2.DateType == '1') + var newquery = query; + if (item2.CustomerOrgGroupId.Any()) { - newquery = newquery.Where(m => m.a.CreationTime >= Convert.ToDateTime(item2.StartDate) && - m.a.CreationTime < Convert.ToDateTime(item2.EndDate).AddDays(1)); + newquery = newquery.Where(m => m.a.CustomerOrgGroupId != null && item2.CustomerOrgGroupId.Contains(m.a.CustomerOrgGroupId.Value)); } - else if (item2.DateType == '2') + if (item2.CustomerOrgRegisterId != null && item2.CustomerOrgRegisterId != Guid.Empty) { - newquery = newquery.Where(m => m.a.MedicalStartDate != null && m.a.MedicalStartDate.Value >= Convert.ToDateTime(item2.StartDate) && - m.a.MedicalStartDate.Value < Convert.ToDateTime(item2.EndDate).AddDays(1)); + newquery = newquery.Where(m => m.a.CustomerOrgRegisterId == item2.CustomerOrgRegisterId); } - else if (item2.DateType == '3') + if (item2.CustomerOrgId != null) { - newquery = newquery.Where(m => m.a.SummaryDate != null && m.a.SummaryDate.Value >= Convert.ToDateTime(item2.StartDate) && - m.a.SummaryDate.Value < Convert.ToDateTime(item2.EndDate).AddDays(1)); + var CustomerOrgIds = await _customerOrgManager.GetCustomerOrgChildrenId(item2.CustomerOrgId.Value); + newquery = newquery.Where(m => CustomerOrgIds.Contains(m.a.CustomerOrgId)); } + if (!string.IsNullOrEmpty(item2.StartDate) && !string.IsNullOrEmpty(item2.EndDate)) + { + if (item2.DateType == '1') + { + newquery = newquery.Where(m => m.a.CreationTime >= Convert.ToDateTime(item2.StartDate) && + m.a.CreationTime < Convert.ToDateTime(item2.EndDate).AddDays(1)); + } + else if (item2.DateType == '2') + { + newquery = newquery.Where(m => m.a.MedicalStartDate != null && m.a.MedicalStartDate.Value >= Convert.ToDateTime(item2.StartDate) && + m.a.MedicalStartDate.Value < Convert.ToDateTime(item2.EndDate).AddDays(1)); + } + else if (item2.DateType == '3') + { + newquery = newquery.Where(m => m.a.SummaryDate != null && m.a.SummaryDate.Value >= Convert.ToDateTime(item2.StartDate) && + m.a.SummaryDate.Value < Convert.ToDateTime(item2.EndDate).AddDays(1)); + } + } + sumquery = sumquery.Union(newquery); } - sumquery = sumquery.Union(newquery); } } } - } - - if (!string.IsNullOrEmpty(input.PatientName)) - { - sumquery = sumquery.Where(m => m.a.PatientName != null && m.a.PatientName.Contains(input.PatientName)); - } - - if (!string.IsNullOrEmpty(input.PatientRegisterNo)) - { - sumquery = sumquery.Where(m => m.a.PatientRegisterNo == input.PatientRegisterNo); - } - - if (!string.IsNullOrEmpty(input.PatientNo)) - { - sumquery = sumquery.Where(m => m.ab.PatientNo == input.PatientNo); - } - - if (!string.IsNullOrEmpty(input.phone)) - { - sumquery = sumquery.Where(m => m.ab.MobileTelephone == input.phone || m.ab.Telephone == input.phone); - } - if (input.CompleteFlag != null && input.CompleteFlag != PatientRegisterCompleteFlag.ItemCheckUnSumCheck) - { - sumquery = sumquery.Where(m => m.a.CompleteFlag == input.CompleteFlag); - } - else - { - sumquery = sumquery.Where(m => m.a.CompleteFlag != PatientRegisterCompleteFlag.PreRegistration); - } + if (!string.IsNullOrEmpty(input.PatientName)) + { + sumquery = sumquery.Where(m => m.a.PatientName != null && m.a.PatientName.Contains(input.PatientName)); + } - if (input.IsAudit != null) - { - sumquery = sumquery.Where(m => m.a.IsAudit == input.IsAudit); - } + if (!string.IsNullOrEmpty(input.phone)) + { + sumquery = sumquery.Where(m => m.ab.MobileTelephone == input.phone || m.ab.Telephone == input.phone); + } - if (input.IsReportPrint != null) - { - if (input.IsReportPrint == 'Y') + if (input.CompleteFlag != null && input.CompleteFlag != PatientRegisterCompleteFlag.ItemCheckUnSumCheck) { - sumquery = sumquery.Where(m => m.a.ReportPrintTimes > 0); + sumquery = sumquery.Where(m => m.a.CompleteFlag == input.CompleteFlag); } else { - sumquery = sumquery.Where(m => m.a.ReportPrintTimes == 0); + sumquery = sumquery.Where(m => m.a.CompleteFlag != PatientRegisterCompleteFlag.PreRegistration); } - } - if (input.MedicalTypeId != null) - { - sumquery = sumquery.Where(m => m.a.MedicalTypeId == input.MedicalTypeId); - } + if (input.IsAudit != null) + { + sumquery = sumquery.Where(m => m.a.IsAudit == input.IsAudit); + } - if (input.PersonnelTypeId != null) - { - sumquery = sumquery.Where(m => m.a.PersonnelTypeId == input.PersonnelTypeId); - } + if (input.IsReportPrint != null) + { + if (input.IsReportPrint == 'Y') + { + sumquery = sumquery.Where(m => m.a.ReportPrintTimes > 0); + } + else + { + sumquery = sumquery.Where(m => m.a.ReportPrintTimes == 0); + } + } - if (input.IsUpload != null) - { - sumquery = sumquery.Where(m => m.a.IsUpload == input.IsUpload); - } + if (input.MedicalTypeId != null) + { + sumquery = sumquery.Where(m => m.a.MedicalTypeId == input.MedicalTypeId); + } - if (!string.IsNullOrEmpty(input.IdNo)) - { - sumquery = sumquery.Where(m => m.ab.IdNo == input.IdNo); - } + if (input.PersonnelTypeId != null) + { + sumquery = sumquery.Where(m => m.a.PersonnelTypeId == input.PersonnelTypeId); + } + + if (input.IsUpload != null) + { + sumquery = sumquery.Where(m => m.a.IsUpload == input.IsUpload); + } + if (!string.IsNullOrEmpty(input.IdNo)) + { + sumquery = sumquery.Where(m => m.ab.IdNo == input.IdNo); + } + } var sumqueryGroup = sumquery.ToList().GroupBy(g => g.a.Id);