DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
b5adaa19ef
  1. 69
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetPersonalFeeDetailsReportInFeeDetailsDto.cs
  2. 37
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetPersonalFeeDetailsReportInFeeDetailsRequestDto.cs
  3. 115
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetPersonalFeeDetailsReportInFeeSummaryDto.cs
  4. 37
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetPersonalFeeDetailsReportInFeeSummaryRequestDto.cs
  5. 68
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetPersonalFeeDetailsReportInRefundDetailsDto.cs
  6. 37
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetPersonalFeeDetailsReportInRefundDetailsRequestDto.cs
  7. 72
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetProjectFeesReportDto.cs
  8. 32
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetProjectFeesReportRequestDto.cs
  9. 60
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetSummaryOfDepartmentalFeesReportDto.cs
  10. 27
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetSummaryOfDepartmentalFeesReportRequestDto.cs
  11. 54
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetSummaryOfPhysicalExaminationPersonnelReportDto.cs
  12. 22
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetSummaryOfPhysicalExaminationPersonnelReportRequestDto.cs
  13. 42
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetTollCollectorFeeReportInAsbitemDto.cs
  14. 27
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetTollCollectorFeeReportInAsbitemRequestDto.cs
  15. 84
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetTollCollectorFeeReportInInvoiceTypeDto.cs
  16. 27
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetTollCollectorFeeReportInInvoiceTypeRequestDto.cs
  17. 63
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetTollCollectorFeeReportInPayModeDto.cs
  18. 27
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetTollCollectorFeeReportInPayModeRequestDto.cs
  19. 56
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetTollcollectorFeeSummaryReportDto.cs
  20. 27
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetTollcollectorFeeSummaryReportRequestDto.cs
  21. 25
      src/Shentun.Peis.Application.Contracts/Charges/ChargeAndChargeBackSettlementRequestDto.cs
  22. 58
      src/Shentun.Peis.Application.Contracts/Charges/GetChargeAndChargeBackSummaryDto.cs
  23. 24
      src/Shentun.Peis.Application.Contracts/Charges/GetChargeAndChargeBackSummaryRequestDto.cs
  24. 1183
      src/Shentun.Peis.Application/ChargeReports/ChargeReportAppService.cs
  25. 203
      src/Shentun.Peis.Application/Charges/ChargeAppService.cs
  26. 24
      src/Shentun.Peis.Domain.Shared/Enums/ChargeFlag.cs
  27. 18
      src/Shentun.Peis.Domain/DataHelper.cs
  28. 24
      src/Shentun.Peis.Domain/ItemTypes/ItemTypeManager.cs

69
src/Shentun.Peis.Application.Contracts/ChargeReports/GetPersonalFeeDetailsReportInFeeDetailsDto.cs

@ -0,0 +1,69 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetPersonalFeeDetailsReportInFeeDetailsDto
{
/// <summary>
/// 档案号
/// </summary>
public string PatientNo { get; set; }
/// <summary>
/// 体检次数
/// </summary>
public short MedicalTimes { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string PatientName { get; set; }
/// <summary>
/// 性别
/// </summary>
public string SexName { get; set; }
/// <summary>
/// 年龄
/// </summary>
public short? Age { get; set; }
/// <summary>
/// 组合项目名称
/// </summary>
public string AsbitemName { get; set; }
/// <summary>
/// 标准金额
/// </summary>
public decimal StandardPrice { get; set; }
/// <summary>
/// 实收金额
/// </summary>
public decimal CharePrice { get; set; }
/// <summary>
/// 折扣
/// </summary>
public string Discount { get; set;}
/// <summary>
/// 记账人
/// </summary>
public string BookKeepingName { get; set; }
/// <summary>
/// 记账时间
/// </summary>
public string BookkeepingTiem { get; set; }
}
}

37
src/Shentun.Peis.Application.Contracts/ChargeReports/GetPersonalFeeDetailsReportInFeeDetailsRequestDto.cs

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetPersonalFeeDetailsReportInFeeDetailsRequestDto
{
/// <summary>
/// 收费员ID 集合
/// </summary>
public List<Guid> UserIds { get; set; } = new List<Guid>();
/// <summary>
/// 档案号
/// </summary>
public string PatientNo { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string PatientName { get; set; }
/// <summary>
/// 开始日期
/// </summary>
[Required(ErrorMessage = "开始日期不能为空")]
public string StartDate { get; set; }
/// <summary>
/// 结束日期
/// </summary>
[Required(ErrorMessage = "结束日期不能为空")]
public string EndDate { get; set; }
}
}

