diff --git a/src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/GetIsOutsendAsbitemByLisBarCodeInputDto.cs b/src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/GetIsOutsendAsbitemByLisBarCodeInputDto.cs
index c1d77cd2..0eefbe81 100644
--- a/src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/GetIsOutsendAsbitemByLisBarCodeInputDto.cs
+++ b/src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/GetIsOutsendAsbitemByLisBarCodeInputDto.cs
@@ -6,6 +6,11 @@ namespace Shentun.Peis.ThirdPartyPublicInterfaces
{
public class GetIsOutsendAsbitemByLisBarCodeInputDto
{
+ ///
+ /// dian-迪安
+ ///
+ public string SourceFlag { get; set; }
+
///
/// 条码号
///
diff --git a/src/Shentun.Peis.Application/CustomerReports/CustomerReportAppService.cs b/src/Shentun.Peis.Application/CustomerReports/CustomerReportAppService.cs
index 298ba6ba..8e033f24 100644
--- a/src/Shentun.Peis.Application/CustomerReports/CustomerReportAppService.cs
+++ b/src/Shentun.Peis.Application/CustomerReports/CustomerReportAppService.cs
@@ -3758,6 +3758,331 @@ namespace Shentun.Peis.CustomerReports
}
+ /////
+ ///// 单位实收统计
+ /////
+ /////
+ //[HttpPost("api/app/CustomerReport/GetCustomerOrgAmountReceivedStatistics")]
+ //public async Task> 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 CustomerOrgIds = new List();
+
+ // 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 entListDto = new List();
+ // List tempList = new List();
+
+ // 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 payModeTemplist = new List();
+
+ // 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 payModeTemplist = new List();
+
+ // 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 payModeTemplist = new List();
+
+ // 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 payModeTemplist = new List();
+
+ // 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;
+
+ //}
+
+
+
///
/// 单位实收统计
///
@@ -3837,7 +4162,8 @@ namespace Shentun.Peis.CustomerReports
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
};
- 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)
{
- BillMoney = s.Key.ChargeMoney,
- PayModeName = s.First().chargePayModeName,
- BillFlag = '1'
- }).ToList();
+ tempEnt.ChargeDetail = chargeGroup.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)
+ 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.RefundDetail = item.Where(m => m.chargeBackPayHaveEmpty != null).GroupBy(g => g.chargeBackPayHaveEmpty)
+ tempEnt.RefundDetail = chargeBackGroup.GroupBy(g => g.chargeBackPayHaveEmpty)
.Select(s => new GetCustomerOrgAmountReceivedStatisticsByPatientRegisterTempCharge
{
BillMoney = s.Key.BackMoeny,
@@ -4082,7 +4414,6 @@ namespace Shentun.Peis.CustomerReports
}
-
///
/// 体检类别数据统计 营业额统计
///