|
|
|
@ -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); |
|
|
|
|