115
src/Shentun.Peis.Application.Contracts/ChargeReports/GetPersonalFeeDetailsReportInFeeSummaryDto.cs

@ -0,0 +1,115 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetPersonalFeeDetailsReportInFeeSummaryDto
{
/// <summary>
/// 应收总金额
/// </summary>
public decimal SumChargeMoney { get; set; }
/// <summary>
/// 折扣总金额
/// </summary>
public decimal SumDiscountMoney { get; set; }
/// <summary>
/// 实收总金额
/// </summary>
public decimal SumReceivedChargeMoney { get; set; }
/// <summary>
/// 收费人数
/// </summary>
public int ChargeCount { get; set; }
/// <summary>
/// 明细
/// </summary>
public List<GetPersonalFeeDetailsReportInFeeSummary_Detail> Details { get; set; }
}
public class GetPersonalFeeDetailsReportInFeeSummary_Detail
{
/// <summary>
/// 档案号
/// </summary>
public string PatientNo { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string PatientName { get; set; }
/// <summary>
/// 性别
/// </summary>
public string SexName { get; set; }
/// <summary>
/// 年龄
/// </summary>
public short? Age { get; set; }
/// <summary>
/// 应收金额
/// </summary>
public decimal ChargeMoney { get; set; }
/// <summary>
/// 折扣金额
/// </summary>
public decimal DiscountMoney { get; set; }
/// <summary>
/// 实收金额
/// </summary>
public decimal ReceivedChargeMoney { get; set; }
/// <summary>
/// 收费人
/// </summary>
public string BookKeepingName { get; set; }
/// <summary>
/// 收费时间
/// </summary>
public string BookkeepingTiem { get; set; }
/// <summary>
/// 记账模式 收费/退费
/// </summary>
public string ChargeFlagName { get; set; }
/// <summary>
/// 支付方式明细
/// </summary>
public List<GetPersonalFeeDetailsReportInFeeSummary_PayMode> PayModes { get; set; }
}
public class GetPersonalFeeDetailsReportInFeeSummary_PayMode
{
/// <summary>
/// 支付方式
/// </summary>
public string PayModeName { get; set; }
/// <summary>
/// 实收金额
/// </summary>
public decimal ReceivedChargeMoney { get; set; }
}
}

37
src/Shentun.Peis.Application.Contracts/ChargeReports/GetPersonalFeeDetailsReportInFeeSummaryRequestDto.cs

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetPersonalFeeDetailsReportInFeeSummaryRequestDto
{
/// <summary>
/// 收费员ID 集合
/// </summary>
public List<Guid> UserIds { get; set; } = new List<Guid>();
/// <summary>
/// 档案号
/// </summary>
public string PatientNo { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string PatientName { get; set; }
/// <summary>
/// 开始日期
/// </summary>
[Required(ErrorMessage = "开始日期不能为空")]
public string StartDate { get; set; }
/// <summary>
/// 结束日期
/// </summary>
[Required(ErrorMessage = "结束日期不能为空")]
public string EndDate { get; set; }
}
}

68
src/Shentun.Peis.Application.Contracts/ChargeReports/GetPersonalFeeDetailsReportInRefundDetailsDto.cs

@ -0,0 +1,68 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetPersonalFeeDetailsReportInRefundDetailsDto
{
/// <summary>
/// 档案号
/// </summary>
public string PatientNo { get; set; }
/// <summary>
/// 体检次数
/// </summary>
public short MedicalTimes { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string PatientName { get; set; }
/// <summary>
/// 性别
/// </summary>
public string SexName { get; set; }
/// <summary>
/// 年龄
/// </summary>
public short? Age { get; set; }
/// <summary>
/// 组合项目名称
/// </summary>
public string AsbitemName { get; set; }
/// <summary>
/// 标准金额
/// </summary>
public decimal StandardPrice { get; set; }
/// <summary>
/// 实收金额
/// </summary>
public decimal CharePrice { get; set; }
/// <summary>
/// 折扣
/// </summary>
public string Discount { get; set; }
/// <summary>
/// 记账人
/// </summary>
public string BookKeepingName { get; set; }
/// <summary>
/// 记账时间
/// </summary>
public string BookkeepingTiem { get; set; }
}
}

37
src/Shentun.Peis.Application.Contracts/ChargeReports/GetPersonalFeeDetailsReportInRefundDetailsRequestDto.cs

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetPersonalFeeDetailsReportInRefundDetailsRequestDto
{
/// <summary>
/// 收费员ID 集合
/// </summary>
public List<Guid> UserIds { get; set; } = new List<Guid>();
/// <summary>
/// 档案号
/// </summary>
public string PatientNo { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string PatientName { get; set; }
/// <summary>
/// 开始日期
/// </summary>
[Required(ErrorMessage = "开始日期不能为空")]
public string StartDate { get; set; }
/// <summary>
/// 结束日期
/// </summary>
[Required(ErrorMessage = "结束日期不能为空")]
public string EndDate { get; set; }
}
}

