Browse Source

报表

bjmzak
wxd 2 years ago
parent
commit
5dc3d35607
  1. 10
      src/Shentun.Peis.Application.Contracts/CustomerReports/GetCustomerOrgFeeSettlementInGroupReportReduceDto.cs
  2. 6
      src/Shentun.Peis.Application.Contracts/InternalReports/GetItemTypeWorkLoadInStandardRequestDto.cs
  3. 2
      src/Shentun.Peis.Application.Contracts/PeisReports/GetPatientRegisterReportRequestDto.cs
  4. 10
      src/Shentun.Peis.Application/CustomerReports/CustomerReportAppService.cs
  5. 18
      src/Shentun.Peis.Application/InternalReports/InternalReportAppService.cs
  6. 4
      src/Shentun.Peis.Application/PeisReports/PeisReportAppService.cs

10
src/Shentun.Peis.Application.Contracts/CustomerReports/GetCustomerOrgFeeSettlementInGroupReportReduceDto.cs

@ -62,5 +62,15 @@ namespace Shentun.Peis.CustomerReports
/// 总金额=(价格*数量)sum) /// 总金额=(价格*数量)sum)
/// </summary> /// </summary>
public string SumPrice { get; set; } public string SumPrice { get; set; }
/// <summary>
/// 标准价格
/// </summary>
public string StandardPrice { get; set; }
/// <summary>
/// 标准金额
/// </summary>
public string StandardMoney { get; set; }
} }
} }

6
src/Shentun.Peis.Application.Contracts/InternalReports/GetItemTypeWorkLoadInStandardRequestDto.cs

@ -11,6 +11,12 @@ namespace Shentun.Peis.InternalReports
/// </summary> /// </summary>
public List<Guid> ItemTypeId { get; set; } public List<Guid> ItemTypeId { get; set; }
/// <summary>
/// 体检类别
/// </summary>
public List<Guid> MedicalTypeIds { get; set; } = new List<Guid>();
/// <summary> /// <summary>
/// 开始检查日期 /// 开始检查日期
/// </summary> /// </summary>

2
src/Shentun.Peis.Application.Contracts/PeisReports/GetPatientRegisterReportRequestDto.cs

@ -56,7 +56,7 @@ namespace Shentun.Peis.PeisReports
/// <summary> /// <summary>
/// 体检类别 /// 体检类别
/// </summary> /// </summary>
public Guid? MedicalTypeId { get; set; }
public List<Guid> MedicalTypeIds { get; set; } = new List<Guid>();
/// <summary> /// <summary>
/// 人员类别 /// 人员类别

10
src/Shentun.Peis.Application/CustomerReports/CustomerReportAppService.cs

