diff --git a/src/Shentun.Peis.Application/CustomerReports/CustomerReportAppService.cs b/src/Shentun.Peis.Application/CustomerReports/CustomerReportAppService.cs index 0099f13..ba872ac 100644 --- a/src/Shentun.Peis.Application/CustomerReports/CustomerReportAppService.cs +++ b/src/Shentun.Peis.Application/CustomerReports/CustomerReportAppService.cs @@ -16,6 +16,7 @@ using Shentun.Peis.InternalReports; using Shentun.Peis.Models; using Shentun.Peis.PeisReports; using Shentun.Peis.ReportTemplates; +using SqlSugar; using System; using System.Collections.Generic; using System.IO; @@ -2279,6 +2280,8 @@ namespace Shentun.Peis.CustomerReports /// /// 获取单位费用汇总报表 + /// 项目只统计单位支付的 + /// 实检项目 不是检查项目的不用检索已检条件 /// /// /// @@ -2347,14 +2350,17 @@ namespace Shentun.Peis.CustomerReports var queryAsbitemList = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync() join registerCheck in await _registerCheckRepository.GetQueryableAsync() on patientRegister.Id equals registerCheck.PatientRegisterId join registerCheckAsbitem in await _registerAsbitemRepository.GetQueryableAsync() on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId + join asbitem in await _asbitemRepository.GetQueryableAsync() on registerCheckAsbitem.AsbitemId equals asbitem.Id where customerOrgRegisterList.Select(s => s.customerOrgRegisterId).Contains(patientRegister.CustomerOrgRegisterId) + && registerCheckAsbitem.PayTypeFlag == RegisterCheckAsbitemPayTypeFlag.UnitPayment select new { patientRegister, completeFlag = registerCheck.CompleteFlag, standardPrice = registerCheckAsbitem.StandardPrice, chargePrice = registerCheckAsbitem.ChargePrice, - amount = registerCheckAsbitem.Amount + amount = registerCheckAsbitem.Amount, + isCheck = asbitem.IsCheck, }).ToList(); var customerOrgRegisterGroup = queryAsbitemList.GroupBy(g => g.patientRegister.CustomerOrgRegisterId); @@ -2389,13 +2395,15 @@ namespace Shentun.Peis.CustomerReports || m.patientRegister.CompleteFlag == PatientRegisterCompleteFlag.SumCheck).Sum(s => s.chargePrice * s.amount); - entDto.CheckItemStandardAmount = item.Where(m => m.patientRegister.CompleteFlag == PatientRegisterCompleteFlag.PartCheck - || m.patientRegister.CompleteFlag == PatientRegisterCompleteFlag.SumCheck - && m.completeFlag != RegisterCheckCompleteFlag.UnChecked).Sum(s => s.standardPrice * s.amount); + entDto.CheckItemStandardAmount = item.Where(m => (m.patientRegister.CompleteFlag == PatientRegisterCompleteFlag.PartCheck + || m.patientRegister.CompleteFlag == PatientRegisterCompleteFlag.SumCheck) + && (m.completeFlag != RegisterCheckCompleteFlag.UnChecked + || m.isCheck == 'N')).Sum(s => s.standardPrice * s.amount); - entDto.CheckItemChargeAmount = item.Where(m => m.patientRegister.CompleteFlag == PatientRegisterCompleteFlag.PartCheck - || m.patientRegister.CompleteFlag == PatientRegisterCompleteFlag.SumCheck - && m.completeFlag != RegisterCheckCompleteFlag.UnChecked).Sum(s => s.chargePrice * s.amount); + entDto.CheckItemChargeAmount = item.Where(m => (m.patientRegister.CompleteFlag == PatientRegisterCompleteFlag.PartCheck + || m.patientRegister.CompleteFlag == PatientRegisterCompleteFlag.SumCheck) + && (m.completeFlag != RegisterCheckCompleteFlag.UnChecked + || m.isCheck == 'N')).Sum(s => s.chargePrice * s.amount); entListDto.Add(entDto); } diff --git a/src/Shentun.Peis.Domain.Shared/Enums/RegisterAsbitemPayTypeFlag.cs b/src/Shentun.Peis.Domain.Shared/Enums/RegisterAsbitemPayTypeFlag.cs index b41dec5..bb0fca1 100644 --- a/src/Shentun.Peis.Domain.Shared/Enums/RegisterAsbitemPayTypeFlag.cs +++ b/src/Shentun.Peis.Domain.Shared/Enums/RegisterAsbitemPayTypeFlag.cs @@ -6,23 +6,23 @@ using System.Text; namespace Shentun.Peis.Enums { - public static class RegisterAsbitemPayTypeFlag + public static class RegisterCheckAsbitemPayTypeFlag { /// /// 个人支付 0 /// [Description("个人支付")] - public const string PersonalPayment = "0"; + public const char PersonalPayment = '0'; /// /// 单位支付 1 /// [Description("单位支付")] - public const string UnitPayment = "1"; + public const char UnitPayment = '1'; /// /// 免费 2 /// [Description("免费")] - public const string Free = "2"; + public const char Free = '2'; } }