72
src/Shentun.Peis.Application.Contracts/ChargeReports/GetProjectFeesReportDto.cs

@ -0,0 +1,72 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetProjectFeesReportDto
{
/// <summary>
/// 应收总金额
/// </summary>
public decimal SumChargeMoney { get; set; }
/// <summary>
/// 折扣金额
/// </summary>
public decimal SumDiscountMoney { get; set; }
/// <summary>
/// 实收总金额
/// </summary>
public decimal SumReceivedChargeMoney { get; set; }
/// <summary>
/// 明细
/// </summary>
public List<GetProjectFeesReport_Detail> Details { get; set; }
}
public class GetProjectFeesReport_Detail
{
/// <summary>
/// 项目类别Id 前端不需要
/// </summary>
public Guid ItemTypeId { get; set; }
/// <summary>
/// 项目类别名称==科室
/// </summary>
public string ItemTypeName { get; set; }
/// <summary>
/// 组合项目Id 前端不需要
/// </summary>
public Guid AsbitemId { get; set; }
/// <summary>
/// 组合项目名称
/// </summary>
public string AsbitemName { get; set; }
/// <summary>
/// 应收金额
/// </summary>
public decimal ChargeMoney { get; set; }
/// <summary>
/// 折扣金额
/// </summary>
public decimal DiscountMoney { get; set; }
/// <summary>
/// 实收金额
/// </summary>
public decimal ReceivedChargeMoney { get; set; }
}
}

32
src/Shentun.Peis.Application.Contracts/ChargeReports/GetProjectFeesReportRequestDto.cs

@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetProjectFeesReportRequestDto
{
/// <summary>
/// 项目类别ID
/// </summary>
public Guid? ItemTypeId { get; set; }
/// <summary>
/// 组合项目 可以多个
/// </summary>
public List<Guid> Asbitems { get; set; } = new List<Guid>();
/// <summary>
/// 开始日期
/// </summary>
[Required(ErrorMessage = "开始日期不能为空")]
public string StartDate { get; set; }
/// <summary>
/// 结束日期
/// </summary>
[Required(ErrorMessage = "结束日期不能为空")]
public string EndDate { get; set; }
}
}

60
src/Shentun.Peis.Application.Contracts/ChargeReports/GetSummaryOfDepartmentalFeesReportDto.cs

@ -0,0 +1,60 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetSummaryOfDepartmentalFeesReportDto
{
/// <summary>
/// 应收总金额
/// </summary>
public decimal SumChargeMoney { get; set; }
/// <summary>
/// 折扣金额
/// </summary>
public decimal SumDiscountMoney { get; set; }
/// <summary>
/// 实收总金额
/// </summary>
public decimal SumReceivedChargeMoney { get; set; }
/// <summary>
/// 明细
/// </summary>
public List<GetSummaryOfDepartmentalFeesReport_Detail> Details { get; set; }
}
public class GetSummaryOfDepartmentalFeesReport_Detail
{
/// <summary>
/// 项目类别Id 前端不需要
/// </summary>
public Guid ItemTypeId { get; set; }
/// <summary>
/// 项目类别名称==科室
/// </summary>
public string ItemTypeName { get; set; }
/// <summary>
/// 应收金额
/// </summary>
public decimal ChargeMoney { get; set; }
/// <summary>
/// 折扣金额
/// </summary>
public decimal DiscountMoney { get; set; }
/// <summary>
/// 实收金额
/// </summary>
public decimal ReceivedChargeMoney { get; set; }
}
}

27
src/Shentun.Peis.Application.Contracts/ChargeReports/GetSummaryOfDepartmentalFeesReportRequestDto.cs

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetSummaryOfDepartmentalFeesReportRequestDto
{
/// <summary>
/// 项目类别ID
/// </summary>
public Guid? ItemTypeId { get; set; }
/// <summary>
/// 开始日期
/// </summary>
[Required(ErrorMessage = "开始日期不能为空")]
public string StartDate { get; set; }
/// <summary>
/// 结束日期
/// </summary>
[Required(ErrorMessage = "结束日期不能为空")]
public string EndDate { get; set; }
}
}

54
src/Shentun.Peis.Application.Contracts/ChargeReports/GetSummaryOfPhysicalExaminationPersonnelReportDto.cs