@ -1863,12 +1863,14 @@ namespace Shentun.Peis.CustomerReports
query_addItem = query_addItem.Where(m => m.a.PayTypeFlag == PayTypeFlag.OrgPay); query_addItem = query_addItem.Where(m => m.a.PayTypeFlag == PayTypeFlag.OrgPay);
} }
var addItems = query_addItem.GroupBy(g => g.a.AsbitemId).Select(s => new GetCustomerOrgFeeSettlementInGroupReportReduce_AddItem
var addItems = query_addItem.ToList().GroupBy(g => g.a.AsbitemId).Select(s => new GetCustomerOrgFeeSettlementInGroupReportReduce_AddItem
{ {
AsbitemName = s.FirstOrDefault().ab != null ? s.FirstOrDefault().ab.DisplayName : "", AsbitemName = s.FirstOrDefault().ab != null ? s.FirstOrDefault().ab.DisplayName : "",
PatientCount = s.Count(), PatientCount = s.Count(),
SumPrice = Math.Round(s.Sum(ss => ss.a.ChargePrice * ss.a.Amount), 2).ToString(), SumPrice = Math.Round(s.Sum(ss => ss.a.ChargePrice * ss.a.Amount), 2).ToString(),
Price = Math.Round(s.Sum(ss => ss.a.ChargePrice * ss.a.Amount) / s.Sum(ss => ss.a.Amount), 2).ToString()
Price = Math.Round(s.Sum(ss => ss.a.ChargePrice * ss.a.Amount) / s.Sum(ss => ss.a.Amount), 2).ToString(),
StandardPrice = Math.Round(s.Sum(ss => ss.a.StandardPrice * ss.a.Amount) / s.Sum(ss => ss.a.Amount), 2).ToString(),
StandardMoney = Math.Round(s.Sum(ss => ss.a.StandardPrice * ss.a.Amount), 2).ToString()
}).ToList(); }).ToList();
var entdto = new GetCustomerOrgFeeSettlementInGroupReportReduceDto var entdto = new GetCustomerOrgFeeSettlementInGroupReportReduceDto
@ -1952,7 +1954,7 @@ namespace Shentun.Peis.CustomerReports
sumquery = sumquery.Where(m => m.a.CompleteFlag == PatientRegisterCompleteFlag.PartCheck || m.a.CompleteFlag == PatientRegisterCompleteFlag.SumCheck); sumquery = sumquery.Where(m => m.a.CompleteFlag == PatientRegisterCompleteFlag.PartCheck || m.a.CompleteFlag == PatientRegisterCompleteFlag.SumCheck);
} }
// 分组数据 // 分组数据
var groupDetails = sumquery.ToList().GroupBy(g => g.a.CustomerOrgGroupId).Select(s => new GetCustomerOrgFeeSettlementInGroupReportDetail_GroupDetail var groupDetails = sumquery.ToList().GroupBy(g => g.a.CustomerOrgGroupId).Select(s => new GetCustomerOrgFeeSettlementInGroupReportDetail_GroupDetail
{ {
@ -1996,6 +1998,8 @@ namespace Shentun.Peis.CustomerReports
PatientCount = s.Count(), PatientCount = s.Count(),
SumPrice = Math.Round(s.Sum(ss => ss.a.ChargePrice * ss.a.Amount), 2).ToString(), SumPrice = Math.Round(s.Sum(ss => ss.a.ChargePrice * ss.a.Amount), 2).ToString(),
Price = Math.Round(s.Sum(ss => ss.a.ChargePrice * ss.a.Amount) / s.Sum(ss => ss.a.Amount), 2).ToString(), Price = Math.Round(s.Sum(ss => ss.a.ChargePrice * ss.a.Amount) / s.Sum(ss => ss.a.Amount), 2).ToString(),
StandardPrice = Math.Round(s.Sum(ss => ss.a.StandardPrice * ss.a.Amount) / s.Sum(ss => ss.a.Amount), 2).ToString(),
StandardMoney = Math.Round(s.Sum(ss => ss.a.StandardPrice * ss.a.Amount), 2).ToString(),
Patients = s.Select(sa => new GetCustomerOrgFeeSettlementInGroupReportDetail_Patient Patients = s.Select(sa => new GetCustomerOrgFeeSettlementInGroupReportDetail_Patient
{ {
Age = sa.ac != null ? sa.ac.Age : null, Age = sa.ac != null ? sa.ac.Age : null,

18
src/Shentun.Peis.Application/InternalReports/InternalReportAppService.cs

@ -1,6 +1,7 @@
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using NUglify.Helpers; using NUglify.Helpers;
using Shentun.Peis.Enums; using Shentun.Peis.Enums;
using Shentun.Peis.Models; using Shentun.Peis.Models;
@ -148,7 +149,7 @@ namespace Shentun.Peis.InternalReports
var query = (from a in await _patientRegisterRepository.GetQueryableAsync() var query = (from a in await _patientRegisterRepository.GetQueryableAsync()
join b in await _userRepository.GetQueryableAsync() on a.SummaryDoctorId equals b.Id into bb join b in await _userRepository.GetQueryableAsync() on a.SummaryDoctorId equals b.Id into bb
from ab in bb.DefaultIfEmpty() from ab in bb.DefaultIfEmpty()
where (a.SummaryDoctorId!=null) && a.SummaryDate != null && a.SummaryDate.Value >= Convert.ToDateTime(input.StartDate) &&
where (a.SummaryDoctorId != null) && a.SummaryDate != null && a.SummaryDate.Value >= Convert.ToDateTime(input.StartDate) &&
a.SummaryDate < Convert.ToDateTime(input.EndDate).AddDays(1) a.SummaryDate < Convert.ToDateTime(input.EndDate).AddDays(1)
select new select new
{ {
@ -187,7 +188,7 @@ namespace Shentun.Peis.InternalReports
var query = (from a in await _patientRegisterRepository.GetQueryableAsync() var query = (from a in await _patientRegisterRepository.GetQueryableAsync()
join b in await _userRepository.GetQueryableAsync() on a.SummaryDoctorId equals b.Id into bb join b in await _userRepository.GetQueryableAsync() on a.SummaryDoctorId equals b.Id into bb
from ab in bb.DefaultIfEmpty() from ab in bb.DefaultIfEmpty()
where (a.AuditDoctorId!=null) && a.AuditDate != null && a.AuditDate.Value >= Convert.ToDateTime(input.StartDate) &&
where (a.AuditDoctorId != null) && a.AuditDate != null && a.AuditDate.Value >= Convert.ToDateTime(input.StartDate) &&
a.AuditDate.Value < Convert.ToDateTime(input.EndDate).AddDays(1) a.AuditDate.Value < Convert.ToDateTime(input.EndDate).AddDays(1)
select new select new
{ {
@ -228,9 +229,9 @@ namespace Shentun.Peis.InternalReports
var qeruy = from a in await _registerAsbitemRepository.GetQueryableAsync() var qeruy = from a in await _registerAsbitemRepository.GetQueryableAsync()
join b in await _asbitemRepository.GetQueryableAsync() on a.AsbitemId equals b.Id join b in await _asbitemRepository.GetQueryableAsync() on a.AsbitemId equals b.Id
join c in await _itemTypeRepository.GetQueryableAsync() on b.ItemTypeId equals c.Id join c in await _itemTypeRepository.GetQueryableAsync() on b.ItemTypeId equals c.Id
join d in await _registerCheckRepository.GetQueryableAsync() on a.RegisterCheckId equals d.Id into dd
from ad in dd.DefaultIfEmpty()
where (!string.IsNullOrEmpty(ad.CheckDoctorId) && ad.CheckDate != null)
join d in await _registerCheckRepository.GetQueryableAsync() on a.RegisterCheckId equals d.Id
join patientRegister in await _patientRegisterRepository.GetQueryableAsync() on d.PatientRegisterId equals patientRegister.Id
where (!string.IsNullOrEmpty(d.CheckDoctorId) && d.CheckDate != null)
select new select new
{ {
a.AsbitemId, a.AsbitemId,
@ -240,7 +241,8 @@ namespace Shentun.Peis.InternalReports
AsbitemName = b.DisplayName, AsbitemName = b.DisplayName,
ItemTypeId = b.ItemTypeId, ItemTypeId = b.ItemTypeId,
ItemTypeName = c.DisplayName, ItemTypeName = c.DisplayName,
ad.CheckDate
d.CheckDate,
MedicalTypeId = patientRegister.MedicalTypeId
}; };
if (input.ItemTypeId.Any()) if (input.ItemTypeId.Any())
@ -253,6 +255,10 @@ namespace Shentun.Peis.InternalReports
qeruy = qeruy.Where(m => m.CheckDate.Value >= Convert.ToDateTime(input.StartDate) && qeruy = qeruy.Where(m => m.CheckDate.Value >= Convert.ToDateTime(input.StartDate) &&
m.CheckDate.Value < Convert.ToDateTime(input.EndDate).AddDays(1)); m.CheckDate.Value < Convert.ToDateTime(input.EndDate).AddDays(1));
} }
if (input.MedicalTypeIds.Any())
{
qeruy = qeruy.Where(m => m.MedicalTypeId != null && input.MedicalTypeIds.Contains(m.MedicalTypeId.Value));
}
var entlist = qeruy.GroupBy(g => new { g.ItemTypeId, g.AsbitemId }) var entlist = qeruy.GroupBy(g => new { g.ItemTypeId, g.AsbitemId })
.Select(s => new GetItemTypeWorkLoadInStandardDto .Select(s => new GetItemTypeWorkLoadInStandardDto

4
src/Shentun.Peis.Application/PeisReports/PeisReportAppService.cs

@ -271,9 +271,9 @@ namespace Shentun.Peis.PeisReports
} }
} }
if (input.MedicalTypeId != null)
if (input.MedicalTypeIds.Any())
{ {
sumquery = sumquery.Where(m => m.a.MedicalTypeId == input.MedicalTypeId);
sumquery = sumquery.Where(m => m.a.MedicalTypeId != null && input.MedicalTypeIds.Contains(m.a.MedicalTypeId.Value));
} }
if (input.PersonnelTypeId != null) if (input.PersonnelTypeId != null)

Loading…
Cancel
Save