Browse Source

0309

master
wxd 1 month ago
parent
commit
909d0d88bb
  1. 5
      src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/GetIsOutsendAsbitemByLisBarCodeInputDto.cs
  2. 341
      src/Shentun.Peis.Application/CustomerReports/CustomerReportAppService.cs

5
src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/GetIsOutsendAsbitemByLisBarCodeInputDto.cs

@ -6,6 +6,11 @@ namespace Shentun.Peis.ThirdPartyPublicInterfaces
{ {
public class GetIsOutsendAsbitemByLisBarCodeInputDto public class GetIsOutsendAsbitemByLisBarCodeInputDto
{ {
/// <summary>
/// dian-迪安
/// </summary>
public string SourceFlag { get; set; }
/// <summary> /// <summary>
/// 条码号 /// 条码号
/// </summary> /// </summary>

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

@ -3758,6 +3758,331 @@ namespace Shentun.Peis.CustomerReports
} }
///// <summary>
///// 单位实收统计
///// </summary>
///// <returns></returns>
//[HttpPost("api/app/CustomerReport/GetCustomerOrgAmountReceivedStatistics")]
//public async Task<List<GetCustomerOrgAmountReceivedStatisticsDto>> GetCustomerOrgAmountReceivedStatisticsAsync(GetCustomerOrgAmountReceivedStatisticsInputDto input)
//{
// var query = from patientRegister in await _patientRegisterRepository.GetQueryableAsync()
// join customerOrg in await _customerOrgRepository.GetQueryableAsync() on patientRegister.CustomerOrgId equals customerOrg.Id
// join customerOrgRegister in await _customerOrgRegisterRepository.GetQueryableAsync() on patientRegister.CustomerOrgRegisterId equals customerOrgRegister.Id
// join charge in await _chargeRepository.GetQueryableAsync() on patientRegister.Id equals charge.PatientRegisterId
// join chargePay in await _chargePayRepository.GetQueryableAsync() on charge.Id equals chargePay.ChargeId
// join payMode in await _payModeRepository.GetQueryableAsync() on chargePay.PayModeId equals payMode.Id
// join chargeBack in await _chargeBackRepository.GetQueryableAsync() on charge.Id equals chargeBack.ChargeId into chargeBackTemp
// from chargeBackHaveEmpty in chargeBackTemp.DefaultIfEmpty()
// join chargeBackPay in await _chargeBackPayRepository.GetQueryableAsync() on chargeBackHaveEmpty.Id equals chargeBackPay.ChargeBackId into chargeBackPayTemp
// from chargeBackPayHaveEmpty in chargeBackPayTemp.DefaultIfEmpty()
// join backPayMode in await _payModeRepository.GetQueryableAsync() on chargeBackPayHaveEmpty.PayModeId equals backPayMode.Id into backPayModeTemp
// from backPayModeHaveEmpty in backPayModeTemp.DefaultIfEmpty()
// select new
// {
// patientRegister,
// customerOrg,
// customerOrgRegister,
// charge,
// chargePay,
// chargePayModeName = payMode.DisplayName,
// chargeBackHaveEmpty,
// chargeBackPayHaveEmpty,
// backPayModeName = backPayModeHaveEmpty != null ? backPayModeHaveEmpty.DisplayName : ""
// };
// if (input.CustomerOrgIds.Any())
// {
// List<Guid?> CustomerOrgIds = new List<Guid?>();
// foreach (var item in input.CustomerOrgIds)
// {
// CustomerOrgIds.AddRange(await _customerOrgManager.GetCustomerOrgChildrenId(item));
// }
// query = query.Where(m => CustomerOrgIds.Contains(m.patientRegister.CustomerOrgId));
// }
// if (input.MedicalTypeIds.Any())
// {
// query = query.Where(m => m.patientRegister.MedicalTypeId != null && input.MedicalTypeIds.Contains(m.patientRegister.MedicalTypeId.Value));
// }
// if (input.PersonnelTypeIds.Any())
// {
// query = query.Where(m => m.patientRegister.PersonnelTypeId != null && input.PersonnelTypeIds.Contains(m.patientRegister.PersonnelTypeId.Value));
// }
// if (input.Salesmans.Any())
// {
// query = query.Where(m => input.Salesmans.Contains(m.patientRegister.Salesman));
// }
// if (input.IsPreRegistration == 'N')
// {
// query = query.Where(m => m.patientRegister.CompleteFlag != PatientRegisterCompleteFlag.PreRegistration);
// }
// if (input.PayModeIds.Any())
// {
// query = query.Where(m => input.PayModeIds.Contains(m.chargePay.PayModeId));
// }
// if (input.FeeUserIds.Any())
// {
// query = query.Where(c => input.FeeUserIds.Contains(c.charge.CreatorId.Value));
// }
// if (!string.IsNullOrEmpty(input.StartDate) && !string.IsNullOrEmpty(input.EndDate))
// {
// query = query.Where(c => c.charge.CreationTime >= Convert.ToDateTime(input.StartDate) && c.charge.CreationTime < Convert.ToDateTime(input.EndDate).AddDays(1));
// }
// char groupMode = '0'; //0-按一级单位 1-按一级单位+体检次数 2-按部门 3-按部门+体检次数
// if (input.IsChild == 'Y')
// {
// if (input.IsCustomerOrgRegister == 'Y')
// {
// groupMode = '3';
// }
// else
// {
// groupMode = '2';
// }
// }
// else
// {
// if (input.IsCustomerOrgRegister == 'Y')
// {
// groupMode = '1';
// }
// else
// {
// groupMode = '0';
// }
// }
// var groupQuery = query.ToList().GroupBy(g => g.patientRegister);
// List<GetCustomerOrgAmountReceivedStatisticsDto> entListDto = new List<GetCustomerOrgAmountReceivedStatisticsDto>();
// List<GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTemp> tempList = new List<GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTemp>();
// foreach (var item in groupQuery)
// {
// var tempEnt = new GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTemp
// {
// PatientRegisterId = item.Key.Id,
// DepartmentId = item.Key.CustomerOrgId,
// CustomerOrgId = (await _cacheService.GetTopCustomerOrgAsync(item.Key.CustomerOrgId)).Id,
// MedicalTimes = item.First().customerOrgRegister.MedicalTimes,
// ChargeCount = 1,
// RefundCount = 0
// };
// tempEnt.ChargeDetail = item.GroupBy(g => g.chargePay).Select(s => new GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTempCharge
// {
// BillMoney = s.Key.ChargeMoney,
// PayModeName = s.First().chargePayModeName,
// BillFlag = '1'
// }).ToList();
// if (item.Count(m => m.chargeBackHaveEmpty != null) > 0)
// {
// tempEnt.RefundCount = 1;
// tempEnt.RefundDetail = item.Where(m => m.chargeBackPayHaveEmpty != null).GroupBy(g => g.chargeBackPayHaveEmpty)
// .Select(s => new GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTempCharge
// {
// BillMoney = s.Key.BackMoeny,
// PayModeName = s.First().backPayModeName,
// BillFlag = '2'
// }).ToList();
// }
// tempList.Add(tempEnt);
// }
// if (groupMode == '0')
// {
// var customerOrgIdGroup = tempList.GroupBy(g => g.CustomerOrgId);
// foreach (var item in customerOrgIdGroup)
// {
// var entDto = new GetCustomerOrgAmountReceivedStatisticsDto
// {
// ChargeCount = item.Sum(s => s.ChargeCount),
// RefundCount = item.Sum(s => s.RefundCount),
// CustomerOrgName = await _cacheService.GetCustomerOrgNameAsync(item.Key),
// MedicalTimes = 0,
// DepartmentName = ""
// };
// List<GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTempCharge> payModeTemplist = new List<GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTempCharge>();
// var chargeDetailList = item.Select(s => s.ChargeDetail).ToList();
// var refundDetailList = item.Select(s => s.RefundDetail).ToList();
// foreach (var chargeDetail in chargeDetailList)
// {
// payModeTemplist.AddRange(chargeDetail);
// }
// foreach (var refundDetail in refundDetailList)
// {
// payModeTemplist.AddRange(refundDetail);
// }
// if (payModeTemplist.Any())
// {
// entDto.FeeDetail = payModeTemplist.GroupBy(ga => ga.PayModeName).Select(s => new GetCustomerOrgAmountReceivedStatisticsFeeDetail
// {
// PayModeName = s.Key,
// ChargeMoney = s.Where(m => m.BillFlag == '1').Sum(s => s.BillMoney),
// RefundMoney = s.Where(m => m.BillFlag == '2').Sum(s => -s.BillMoney),
// }).ToList();
// }
// entListDto.Add(entDto);
// }
// }
// else if (groupMode == '1')
// {
// var customerOrgIdGroup = tempList.GroupBy(g => new { g.CustomerOrgId, g.MedicalTimes });
// foreach (var item in customerOrgIdGroup)
// {
// var entDto = new GetCustomerOrgAmountReceivedStatisticsDto
// {
// ChargeCount = item.Sum(s => s.ChargeCount),
// RefundCount = item.Sum(s => s.RefundCount),
// MedicalTimes = item.Key.MedicalTimes,
// CustomerOrgName = await _cacheService.GetCustomerOrgNameAsync(item.Key.CustomerOrgId),
// DepartmentName = ""
// };
// List<GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTempCharge> payModeTemplist = new List<GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTempCharge>();
// var chargeDetailList = item.Select(s => s.ChargeDetail).ToList();
// var refundDetailList = item.Select(s => s.RefundDetail).ToList();
// foreach (var chargeDetail in chargeDetailList)
// {
// payModeTemplist.AddRange(chargeDetail);
// }
// foreach (var refundDetail in refundDetailList)
// {
// payModeTemplist.AddRange(refundDetail);
// }
// if (payModeTemplist.Any())
// {
// entDto.FeeDetail = payModeTemplist.GroupBy(ga => ga.PayModeName).Select(s => new GetCustomerOrgAmountReceivedStatisticsFeeDetail
// {
// PayModeName = s.Key,
// ChargeMoney = s.Where(m => m.BillFlag == '1').Sum(s => s.BillMoney),
// RefundMoney = s.Where(m => m.BillFlag == '2').Sum(s => -s.BillMoney),
// }).ToList();
// }
// entListDto.Add(entDto);
// }
// }
// else if (groupMode == '2')
// {
// var customerOrgIdGroup = tempList.GroupBy(g => g.DepartmentId);
// foreach (var item in customerOrgIdGroup)
// {
// var entDto = new GetCustomerOrgAmountReceivedStatisticsDto
// {
// ChargeCount = item.Sum(s => s.ChargeCount),
// RefundCount = item.Sum(s => s.RefundCount),
// CustomerOrgName = await _cacheService.GetCustomerOrgNameAsync(item.First().CustomerOrgId),
// DepartmentName = await _cacheService.GetCustomerOrgNameAsync(item.Key),
// MedicalTimes = 0
// };
// List<GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTempCharge> payModeTemplist = new List<GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTempCharge>();
// var chargeDetailList = item.Select(s => s.ChargeDetail).ToList();
// var refundDetailList = item.Select(s => s.RefundDetail).ToList();
// foreach (var chargeDetail in chargeDetailList)
// {
// payModeTemplist.AddRange(chargeDetail);
// }
// foreach (var refundDetail in refundDetailList)
// {
// payModeTemplist.AddRange(refundDetail);
// }
// if (payModeTemplist.Any())
// {
// entDto.FeeDetail = payModeTemplist.GroupBy(ga => ga.PayModeName).Select(s => new GetCustomerOrgAmountReceivedStatisticsFeeDetail
// {
// PayModeName = s.Key,
// ChargeMoney = s.Where(m => m.BillFlag == '1').Sum(s => s.BillMoney),
// RefundMoney = s.Where(m => m.BillFlag == '2').Sum(s => -s.BillMoney),
// }).ToList();
// }
// entListDto.Add(entDto);
// }
// }
// else if (groupMode == '3')
// {
// var customerOrgIdGroup = tempList.GroupBy(g => new { g.DepartmentId, g.MedicalTimes });
// foreach (var item in customerOrgIdGroup)
// {
// var entDto = new GetCustomerOrgAmountReceivedStatisticsDto
// {
// ChargeCount = item.Sum(s => s.ChargeCount),
// RefundCount = item.Sum(s => s.RefundCount),
// MedicalTimes = item.Key.MedicalTimes,
// CustomerOrgName = await _cacheService.GetCustomerOrgNameAsync(item.First().CustomerOrgId),
// DepartmentName = await _cacheService.GetCustomerOrgNameAsync(item.Key.DepartmentId)
// };
// List<GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTempCharge> payModeTemplist = new List<GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTempCharge>();
// var chargeDetailList = item.Select(s => s.ChargeDetail).ToList();
// var refundDetailList = item.Select(s => s.RefundDetail).ToList();
// foreach (var chargeDetail in chargeDetailList)
// {
// payModeTemplist.AddRange(chargeDetail);
// }
// foreach (var refundDetail in refundDetailList)
// {
// payModeTemplist.AddRange(refundDetail);
// }
// if (payModeTemplist.Any())
// {
// entDto.FeeDetail = payModeTemplist.GroupBy(ga => ga.PayModeName).Select(s => new GetCustomerOrgAmountReceivedStatisticsFeeDetail
// {
// PayModeName = s.Key,
// ChargeMoney = s.Where(m => m.BillFlag == '1').Sum(s => s.BillMoney),
// RefundMoney = s.Where(m => m.BillFlag == '2').Sum(s => -s.BillMoney),
// }).ToList();
// }
// entListDto.Add(entDto);
// }
// }
// return entListDto;
//}
/// <summary> /// <summary>
/// 单位实收统计 /// 单位实收统计
/// </summary> /// </summary>
@ -3837,7 +4162,8 @@ namespace Shentun.Peis.CustomerReports
if (!string.IsNullOrEmpty(input.StartDate) && !string.IsNullOrEmpty(input.EndDate)) if (!string.IsNullOrEmpty(input.StartDate) && !string.IsNullOrEmpty(input.EndDate))
{ {
query = query.Where(c => c.charge.CreationTime >= Convert.ToDateTime(input.StartDate) && c.charge.CreationTime < Convert.ToDateTime(input.EndDate).AddDays(1));
query = query.Where(c => (c.charge.CreationTime >= Convert.ToDateTime(input.StartDate) && c.charge.CreationTime < Convert.ToDateTime(input.EndDate).AddDays(1)) ||
(c.chargeBackHaveEmpty.CreationTime >= Convert.ToDateTime(input.StartDate) && c.chargeBackHaveEmpty.CreationTime < Convert.ToDateTime(input.EndDate).AddDays(1)));
} }
@ -3883,18 +4209,24 @@ namespace Shentun.Peis.CustomerReports
RefundCount = 0 RefundCount = 0
}; };
tempEnt.ChargeDetail = item.GroupBy(g => g.chargePay).Select(s => new GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTempCharge
var chargeGroup = item.Where(c => c.charge.CreationTime >= Convert.ToDateTime(input.StartDate) && c.charge.CreationTime < Convert.ToDateTime(input.EndDate).AddDays(1));
if (chargeGroup.Count() > 0)
{
tempEnt.ChargeDetail = chargeGroup.GroupBy(g => g.chargePay).Select(s => new GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTempCharge
{ {
BillMoney = s.Key.ChargeMoney, BillMoney = s.Key.ChargeMoney,
PayModeName = s.First().chargePayModeName, PayModeName = s.First().chargePayModeName,
BillFlag = '1' BillFlag = '1'
}).ToList(); }).ToList();
}
if (item.Count(m => m.chargeBackHaveEmpty != null) > 0)
var chargeBackGroup = item.Where(c => c.chargeBackHaveEmpty != null && c.chargeBackHaveEmpty.CreationTime >= Convert.ToDateTime(input.StartDate) && c.chargeBackHaveEmpty.CreationTime < Convert.ToDateTime(input.EndDate).AddDays(1));
if (chargeBackGroup.Count() > 0)
{ {
tempEnt.RefundCount = 1; tempEnt.RefundCount = 1;
tempEnt.RefundDetail = item.Where(m => m.chargeBackPayHaveEmpty != null).GroupBy(g => g.chargeBackPayHaveEmpty)
tempEnt.RefundDetail = chargeBackGroup.GroupBy(g => g.chargeBackPayHaveEmpty)
.Select(s => new GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTempCharge .Select(s => new GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTempCharge
{ {
BillMoney = s.Key.BackMoeny, BillMoney = s.Key.BackMoeny,
@ -4082,7 +4414,6 @@ namespace Shentun.Peis.CustomerReports
} }
/// <summary> /// <summary>
/// 体检类别数据统计 营业额统计 /// 体检类别数据统计 营业额统计
/// </summary> /// </summary>

Loading…
Cancel
Save