@ -0,0 +1,54 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetSummaryOfPhysicalExaminationPersonnelReportDto
{
/// <summary>
/// 体检总人次
/// </summary>
public int SumCount { get; set; }
/// <summary>
/// 个人次数
/// </summary>
public int PersonalCount { get; set; }
/// <summary>
/// 单位次数
/// </summary>
public int CustomerOrgCount { get; set; }
/// <summary>
/// 明细
/// </summary>
public List<GetSummaryOfPhysicalExaminationPersonnelReport_Detail> Details { get; set; }
}
public class GetSummaryOfPhysicalExaminationPersonnelReport_Detail
{
/// <summary>
/// 单位ID
/// </summary>
public Guid CustomerOrgId { get; set; }
/// <summary>
/// 单位名称
/// </summary>
public string CustomerOrgName { get; set; }
/// <summary>
/// 总检人数
/// </summary>
public int SummaryCount { get; set; }
/// <summary>
/// 应收总金额 ChargePrice*Amout
/// </summary>
public decimal ChargeMoney { get; set; }
}
}

22
src/Shentun.Peis.Application.Contracts/ChargeReports/GetSummaryOfPhysicalExaminationPersonnelReportRequestDto.cs

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetSummaryOfPhysicalExaminationPersonnelReportRequestDto
{
/// <summary>
/// 开始日期
/// </summary>
[Required(ErrorMessage = "开始日期不能为空")]
public string StartDate { get; set; }
/// <summary>
/// 结束日期
/// </summary>
[Required(ErrorMessage = "结束日期不能为空")]
public string EndDate { get; set; }
}
}

42
src/Shentun.Peis.Application.Contracts/ChargeReports/GetTollCollectorFeeReportInAsbitemDto.cs

@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetTollCollectorFeeReportInAsbitemDto
{
/// <summary>
/// 项目类别==科室名字
/// </summary>
public string ItemTypeName { get; set; }
/// <summary>
/// 小计
/// </summary>
public decimal TotalMoney { get; set; }
/// <summary>
/// 明细
/// </summary>
public List<GetTollCollectorFeeReportInAsbitem_Detail> Details { get; set; }
}
public class GetTollCollectorFeeReportInAsbitem_Detail
{
/// <summary>
/// 项目类别==科室名字
/// </summary>
public string ItemTypeName { get; set; }
/// <summary>
/// 组合项目名称
/// </summary>
public string AsbitemName { get; set; }
/// <summary>
/// 收款金额
/// </summary>
public decimal ChargeMoney { get; set; }
}
}

27
src/Shentun.Peis.Application.Contracts/ChargeReports/GetTollCollectorFeeReportInAsbitemRequestDto.cs

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetTollCollectorFeeReportInAsbitemRequestDto
{
/// <summary>
/// 收费员ID 集合
/// </summary>
public List<Guid> UserIds { get; set; } = new List<Guid>();
/// <summary>
/// 开始日期
/// </summary>
[Required(ErrorMessage = "开始日期不能为空")]
public string StartDate { get; set; }
/// <summary>
/// 结束日期
/// </summary>
[Required(ErrorMessage = "结束日期不能为空")]
public string EndDate { get; set; }
}
}

84
src/Shentun.Peis.Application.Contracts/ChargeReports/GetTollCollectorFeeReportInInvoiceTypeDto.cs

@ -0,0 +1,84 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetTollCollectorFeeReportInInvoiceTypeDto
{
/// <summary>
/// 收费票据数量
/// </summary>
public int ChargeCount { get; set; }
/// <summary>
/// 退费票据数量
/// </summary>
public int ChargeBackCount { get; set; }
/// <summary>
/// 收费日期
/// </summary>
public string ChargeDate { get; set; }
/// <summary>
/// 收费明细
/// </summary>
public GetTollCollectorFeeReportInInvoiceType_ChargeDetail ChargeDetails { get; set; }
/// <summary>
/// 退费明细
/// </summary>
public GetTollCollectorFeeReportInInvoiceType_ChargeBackDetail ChargeBackDetails { get; set; }
/// <summary>
/// 总合计金额
/// </summary>
public decimal SumTotalMoney { get; set; }
}
/// <summary>
/// 收费
/// </summary>
public class GetTollCollectorFeeReportInInvoiceType_ChargeDetail
{
/// <summary>
/// 小计金额
/// </summary>
public decimal TotalMoney { get; set; }
/// <summary>
/// 明细
/// </summary>
public List<GetTollCollectorFeeReportInInvoiceType_InvoiceTypeDetail> InvoiceTypeDetails { get; set; }
}
/// <summary>
/// 退费
/// </summary>
public class GetTollCollectorFeeReportInInvoiceType_ChargeBackDetail
{
/// <summary>
/// 小计金额
/// </summary>
public decimal TotalMoney { get; set; }
/// <summary>
/// 明细
/// </summary>
public List<GetTollCollectorFeeReportInInvoiceType_InvoiceTypeDetail> InvoiceTypeDetails { get; set; }
}
public class GetTollCollectorFeeReportInInvoiceType_InvoiceTypeDetail
{
/// <summary>
/// 发票类型
/// </summary>
public string InvoiceTypeName { get; set; }
/// <summary>
/// 金额
/// </summary>
public decimal InvoiceTypeMoney { get; set; }
}
}

27
src/Shentun.Peis.Application.Contracts/ChargeReports/GetTollCollectorFeeReportInInvoiceTypeRequestDto.cs

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetTollCollectorFeeReportInInvoiceTypeRequestDto
{
/// <summary>
/// 收费员ID 集合
/// </summary>
public List<Guid> UserIds { get; set; } = new List<Guid>();
/// <summary>
/// 开始日期
/// </summary>
[Required(ErrorMessage = "开始日期不能为空")]
public string StartDate { get; set; }
/// <summary>
/// 结束日期
/// </summary>
[Required(ErrorMessage = "结束日期不能为空")]
public string EndDate { get; set; }
}
}

63
src/Shentun.Peis.Application.Contracts/ChargeReports/GetTollCollectorFeeReportInPayModeDto.cs

@ -0,0 +1,63 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetTollCollectorFeeReportInPayModeDto
{
/// <summary>
/// 收费票据数量
/// </summary>
public int ChargeCount { get; set; }
/// <summary>
/// 退费票据数量
/// </summary>
public int ChargeBackCount { get; set; }
/// <summary>
/// 收费日期
/// </summary>
public string ChargeDate { get; set;}
/// <summary>
/// 收费明细
/// </summary>
public List<GetTollCollectorFeeReportInPayMode_ChargeAndChargeBackDetail> ChargeDetails { get; set; }
/// <summary>
/// 总合计金额
/// </summary>
public decimal SumTotalMoney { get; set; }
}
public class GetTollCollectorFeeReportInPayMode_ChargeAndChargeBackDetail
{
/// <summary>
/// 收费员
/// </summary>
public string ChargeName { get; set; }
/// <summary>
/// 支付方式名称
/// </summary>
public string PayModeName { get; set; }
/// <summary>
/// 收费金额
/// </summary>
public decimal ChargeMoney { get; set; }
/// <summary>
/// 退费金额
/// </summary>
public decimal ChargeBackMoney { get; set; }
/// <summary>
/// 合计金额
/// </summary>
public decimal TotalMoney { get; set; }
}
}

27
src/Shentun.Peis.Application.Contracts/ChargeReports/GetTollCollectorFeeReportInPayModeRequestDto.cs

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetTollCollectorFeeReportInPayModeRequestDto
{
/// <summary>
/// 收费员ID 集合
/// </summary>
public List<Guid> UserIds { get; set; } = new List<Guid>();
/// <summary>
/// 开始日期
/// </summary>
[Required(ErrorMessage = "开始日期不能为空")]
public string StartDate { get; set; }
/// <summary>
/// 结束日期
/// </summary>
[Required(ErrorMessage = "结束日期不能为空")]
public string EndDate { get; set; }
}
}

56
src/Shentun.Peis.Application.Contracts/ChargeReports/GetTollcollectorFeeSummaryReportDto.cs

@ -0,0 +1,56 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetTollcollectorFeeSummaryReportDto
{
/// <summary>
/// 实收总金额
/// </summary>
public decimal SumChargeMoney { get; set; }
/// <summary>
/// 退费总金额
/// </summary>
public decimal SumChargeBackMoney { get; set; }
/// <summary>
/// 合计总金额
/// </summary>
public decimal SumTotalMoney { get; set; }
/// <summary>
/// 明细
/// </summary>
public List<GetTollcollectorFeeSummaryReport_Detail> Details { get; set; }
}
public class GetTollcollectorFeeSummaryReport_Detail
{
/// <summary>
/// 收费员
/// </summary>
public string ChargeName { get; set; }
/// <summary>
/// 收费金额
/// </summary>
public decimal ChargeMoney { get; set; }
/// <summary>
/// 退费金额
/// </summary>
public decimal ChargeBackMoney { get; set; }
/// <summary>
/// 合计金额
/// </summary>
public decimal TotalMoney { get; set; }
}
}

27
src/Shentun.Peis.Application.Contracts/ChargeReports/GetTollcollectorFeeSummaryReportRequestDto.cs

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Shentun.Peis.ChargeReports
{
public class GetTollcollectorFeeSummaryReportRequestDto
{
/// <summary>
/// 收费员ID 集合
/// </summary>
public List<Guid> UserIds { get; set; } = new List<Guid>();
/// <summary>
/// 开始日期
/// </summary>
[Required(ErrorMessage = "开始日期不能为空")]
public string StartDate { get; set; }
/// <summary>
/// 结束日期
/// </summary>
[Required(ErrorMessage = "结束日期不能为空")]
public string EndDate { get; set; }
}
}

25
src/Shentun.Peis.Application.Contracts/Charges/ChargeAndChargeBackSettlementRequestDto.cs

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.Charges
{
public class ChargeAndChargeBackSettlementRequestDto
{
/// <summary>
/// 收费员ID 集合
/// </summary>
public List<Guid> UserIds { get; set; } = new List<Guid>();
/// <summary>
/// 开始日期
/// </summary>
public string StartDate { get; set; }
/// <summary>
/// 结束日期
/// </summary>
public string EndDate { get; set; }
}
}

58
src/Shentun.Peis.Application.Contracts/Charges/GetChargeAndChargeBackSummaryDto.cs

@ -0,0 +1,58 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.Charges
{
public class GetChargeAndChargeBackSummaryDto
{
/// <summary>
/// 收费汇总
/// </summary>
public List<GetChargeAndChargeBackSummary_ChargeDetail> ChargeDetails { get; set; }
/// <summary>
/// 退费汇总
/// </summary>
public List<GetChargeAndChargeBackSummary_ChargeBackDetail> ChargeBackDetails { get; set; }
}
public class GetChargeAndChargeBackSummary_ChargeDetail
{
/// <summary>
/// 收费员
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 收费明细
/// </summary>
public List<GetChargeAndChargeBackSummary_PayModeDetail> PayModeDetails { get; set; }
}
public class GetChargeAndChargeBackSummary_ChargeBackDetail
{
/// <summary>
/// 退费员
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 退费明细
/// </summary>
public List<GetChargeAndChargeBackSummary_PayModeDetail> PayModeDetails { get; set; }
}
public class GetChargeAndChargeBackSummary_PayModeDetail
{
/// <summary>
/// 支付方式
/// </summary>
public string PayModeName { get; set; }
/// <summary>
/// 收费或退费金额
/// </summary>
public decimal Money { get; set; }
}
}

24
src/Shentun.Peis.Application.Contracts/Charges/GetChargeAndChargeBackSummaryRequestDto.cs

@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.Charges
{
public class GetChargeAndChargeBackSummaryRequestDto
{
/// <summary>
/// 收费员ID 集合
/// </summary>
public List<Guid> UserIds { get; set; } = new List<Guid>();
/// <summary>
/// 开始日期
/// </summary>
public string StartDate { get; set; }
/// <summary>
/// 结束日期
/// </summary>
public string EndDate { get; set; }
}
}

1183
src/Shentun.Peis.Application/ChargeReports/ChargeReportAppService.cs
File diff suppressed because it is too large
View File

203
src/Shentun.Peis.Application/Charges/ChargeAppService.cs

@ -1,17 +1,218 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Shentun.Peis.Books;
using Shentun.Peis.Models;
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Identity;
using Volo.Abp.Users;
namespace Shentun.Peis.Charges
{
/// <summary>
/// 收费
/// </summary>
[ApiExplorerSettings(GroupName = "Work")]
[Authorize]
public class ChargeAppService : ApplicationService
{
private readonly IRepository<Charge, Guid> _chargeRepository;
private readonly IRepository<ChargePay> _chargePayRepository;
private readonly IRepository<PayMode> _payModeRepository;
private readonly IRepository<ChargeBack, Guid> _chargeBackRepository;
private readonly IRepository<ChargeBackPay> _chargeBackPayRepository;
private readonly IRepository<IdentityUser, Guid> _userRepository;
private readonly ICurrentUser _currentUser;
public ChargeAppService(
IRepository<Charge, Guid> chargeRepository,
IRepository<ChargeBack, Guid> chargeBackRepository,
IRepository<ChargePay> chargePayRepository,
IRepository<PayMode> payModeRepository,
IRepository<ChargeBackPay> chargeBackPayRepository,
IRepository<IdentityUser, Guid> userRepository,
ICurrentUser currentUser)
{
_chargeRepository = chargeRepository;
_chargeBackRepository = chargeBackRepository;
_chargePayRepository = chargePayRepository;
_payModeRepository = payModeRepository;
_chargeBackPayRepository = chargeBackPayRepository;
_userRepository = userRepository;
_currentUser = currentUser;
}
/// <summary>
/// 查询收费、退费信息汇总 结算钱展示
/// </summary>
/// <returns></returns>
[HttpPost("api/app/charge/get-charge-and-charge-back-summary")]
public async Task<GetChargeAndChargeBackSummaryDto> GetChargeAndChargeBackSummaryAsync(GetChargeAndChargeBackSummaryRequestDto input)
{
#region 收费
var chargeQuery = from a in await _chargeRepository.GetQueryableAsync()
join b in await _chargePayRepository.GetQueryableAsync() on a.Id equals b.ChargeId
join c in await _payModeRepository.GetQueryableAsync() on b.PayModeId equals c.Id into cc
from ac in cc.DefaultIfEmpty()
join d in await _userRepository.GetQueryableAsync() on a.CreatorId equals d.Id into dd
from ad in dd.DefaultIfEmpty()
select new
{
a,
b,
PayModeName = ac != null ? ac.DisplayName : "",
UserName = ad != null ? ad.UserName : ""
};
if (input.UserIds.Any())
{
chargeQuery = chargeQuery.Where(m => input.UserIds.Contains(m.a.CreatorId.Value));
}
if (!string.IsNullOrWhiteSpace(input.StartDate) && !string.IsNullOrWhiteSpace(input.EndDate))
{
chargeQuery = chargeQuery.Where(m => m.a.CreationTime >= Convert.ToDateTime(input.StartDate)
&& m.a.CreationTime < Convert.ToDateTime(input.EndDate).AddDays(1));
}
//收费归总
var ChargeDetails = chargeQuery.GroupBy(g => g.a.CreatorId).Select(s => new GetChargeAndChargeBackSummary_ChargeDetail
{
UserName = s.FirstOrDefault().UserName,
PayModeDetails = s.GroupBy(gg => gg.b.PayModeId).Select(ss => new GetChargeAndChargeBackSummary_PayModeDetail
{
PayModeName = ss.FirstOrDefault().PayModeName,
Money = Math.Round(ss.Sum(sss => sss.b.ChargeMoney), 2)
}).ToList()
});
#endregion
#region 退费
var chargeBackQuery = from a in await _chargeBackRepository.GetQueryableAsync()
join b in await _chargeBackPayRepository.GetQueryableAsync() on a.Id equals b.ChargeBackId
join c in await _payModeRepository.GetQueryableAsync() on b.PayModeId equals c.Id into cc
from ac in cc.DefaultIfEmpty()
join d in await _userRepository.GetQueryableAsync() on a.CreatorId equals d.Id into dd
from ad in dd.DefaultIfEmpty()
select new
{
a,
b,
PayModeName = ac != null ? ac.DisplayName : "",
UserName = ad != null ? ad.UserName : ""
};
if (input.UserIds.Any())
{
chargeBackQuery = chargeBackQuery.Where(m => input.UserIds.Contains(m.a.CreatorId.Value));
}
if (!string.IsNullOrWhiteSpace(input.StartDate) && !string.IsNullOrWhiteSpace(input.EndDate))
{
chargeBackQuery = chargeBackQuery.Where(m => m.a.CreationTime >= Convert.ToDateTime(input.StartDate)
&& m.a.CreationTime < Convert.ToDateTime(input.EndDate).AddDays(1));
}
//收费归总
var ChargeBackDetails = chargeBackQuery.GroupBy(g => g.a.CreatorId).Select(s => new GetChargeAndChargeBackSummary_ChargeBackDetail
{
UserName = s.FirstOrDefault().UserName,
PayModeDetails = s.GroupBy(gg => gg.b.PayModeId).Select(ss => new GetChargeAndChargeBackSummary_PayModeDetail
{
PayModeName = ss.FirstOrDefault().PayModeName,
Money = Math.Round(ss.Sum(sss => sss.b.BackMoeny), 2)
}).ToList()
});
#endregion
var chargeAndChargeBackSummaryDto = new GetChargeAndChargeBackSummaryDto
{
ChargeBackDetails = ChargeBackDetails.ToList(),
ChargeDetails = ChargeDetails.ToList()
};
return chargeAndChargeBackSummaryDto;
}
/// <summary>
/// 财务结算接口
/// </summary>
/// <returns></returns>
[HttpPost("api/app/charge/charge-and-charge-back-settlement")]
public async Task ChargeAndChargeBackSettlementAsync(ChargeAndChargeBackSettlementRequestDto input)
{
if (_currentUser.Id != null && _currentUser.Id != Guid.Empty)
{
#region 收费
var chargeQuery = (await _chargeRepository.GetQueryableAsync()).Where(m => m.SettleAccountId == null || m.SettleAccountId == Guid.Empty);
if (input.UserIds.Any())
{
chargeQuery = chargeQuery.Where(m => input.UserIds.Contains(m.CreatorId.Value));
}
if (!string.IsNullOrWhiteSpace(input.StartDate) && !string.IsNullOrWhiteSpace(input.EndDate))
{
chargeQuery = chargeQuery.Where(m => m.CreationTime >= Convert.ToDateTime(input.StartDate)
&& m.CreationTime < Convert.ToDateTime(input.EndDate).AddDays(1));
}
var chargeList = chargeQuery.ToList();
if (chargeList.Any())
{
foreach (var charge in chargeList)
{
charge.SettleAccountId = _currentUser.Id;
charge.SettleTime = DateTime.Now;
}
}
#endregion
#region 退费
var chargeBackQuery = (await _chargeBackRepository.GetQueryableAsync()).Where(m => m.SettleAccountId == null || m.SettleAccountId == Guid.Empty);
if (input.UserIds.Any())
{
chargeBackQuery = chargeBackQuery.Where(m => input.UserIds.Contains(m.CreatorId.Value));
}
if (!string.IsNullOrWhiteSpace(input.StartDate) && !string.IsNullOrWhiteSpace(input.EndDate))
{
chargeBackQuery = chargeBackQuery.Where(m => m.CreationTime >= Convert.ToDateTime(input.StartDate)
&& m.CreationTime < Convert.ToDateTime(input.EndDate).AddDays(1));
}
var chargeBackList = chargeBackQuery.ToList();
if (chargeBackList.Any())
{
foreach (var chargeBack in chargeBackList)
{
chargeBack.SettleAccountId = _currentUser.Id;
chargeBack.SettleTime = DateTime.Now;
}
}
#endregion
await _chargeRepository.UpdateManyAsync(chargeList);
await _chargeBackRepository.UpdateManyAsync(chargeBackList);
}
}
}
}
}

24
src/Shentun.Peis.Domain.Shared/Enums/ChargeFlag.cs

@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
namespace Shentun.Peis.Enums
{
public static class ChargeFlag
{
/// <summary>
/// 收费
/// </summary>
[Description("收费")]
public const char Charge = '0';
/// <summary>
/// 退费
/// </summary>
[Description("退费")]
public const char ChargeBack = '1';
}
}

18
src/Shentun.Peis.Domain/DataHelper.cs

@ -357,7 +357,21 @@ namespace Shentun.Peis
return birthday;
}
/// <summary>
/// 保留小数 转换decimal
/// </summary>
/// <param name="value"></param>
/// <param name="decimalLength"></param>
/// <returns></returns>
public static decimal DecimalRetainDecimals(decimal? value, int decimalLength)
{
decimal newValue = 0;
if (value != null)
{
Math.Round(value.Value, decimalLength);
}
return newValue;
}
#region 数据检查
@ -512,7 +526,7 @@ namespace Shentun.Peis
/// <exception cref="ArgumentException"></exception>
public static void CheckDecimalIsNull(decimal? value, string parameterName, string ExceptionMessage = "不能为空")
{
if (value == null )
if (value == null)
{
throw new UserFriendlyException($"{parameterName}{ExceptionMessage}");
}

24
src/Shentun.Peis.Domain/ItemTypes/ItemTypeManager.cs

@ -200,5 +200,29 @@ namespace Shentun.Peis.ItemTypes
}
/// <summary>
/// 获取项目类别下级ID
/// </summary>
/// <param name="itemTypeId"></param>
/// <returns></returns>
public async Task<List<Guid>> GetChildItemTypeIdsAsync(Guid itemTypeId)
{
List<Guid> itmeTypeIds = new List<Guid>();
if (itemTypeId != Guid.Empty)
{
var itemTypeParent = await _repository.FirstOrDefaultAsync(m => m.Id == itemTypeId);
itmeTypeIds = (await _repository.GetListAsync(m => !string.IsNullOrEmpty(m.PathCode)
&& !string.IsNullOrEmpty(itemTypeParent.PathCode)
&& m.PathCode.Contains(itemTypeParent.PathCode))).Select(s => s.Id).ToList();
itmeTypeIds.Add(itemTypeId);
}
return itmeTypeIds;
}
}
}
Loading…
Cancel
Save