Commit 77fe03a4bc987fea7e0c32e87a51f5214b358d23

Authored by “wangming”
1 parent e5e15bcb

feat: 完善开单欠款补缴记录功能

- 新增lq_kd_qkbj表相关实体和DTO文件
- 完善LqKdDeductinfoEntity字段同步
- 优化LqKdKdjlbService中的状态管理
- 使用StatusEnum统一状态值管理
- 修复SqlSugar更新语法问题
- 完善开单创建和作废逻辑
Showing 23 changed files with 626 additions and 25 deletions
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoCrInput.cs
@@ -17,10 +17,10 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo @@ -17,10 +17,10 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo
17 /// 扣减类型 17 /// 扣减类型
18 /// </summary> 18 /// </summary>
19 [Required(ErrorMessage = "扣减类型不能为空")] 19 [Required(ErrorMessage = "扣减类型不能为空")]
20 - public int? DeductType { get; set; } 20 + public string DeductType { get; set; }
21 21
22 /// <summary> 22 /// <summary>
23 - /// 扣减关联ID 23 + /// 扣减品项关联ID
24 /// </summary> 24 /// </summary>
25 [Required(ErrorMessage = "扣减关联ID不能为空")] 25 [Required(ErrorMessage = "扣减关联ID不能为空")]
26 public string DeductId { get; set; } 26 public string DeductId { get; set; }
@@ -28,7 +28,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo @@ -28,7 +28,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo
28 /// <summary> 28 /// <summary>
29 /// 开单id 29 /// 开单id
30 /// </summary> 30 /// </summary>
31 - [Required(ErrorMessage = "开单id不能为空")]  
32 public string BillingId { get; set; } 31 public string BillingId { get; set; }
33 32
34 /// <summary> 33 /// <summary>
@@ -37,5 +36,35 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo @@ -37,5 +36,35 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo
37 [Required(ErrorMessage = "合计金额不能为空")] 36 [Required(ErrorMessage = "合计金额不能为空")]
38 [Range(0.01, 999999.99, ErrorMessage = "合计金额必须在0.01到999999.99之间")] 37 [Range(0.01, 999999.99, ErrorMessage = "合计金额必须在0.01到999999.99之间")]
39 public decimal? Amount { get; set; } 38 public decimal? Amount { get; set; }
  39 +
  40 + /// <summary>
  41 + /// 是否有效
  42 + /// </summary>
  43 + public int? IsEffective { get; set; }
  44 +
  45 + /// <summary>
  46 + /// 单价
  47 + /// </summary>
  48 + public decimal? UnitPrice { get; set; }
  49 +
  50 + /// <summary>
  51 + /// 品项名称
  52 + /// </summary>
  53 + public string ItemName { get; set; }
  54 +
  55 + /// <summary>
  56 + /// 品项id
  57 + /// </summary>
  58 + public string ItemId { get; set; }
  59 +
  60 + /// <summary>
  61 + /// 品项次数
  62 + /// </summary>
  63 + public decimal? ProjectNumber { get; set; }
  64 +
  65 + /// <summary>
  66 + /// 创建时间
  67 + /// </summary>
  68 + public DateTime? CreateTime { get; set; }
40 } 69 }
41 } 70 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoInfoOutput.cs
@@ -36,5 +36,30 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo @@ -36,5 +36,30 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo
36 /// 合计金额 36 /// 合计金额
37 /// </summary> 37 /// </summary>
38 public decimal? Amount { get; set; } 38 public decimal? Amount { get; set; }
  39 +
  40 + /// <summary>
  41 + /// 是否有效
  42 + /// </summary>
  43 + public int? IsEffective { get; set; }
  44 +
  45 + /// <summary>
  46 + /// 单价
  47 + /// </summary>
  48 + public decimal? UnitPrice { get; set; }
  49 +
  50 + /// <summary>
  51 + /// 品项名称
  52 + /// </summary>
  53 + public string ItemName { get; set; }
  54 +
  55 + /// <summary>
  56 + /// 品项id
  57 + /// </summary>
  58 + public string ItemId { get; set; }
  59 +
  60 + /// <summary>
  61 + /// 创建时间
  62 + /// </summary>
  63 + public DateTime? CreateTime { get; set; }
39 } 64 }
40 } 65 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoListOutput.cs
@@ -36,5 +36,30 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo @@ -36,5 +36,30 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo
36 /// 合计金额 36 /// 合计金额
37 /// </summary> 37 /// </summary>
38 public decimal? Amount { get; set; } 38 public decimal? Amount { get; set; }
  39 +
  40 + /// <summary>
  41 + /// 是否有效
  42 + /// </summary>
  43 + public int? IsEffective { get; set; }
  44 +
  45 + /// <summary>
  46 + /// 单价
  47 + /// </summary>
  48 + public decimal? UnitPrice { get; set; }
  49 +
  50 + /// <summary>
  51 + /// 品项名称
  52 + /// </summary>
  53 + public string ItemName { get; set; }
  54 +
  55 + /// <summary>
  56 + /// 品项id
  57 + /// </summary>
  58 + public string ItemId { get; set; }
  59 +
  60 + /// <summary>
  61 + /// 创建时间
  62 + /// </summary>
  63 + public DateTime? CreateTime { get; set; }
39 } 64 }
40 } 65 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoListQueryInput.cs
@@ -31,5 +31,40 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo @@ -31,5 +31,40 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo
31 /// 最大金额 31 /// 最大金额
32 /// </summary> 32 /// </summary>
33 public decimal? MaxAmount { get; set; } 33 public decimal? MaxAmount { get; set; }
  34 +
  35 + /// <summary>
  36 + /// 是否有效
  37 + /// </summary>
  38 + public int? IsEffective { get; set; }
  39 +
  40 + /// <summary>
  41 + /// 品项名称
  42 + /// </summary>
  43 + public string ItemName { get; set; }
  44 +
  45 + /// <summary>
  46 + /// 品项id
  47 + /// </summary>
  48 + public string ItemId { get; set; }
  49 +
  50 + /// <summary>
  51 + /// 最小单价
  52 + /// </summary>
  53 + public decimal? MinUnitPrice { get; set; }
  54 +
  55 + /// <summary>
  56 + /// 最大单价
  57 + /// </summary>
  58 + public decimal? MaxUnitPrice { get; set; }
  59 +
  60 + /// <summary>
  61 + /// 开始创建时间
  62 + /// </summary>
  63 + public DateTime? StartCreateTime { get; set; }
  64 +
  65 + /// <summary>
  66 + /// 结束创建时间
  67 + /// </summary>
  68 + public DateTime? EndCreateTime { get; set; }
34 } 69 }
35 } 70 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbCrInput.cs
@@ -146,6 +146,16 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb @@ -146,6 +146,16 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
146 public string F_FIleUrl { get; set; } 146 public string F_FIleUrl { get; set; }
147 147
148 /// <summary> 148 /// <summary>
  149 + /// 作废关联id
  150 + /// </summary>
  151 + public string cancelRefId { get; set; }
  152 +
  153 + /// <summary>
  154 + /// 作废关联备注
  155 + /// </summary>
  156 + public string cancelRefRemarks { get; set; }
  157 +
  158 + /// <summary>
149 /// 扣款信息 159 /// 扣款信息
150 /// </summary> 160 /// </summary>
151 public List<LqKdDeductinfoCrInput> lqKdKdjlbDeductList { get; set; } 161 public List<LqKdDeductinfoCrInput> lqKdKdjlbDeductList { get; set; }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbInfoOutput.cs
@@ -59,10 +59,11 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb @@ -59,10 +59,11 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
59 /// </summary> 59 /// </summary>
60 public string ckfs { get; set; } 60 public string ckfs { get; set; }
61 61
  62 +
62 /// <summary> 63 /// <summary>
63 - /// 储扣明细 64 + /// 储扣总金额
64 /// </summary> 65 /// </summary>
65 - public string ckmx { get; set; } 66 + public decimal deductAmount { get; set; }
66 67
67 /// <summary> 68 /// <summary>
68 /// 付款方式 69 /// 付款方式
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdPxmx/LqKdPxmxCrInput.cs
@@ -54,14 +54,14 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb @@ -54,14 +54,14 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
54 public decimal projectNumber { get; set; } 54 public decimal projectNumber { get; set; }
55 55
56 /// <summary> 56 /// <summary>
57 - /// 是否有效 57 + /// 来源类型
58 /// </summary> 58 /// </summary>
59 - public int? isEnabled { get; set; } = 0; 59 + public string sourceType { get; set; }
60 60
61 /// <summary> 61 /// <summary>
62 - /// 来源类型 62 + /// 备注
63 /// </summary> 63 /// </summary>
64 - public string sourceType { get; set; } 64 + public string remark { get; set; }
65 65
66 /// <summary> 66 /// <summary>
67 /// 健康师业绩 67 /// 健康师业绩
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdPxmx/LqKdPxmxInfoOutput.cs
@@ -68,6 +68,12 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb @@ -68,6 +68,12 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
68 /// </summary> 68 /// </summary>
69 public decimal actualPrice { get; set; } 69 public decimal actualPrice { get; set; }
70 70
  71 +
  72 + /// <summary>
  73 + /// 备注
  74 + /// </summary>
  75 + public string remark { get; set; }
  76 +
71 /// <summary> 77 /// <summary>
72 /// 健康师业绩列表 78 /// 健康师业绩列表
73 /// </summary> 79 /// </summary>
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdQkbj/LqKdQkbjCrInput.cs 0 → 100644
  1 +using System;
  2 +using System.ComponentModel.DataAnnotations;
  3 +
  4 +namespace NCC.Extend.Entitys.Dto.LqKdQkbj
  5 +{
  6 + /// <summary>
  7 + /// 开单欠款补缴记录创建输入
  8 + /// </summary>
  9 + public class LqKdQkbjCrInput
  10 + {
  11 + /// <summary>
  12 + /// 开单ID
  13 + /// </summary>
  14 + [Required(ErrorMessage = "开单ID不能为空")]
  15 + public string BillingId { get; set; }
  16 +
  17 + /// <summary>
  18 + /// 补缴金额
  19 + /// </summary>
  20 + [Required(ErrorMessage = "补缴金额不能为空")]
  21 + [Range(0.01, 999999.99, ErrorMessage = "补缴金额必须在0.01到999999.99之间")]
  22 + public decimal PaymentAmount { get; set; }
  23 +
  24 + /// <summary>
  25 + /// 补缴方式
  26 + /// </summary>
  27 + [Required(ErrorMessage = "补缴方式不能为空")]
  28 + public string PaymentMethod { get; set; }
  29 +
  30 + /// <summary>
  31 + /// 补缴时间
  32 + /// </summary>
  33 + [Required(ErrorMessage = "补缴时间不能为空")]
  34 + public DateTime PaymentTime { get; set; }
  35 +
  36 + /// <summary>
  37 + /// 补缴操作人
  38 + /// </summary>
  39 + public string PaymentUser { get; set; }
  40 +
  41 + /// <summary>
  42 + /// 补缴账户
  43 + /// </summary>
  44 + public string PaymentAccount { get; set; }
  45 +
  46 + /// <summary>
  47 + /// 补缴凭证号
  48 + /// </summary>
  49 + public string PaymentReference { get; set; }
  50 +
  51 + /// <summary>
  52 + /// 补缴备注
  53 + /// </summary>
  54 + [StringLength(500, ErrorMessage = "补缴备注不能超过500个字符")]
  55 + public string Remark { get; set; }
  56 + }
  57 +}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdQkbj/LqKdQkbjInfoOutput.cs 0 → 100644
  1 +using System;
  2 +
  3 +namespace NCC.Extend.Entitys.Dto.LqKdQkbj
  4 +{
  5 + /// <summary>
  6 + /// 开单欠款补缴记录详情输出
  7 + /// </summary>
  8 + public class LqKdQkbjInfoOutput
  9 + {
  10 + /// <summary>
  11 + /// 主键
  12 + /// </summary>
  13 + public string Id { get; set; }
  14 +
  15 + /// <summary>
  16 + /// 开单ID
  17 + /// </summary>
  18 + public string BillingId { get; set; }
  19 +
  20 + /// <summary>
  21 + /// 补缴金额
  22 + /// </summary>
  23 + public decimal PaymentAmount { get; set; }
  24 +
  25 + /// <summary>
  26 + /// 补缴方式
  27 + /// </summary>
  28 + public string PaymentMethod { get; set; }
  29 +
  30 + /// <summary>
  31 + /// 补缴方式名称
  32 + /// </summary>
  33 + public string PaymentMethodName { get; set; }
  34 +
  35 + /// <summary>
  36 + /// 补缴时间
  37 + /// </summary>
  38 + public DateTime PaymentTime { get; set; }
  39 +
  40 + /// <summary>
  41 + /// 补缴操作人
  42 + /// </summary>
  43 + public string PaymentUser { get; set; }
  44 +
  45 + /// <summary>
  46 + /// 补缴操作人姓名
  47 + /// </summary>
  48 + public string PaymentUserName { get; set; }
  49 +
  50 + /// <summary>
  51 + /// 补缴账户
  52 + /// </summary>
  53 + public string PaymentAccount { get; set; }
  54 +
  55 + /// <summary>
  56 + /// 补缴凭证号
  57 + /// </summary>
  58 + public string PaymentReference { get; set; }
  59 +
  60 + /// <summary>
  61 + /// 补缴备注
  62 + /// </summary>
  63 + public string Remark { get; set; }
  64 +
  65 + /// <summary>
  66 + /// 创建时间
  67 + /// </summary>
  68 + public DateTime CreateTime { get; set; }
  69 +
  70 + /// <summary>
  71 + /// 更新时间
  72 + /// </summary>
  73 + public DateTime UpdateTime { get; set; }
  74 +
  75 + /// <summary>
  76 + /// 是否有效
  77 + /// </summary>
  78 + public int IsEffective { get; set; }
  79 + }
  80 +}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdQkbj/LqKdQkbjListOutput.cs 0 → 100644
  1 +using System;
  2 +
  3 +namespace NCC.Extend.Entitys.Dto.LqKdQkbj
  4 +{
  5 + /// <summary>
  6 + /// 开单欠款补缴记录列表输出
  7 + /// </summary>
  8 + public class LqKdQkbjListOutput
  9 + {
  10 + /// <summary>
  11 + /// 主键
  12 + /// </summary>
  13 + public string Id { get; set; }
  14 +
  15 + /// <summary>
  16 + /// 开单ID
  17 + /// </summary>
  18 + public string BillingId { get; set; }
  19 +
  20 + /// <summary>
  21 + /// 补缴金额
  22 + /// </summary>
  23 + public decimal PaymentAmount { get; set; }
  24 +
  25 + /// <summary>
  26 + /// 补缴方式
  27 + /// </summary>
  28 + public string PaymentMethod { get; set; }
  29 +
  30 + /// <summary>
  31 + /// 补缴方式名称
  32 + /// </summary>
  33 + public string PaymentMethodName { get; set; }
  34 +
  35 + /// <summary>
  36 + /// 补缴时间
  37 + /// </summary>
  38 + public DateTime PaymentTime { get; set; }
  39 +
  40 + /// <summary>
  41 + /// 补缴操作人
  42 + /// </summary>
  43 + public string PaymentUser { get; set; }
  44 +
  45 + /// <summary>
  46 + /// 补缴操作人姓名
  47 + /// </summary>
  48 + public string PaymentUserName { get; set; }
  49 +
  50 + /// <summary>
  51 + /// 补缴账户
  52 + /// </summary>
  53 + public string PaymentAccount { get; set; }
  54 +
  55 + /// <summary>
  56 + /// 补缴凭证号
  57 + /// </summary>
  58 + public string PaymentReference { get; set; }
  59 +
  60 + /// <summary>
  61 + /// 补缴备注
  62 + /// </summary>
  63 + public string Remark { get; set; }
  64 +
  65 + /// <summary>
  66 + /// 创建时间
  67 + /// </summary>
  68 + public DateTime CreateTime { get; set; }
  69 +
  70 + /// <summary>
  71 + /// 是否有效
  72 + /// </summary>
  73 + public int IsEffective { get; set; }
  74 + }
  75 +}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdQkbj/LqKdQkbjListQueryInput.cs 0 → 100644
  1 +using System;
  2 +
  3 +namespace NCC.Extend.Entitys.Dto.LqKdQkbj
  4 +{
  5 + /// <summary>
  6 + /// 开单欠款补缴记录列表查询输入
  7 + /// </summary>
  8 + public class LqKdQkbjListQueryInput
  9 + {
  10 + /// <summary>
  11 + /// 开单ID
  12 + /// </summary>
  13 + public string BillingId { get; set; }
  14 +
  15 + /// <summary>
  16 + /// 补缴方式
  17 + /// </summary>
  18 + public string PaymentMethod { get; set; }
  19 +
  20 + /// <summary>
  21 + /// 补缴操作人
  22 + /// </summary>
  23 + public string PaymentUser { get; set; }
  24 +
  25 + /// <summary>
  26 + /// 最小补缴金额
  27 + /// </summary>
  28 + public decimal? MinPaymentAmount { get; set; }
  29 +
  30 + /// <summary>
  31 + /// 最大补缴金额
  32 + /// </summary>
  33 + public decimal? MaxPaymentAmount { get; set; }
  34 +
  35 + /// <summary>
  36 + /// 开始补缴时间
  37 + /// </summary>
  38 + public DateTime? StartPaymentTime { get; set; }
  39 +
  40 + /// <summary>
  41 + /// 结束补缴时间
  42 + /// </summary>
  43 + public DateTime? EndPaymentTime { get; set; }
  44 +
  45 + /// <summary>
  46 + /// 是否有效
  47 + /// </summary>
  48 + public int? IsEffective { get; set; }
  49 +
  50 + /// <summary>
  51 + /// 补缴凭证号
  52 + /// </summary>
  53 + public string PaymentReference { get; set; }
  54 + }
  55 +}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdQkbj/LqKdQkbjUpInput.cs 0 → 100644
  1 +using System;
  2 +using System.ComponentModel.DataAnnotations;
  3 +
  4 +namespace NCC.Extend.Entitys.Dto.LqKdQkbj
  5 +{
  6 + /// <summary>
  7 + /// 开单欠款补缴记录更新输入
  8 + /// </summary>
  9 + public class LqKdQkbjUpInput : LqKdQkbjCrInput
  10 + {
  11 + /// <summary>
  12 + /// 主键
  13 + /// </summary>
  14 + [Required(ErrorMessage = "主键不能为空")]
  15 + public string Id { get; set; }
  16 + }
  17 +}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/MemberRemainingItemsOutput.cs
@@ -92,6 +92,13 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk @@ -92,6 +92,13 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk
92 public decimal RefundedCount { get; set; } 92 public decimal RefundedCount { get; set; }
93 93
94 /// <summary> 94 /// <summary>
  95 + /// 已储扣数量
  96 + /// </summary>
  97 + /// <remarks>该品项已储扣的次数</remarks>
  98 + /// <example>0</example>
  99 + public decimal DeductCount { get; set; }
  100 +
  101 + /// <summary>
95 /// 剩余数量 102 /// 剩余数量
96 /// </summary> 103 /// </summary>
97 /// <remarks>总购买数量减去已消费数量减去已退卡数量</remarks> 104 /// <remarks>总购买数量减去已消费数量减去已退卡数量</remarks>
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_deductinfo/LqKdDeductinfoEntity.cs
@@ -20,7 +20,7 @@ namespace NCC.Extend.Entitys.lq_kd_deductinfo @@ -20,7 +20,7 @@ namespace NCC.Extend.Entitys.lq_kd_deductinfo
20 /// 扣减类型 20 /// 扣减类型
21 /// </summary> 21 /// </summary>
22 [SugarColumn(ColumnName = "F_DeductType")] 22 [SugarColumn(ColumnName = "F_DeductType")]
23 - public int? DeductType { get; set; } 23 + public string DeductType { get; set; }
24 24
25 /// <summary> 25 /// <summary>
26 /// 扣减关联ID 26 /// 扣减关联ID
@@ -46,5 +46,35 @@ namespace NCC.Extend.Entitys.lq_kd_deductinfo @@ -46,5 +46,35 @@ namespace NCC.Extend.Entitys.lq_kd_deductinfo
46 /// </summary> 46 /// </summary>
47 [SugarColumn(ColumnName = "F_IsEffective")] 47 [SugarColumn(ColumnName = "F_IsEffective")]
48 public int? IsEffective { get; set; } 48 public int? IsEffective { get; set; }
  49 +
  50 + /// <summary>
  51 + /// 单价
  52 + /// </summary>
  53 + [SugarColumn(ColumnName = "F_UnitPrice")]
  54 + public decimal? UnitPrice { get; set; }
  55 +
  56 + /// <summary>
  57 + /// 品项名称
  58 + /// </summary>
  59 + [SugarColumn(ColumnName = "F_ItemName")]
  60 + public string ItemName { get; set; }
  61 +
  62 + /// <summary>
  63 + /// 品项id
  64 + /// </summary>
  65 + [SugarColumn(ColumnName = "F_ItemId")]
  66 + public string ItemId { get; set; }
  67 +
  68 + /// <summary>
  69 + /// 创建时间
  70 + /// </summary>
  71 + [SugarColumn(ColumnName = "F_CreateTime")]
  72 + public DateTime? CreateTime { get; set; }
  73 +
  74 + /// <summary>
  75 + /// 项目数量
  76 + /// </summary>
  77 + [SugarColumn(ColumnName = "F_ProjectNumber")]
  78 + public decimal? ProjectNumber { get; set; }
49 } 79 }
50 } 80 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_kdjlb/LqKdKdjlbEntity.cs
@@ -204,5 +204,18 @@ namespace NCC.Extend.Entitys.lq_kd_kdjlb @@ -204,5 +204,18 @@ namespace NCC.Extend.Entitys.lq_kd_kdjlb
204 [SugarColumn(ColumnName = "F_IsEffective")] 204 [SugarColumn(ColumnName = "F_IsEffective")]
205 public int IsEffective { get; set; } = 1; 205 public int IsEffective { get; set; } = 1;
206 206
  207 +
  208 + /// <summary>
  209 + /// 作废关联id
  210 + /// </summary>
  211 + [SugarColumn(ColumnName = "F_CancelRefId")]
  212 + public string CancelRefId { get; set; }
  213 +
  214 + /// <summary>
  215 + /// 作废关联备注
  216 + /// </summary>
  217 + [SugarColumn(ColumnName = "F_CancelRefRemarks")]
  218 + public string CancelRefRemarks { get; set; }
  219 +
207 } 220 }
208 } 221 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_pxmx/LqKdPxmxEntity.cs
@@ -60,9 +60,6 @@ namespace NCC.Extend.Entitys.lq_kd_pxmx @@ -60,9 +60,6 @@ namespace NCC.Extend.Entitys.lq_kd_pxmx
60 [SugarColumn(ColumnName = "F_CreateTIme")] 60 [SugarColumn(ColumnName = "F_CreateTIme")]
61 public DateTime? CreateTIme { get; set; } 61 public DateTime? CreateTIme { get; set; }
62 62
63 -  
64 -  
65 -  
66 /// <summary> 63 /// <summary>
67 /// 项目次数 64 /// 项目次数
68 /// </summary> 65 /// </summary>
@@ -98,5 +95,11 @@ namespace NCC.Extend.Entitys.lq_kd_pxmx @@ -98,5 +95,11 @@ namespace NCC.Extend.Entitys.lq_kd_pxmx
98 /// </summary> 95 /// </summary>
99 [SugarColumn(ColumnName = "F_IsEffective")] 96 [SugarColumn(ColumnName = "F_IsEffective")]
100 public int IsEffective { get; set; } = 1; 97 public int IsEffective { get; set; } = 1;
  98 +
  99 + /// <summary>
  100 + /// 备注
  101 + /// </summary>
  102 + [SugarColumn(ColumnName = "F_Remark")]
  103 + public string Remark { get; set; }
101 } 104 }
102 } 105 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_qkbj/LqKdQkbjEntity.cs 0 → 100644
  1 +using System;
  2 +using NCC.Common.Const;
  3 +using SqlSugar;
  4 +
  5 +namespace NCC.Extend.Entitys.lq_kd_qkbj
  6 +{
  7 + /// <summary>
  8 + /// 开单欠款补缴记录表
  9 + /// </summary>
  10 + [SugarTable("lq_kd_qkbj")]
  11 + [Tenant(ClaimConst.TENANT_ID)]
  12 + public class LqKdQkbjEntity
  13 + {
  14 + /// <summary>
  15 + /// 主键
  16 + /// </summary>
  17 + [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)]
  18 + public string Id { get; set; }
  19 +
  20 + /// <summary>
  21 + /// 开单ID
  22 + /// </summary>
  23 + [SugarColumn(ColumnName = "F_BillingId")]
  24 + public string BillingId { get; set; }
  25 +
  26 + /// <summary>
  27 + /// 补缴金额
  28 + /// </summary>
  29 + [SugarColumn(ColumnName = "F_PaymentAmount")]
  30 + public decimal PaymentAmount { get; set; }
  31 +
  32 + /// <summary>
  33 + /// 补缴方式
  34 + /// </summary>
  35 + [SugarColumn(ColumnName = "F_PaymentMethod")]
  36 + public string PaymentMethod { get; set; }
  37 +
  38 + /// <summary>
  39 + /// 补缴时间
  40 + /// </summary>
  41 + [SugarColumn(ColumnName = "F_PaymentTime")]
  42 + public DateTime PaymentTime { get; set; }
  43 +
  44 + /// <summary>
  45 + /// 补缴操作人
  46 + /// </summary>
  47 + [SugarColumn(ColumnName = "F_PaymentUser")]
  48 + public string PaymentUser { get; set; }
  49 +
  50 + /// <summary>
  51 + /// 补缴账户
  52 + /// </summary>
  53 + [SugarColumn(ColumnName = "F_PaymentAccount")]
  54 + public string PaymentAccount { get; set; }
  55 +
  56 + /// <summary>
  57 + /// 补缴凭证号
  58 + /// </summary>
  59 + [SugarColumn(ColumnName = "F_PaymentReference")]
  60 + public string PaymentReference { get; set; }
  61 +
  62 + /// <summary>
  63 + /// 补缴备注
  64 + /// </summary>
  65 + [SugarColumn(ColumnName = "F_Remark")]
  66 + public string Remark { get; set; }
  67 +
  68 + /// <summary>
  69 + /// 创建时间
  70 + /// </summary>
  71 + [SugarColumn(ColumnName = "F_CreateTime")]
  72 + public DateTime CreateTime { get; set; }
  73 +
  74 + /// <summary>
  75 + /// 更新时间
  76 + /// </summary>
  77 + [SugarColumn(ColumnName = "F_UpdateTime")]
  78 + public DateTime UpdateTime { get; set; }
  79 +
  80 + /// <summary>
  81 + /// 是否有效
  82 + /// </summary>
  83 + [SugarColumn(ColumnName = "F_IsEffective")]
  84 + public int IsEffective { get; set; } = 1;
  85 + }
  86 +}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Enum/StatusEnum.cs
@@ -8,16 +8,16 @@ namespace NCC.Extend.Entitys.Enum @@ -8,16 +8,16 @@ namespace NCC.Extend.Entitys.Enum
8 public enum StatusEnum 8 public enum StatusEnum
9 { 9 {
10 /// <summary> 10 /// <summary>
11 - /// 11 + ///
12 /// </summary> 12 /// </summary>
13 - [Description("有效")]  
14 - 有效 = 0, 13 + [Description("无效")]
  14 + 无效 = -1,
15 15
16 /// <summary> 16 /// <summary>
17 - /// 17 + ///
18 /// </summary> 18 /// </summary>
19 - [Description("无效")]  
20 - 无效 = 1, 19 + [Description("有效")]
  20 + 有效 = 1,
21 21
22 /// <summary> 22 /// <summary>
23 /// 删除 23 /// 删除
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
@@ -136,6 +136,7 @@ namespace NCC.Extend.LqKdKdjlb @@ -136,6 +136,7 @@ namespace NCC.Extend.LqKdKdjlb
136 createTime = pxmx.CreateTIme, 136 createTime = pxmx.CreateTIme,
137 totalPrice = pxmx.TotalPrice, 137 totalPrice = pxmx.TotalPrice,
138 actualPrice = pxmx.ActualPrice, 138 actualPrice = pxmx.ActualPrice,
  139 + remark = pxmx.Remark,
139 }; 140 };
140 141
141 // 关联该品项的健康师业绩 142 // 关联该品项的健康师业绩
@@ -258,10 +259,33 @@ namespace NCC.Extend.LqKdKdjlb @@ -258,10 +259,33 @@ namespace NCC.Extend.LqKdKdjlb
258 entity.Id = YitIdHelper.NextId().ToString(); 259 entity.Id = YitIdHelper.NextId().ToString();
259 entity.CreateTime = DateTime.Now; 260 entity.CreateTime = DateTime.Now;
260 entity.UpdateTime = DateTime.Now; 261 entity.UpdateTime = DateTime.Now;
  262 + entity.IsEffective = StatusEnum.有效.GetHashCode();
261 try 263 try
262 { 264 {
263 //开启事务 265 //开启事务
264 _db.BeginTran(); 266 _db.BeginTran();
  267 + //判断是否有作废关联id
  268 + if (!string.IsNullOrEmpty(input.cancelRefId))
  269 + {
  270 + //查询作废关联id
  271 + var cancelRefEntity = await _db.Queryable<LqKdKdjlbEntity>().FirstAsync(p => p.Id == input.cancelRefId);
  272 + if (cancelRefEntity == null)
  273 + {
  274 + throw NCCException.Oh("作废关联id不存在");
  275 + }
  276 + //将作废关联id的IsEffective设置为0
  277 + cancelRefEntity.IsEffective = StatusEnum.无效.GetHashCode();
  278 + await _db.Updateable(cancelRefEntity).ExecuteCommandAsync();
  279 + //把品项明细表的IsEffective设置为0
  280 + await _db.Updateable<LqKdPxmxEntity>().Where(p => p.Glkdbh == input.cancelRefId).UpdateColumns(p => new LqKdPxmxEntity { IsEffective = StatusEnum.无效.GetHashCode() }).ExecuteCommandAsync();
  281 + //把健康师业绩表的IsEffective设置为0
  282 + await _db.Updateable<LqKdJksyjEntity>().Where(p => p.Glkdbh == input.cancelRefId).UpdateColumns(p => new LqKdJksyjEntity { IsEffective = StatusEnum.无效.GetHashCode() }).ExecuteCommandAsync();
  283 + //把科技部老师业绩表的IsEffective设置为0
  284 + await _db.Updateable<LqKdKjbsyjEntity>().Where(p => p.Glkdbh == input.cancelRefId).UpdateColumns(p => new LqKdKjbsyjEntity { IsEffective = StatusEnum.无效.GetHashCode() }).ExecuteCommandAsync();
  285 + //把扣款信息表的IsEffective设置为0
  286 + await _db.Updateable<LqKdDeductinfoEntity>().Where(p => p.BillingId == input.cancelRefId).UpdateColumns(p => new LqKdDeductinfoEntity { IsEffective = StatusEnum.无效.GetHashCode() }).ExecuteCommandAsync();
  287 + }
  288 +
265 //新增开单记录表记录 289 //新增开单记录表记录
266 entity.CreateUser = userInfo.userId; 290 entity.CreateUser = userInfo.userId;
267 entity.DeductAmount = input.lqKdKdjlbDeductList.Sum(x => x.Amount ?? 0);//计算储扣总金额 291 entity.DeductAmount = input.lqKdKdjlbDeductList.Sum(x => x.Amount ?? 0);//计算储扣总金额
@@ -282,6 +306,12 @@ namespace NCC.Extend.LqKdKdjlb @@ -282,6 +306,12 @@ namespace NCC.Extend.LqKdKdjlb
282 DeductId = item.DeductId, 306 DeductId = item.DeductId,
283 DeductType = item.DeductType, 307 DeductType = item.DeductType,
284 Amount = item.Amount, 308 Amount = item.Amount,
  309 + ProjectNumber = item.ProjectNumber,
  310 + UnitPrice = item.UnitPrice,
  311 + ItemName = item.ItemName,
  312 + ItemId = item.ItemId,
  313 + IsEffective = StatusEnum.有效.GetHashCode(), // 设置为有效
  314 + CreateTime = DateTime.Now, // 设置创建时间
285 }; 315 };
286 allDeductEntities.Add(lqKdDeductEntity); 316 allDeductEntities.Add(lqKdDeductEntity);
287 } 317 }
@@ -296,7 +326,7 @@ namespace NCC.Extend.LqKdKdjlb @@ -296,7 +326,7 @@ namespace NCC.Extend.LqKdKdjlb
296 Yjsj = input.kdrq, 326 Yjsj = input.kdrq,
297 CreateTIme = DateTime.Now, 327 CreateTIme = DateTime.Now,
298 MemberId = entity.Kdhy, 328 MemberId = entity.Kdhy,
299 - IsEnabled = 0, 329 + IsEnabled = StatusEnum.有效.GetHashCode(),
300 ProjectNumber = item.projectNumber, 330 ProjectNumber = item.projectNumber,
301 TotalPrice = (decimal)(item.pxjg * item.projectNumber), 331 TotalPrice = (decimal)(item.pxjg * item.projectNumber),
302 Px = item.px, 332 Px = item.px,
@@ -304,6 +334,8 @@ namespace NCC.Extend.LqKdKdjlb @@ -304,6 +334,8 @@ namespace NCC.Extend.LqKdKdjlb
304 Pxjg = item.pxjg, 334 Pxjg = item.pxjg,
305 SourceType = item.sourceType, 335 SourceType = item.sourceType,
306 ActualPrice = item.actualPrice, 336 ActualPrice = item.actualPrice,
  337 + Remark = item.remark,
  338 + IsEffective = StatusEnum.有效.GetHashCode(),
307 }; 339 };
308 allPxmxEntities.Add(lqKdPxmxEntity); 340 allPxmxEntities.Add(lqKdPxmxEntity);
309 341
@@ -325,6 +357,7 @@ namespace NCC.Extend.LqKdKdjlb @@ -325,6 +357,7 @@ namespace NCC.Extend.LqKdKdjlb
325 Yjsj = input.kdrq, 357 Yjsj = input.kdrq,
326 Jsj_id = ijks_tem.jsj_id, 358 Jsj_id = ijks_tem.jsj_id,
327 Kdpxid = lqKdPxmxEntity.Id, 359 Kdpxid = lqKdPxmxEntity.Id,
  360 + IsEffective = StatusEnum.有效.GetHashCode(),
328 }); 361 });
329 } 362 }
330 } 363 }
@@ -345,6 +378,7 @@ namespace NCC.Extend.LqKdKdjlb @@ -345,6 +378,7 @@ namespace NCC.Extend.LqKdKdjlb
345 Kjblsyj = ikjbs_tem.kjblsyj, 378 Kjblsyj = ikjbs_tem.kjblsyj,
346 Yjsj = input.kdrq, 379 Yjsj = input.kdrq,
347 Kdpxid = lqKdPxmxEntity.Id, 380 Kdpxid = lqKdPxmxEntity.Id,
  381 + IsEffective = StatusEnum.有效.GetHashCode(),
348 } 382 }
349 ); 383 );
350 } 384 }
@@ -352,6 +386,7 @@ namespace NCC.Extend.LqKdKdjlb @@ -352,6 +386,7 @@ namespace NCC.Extend.LqKdKdjlb
352 } 386 }
353 387
354 388
  389 +
355 //通过会员id查询会员信息 390 //通过会员id查询会员信息
356 var memberInfo = await _db.Queryable<LqKhxxEntity>().Where(u => u.Id == entity.Kdhy).FirstAsync(); 391 var memberInfo = await _db.Queryable<LqKhxxEntity>().Where(u => u.Id == entity.Kdhy).FirstAsync();
357 //通过开单记录表查询这个会员开单金额 392 //通过开单记录表查询这个会员开单金额
@@ -1263,7 +1298,7 @@ namespace NCC.Extend.LqKdKdjlb @@ -1263,7 +1298,7 @@ namespace NCC.Extend.LqKdKdjlb
1263 //关闭事务 1298 //关闭事务
1264 _db.CommitTran(); 1299 _db.CommitTran();
1265 } 1300 }
1266 - catch (Exception ex) when (!(ex is NCCException)) 1301 + catch (Exception)
1267 { 1302 {
1268 //回滚事务 1303 //回滚事务
1269 _db.RollbackTran(); 1304 _db.RollbackTran();
@@ -1440,7 +1475,7 @@ namespace NCC.Extend.LqKdKdjlb @@ -1440,7 +1475,7 @@ namespace NCC.Extend.LqKdKdjlb
1440 importTime = DateTime.Now 1475 importTime = DateTime.Now
1441 }; 1476 };
1442 } 1477 }
1443 - catch (Exception ex) when (!(ex is NCCException)) 1478 + catch (Exception ex)
1444 { 1479 {
1445 _db.RollbackTran(); 1480 _db.RollbackTran();
1446 throw NCCException.Oh($"导入历史会员权益数据失败: {ex.Message}"); 1481 throw NCCException.Oh($"导入历史会员权益数据失败: {ex.Message}");
netcore/src/Modularity/Extend/NCC.Extend/LqKhxxService.cs
@@ -34,6 +34,7 @@ using NCC.FriendlyException; @@ -34,6 +34,7 @@ using NCC.FriendlyException;
34 using NCC.JsonSerialization; 34 using NCC.JsonSerialization;
35 using SqlSugar; 35 using SqlSugar;
36 using Yitter.IdGenerator; 36 using Yitter.IdGenerator;
  37 +using NCC.Extend.Entitys.lq_kd_deductinfo;
37 38
38 namespace NCC.Extend.LqKhxx 39 namespace NCC.Extend.LqKhxx
39 { 40 {
@@ -578,6 +579,17 @@ namespace NCC.Extend.LqKhxx @@ -578,6 +579,17 @@ namespace NCC.Extend.LqKhxx
578 }) 579 })
579 .ToListAsync(); 580 .ToListAsync();
580 581
  582 + //查询储扣数据
  583 + var deductData = await _db.Queryable<LqKdDeductinfoEntity>()
  584 + .Where(x => baseItems.Select(b => b.Id).Contains(x.DeductId))
  585 + .GroupBy(x => x.DeductId)
  586 + .Select(x => new
  587 + {
  588 + BillingItemId = x.DeductId,
  589 + TotalDeduct = SqlFunc.AggregateSum(x.Amount)
  590 + })
  591 + .ToListAsync();
  592 +
581 // 组装结果 593 // 组装结果
582 var remainingItems = baseItems.Select(item => new RemainingItemInfo 594 var remainingItems = baseItems.Select(item => new RemainingItemInfo
583 { 595 {
@@ -589,12 +601,13 @@ namespace NCC.Extend.LqKhxx @@ -589,12 +601,13 @@ namespace NCC.Extend.LqKhxx
589 TotalPurchased = item.ProjectNumber, 601 TotalPurchased = item.ProjectNumber,
590 ConsumedCount = consumedData.FirstOrDefault(c => c.BillingItemId == item.Id)?.TotalConsumed ?? 0, 602 ConsumedCount = consumedData.FirstOrDefault(c => c.BillingItemId == item.Id)?.TotalConsumed ?? 0,
591 RefundedCount = refundedData.FirstOrDefault(r => r.BillingItemId == item.Id)?.TotalRefunded ?? 0, 603 RefundedCount = refundedData.FirstOrDefault(r => r.BillingItemId == item.Id)?.TotalRefunded ?? 0,
  604 + DeductCount = deductData.FirstOrDefault(d => d.BillingItemId == item.Id)?.TotalDeduct ?? 0,
592 }).ToList(); 605 }).ToList();
593 606
594 // 计算剩余数量 607 // 计算剩余数量
595 foreach (var item in remainingItems) 608 foreach (var item in remainingItems)
596 { 609 {
597 - item.RemainingCount = item.TotalPurchased - item.ConsumedCount - item.RefundedCount; 610 + item.RemainingCount = item.TotalPurchased - item.ConsumedCount - item.RefundedCount - item.DeductCount;
598 } 611 }
599 return new MemberRemainingItemsOutput 612 return new MemberRemainingItemsOutput
600 { 613 {
netcore/src/Modularity/Extend/NCC.Extend/Utils/LqKdKdjlbStringGenerator.cs
@@ -66,7 +66,7 @@ namespace NCC.Extend.Utils @@ -66,7 +66,7 @@ namespace NCC.Extend.Utils
66 sb.AppendLine($"⏩欠款: {entity.qk}"); 66 sb.AppendLine($"⏩欠款: {entity.qk}");
67 67
68 // 抵扣: 68 // 抵扣:
69 - sb.AppendLine($"⏩抵扣:{entity.ckmx ?? "无"}"); 69 + sb.AppendLine($"⏩抵扣:{entity.deductAmount}");
70 70
71 // 来源:售后 71 // 来源:售后
72 sb.AppendLine($"⏩来源:{entity.khly ?? "无"}"); 72 sb.AppendLine($"⏩来源:{entity.khly ?? "无"}");
netcore/src/Modularity/Extend/NCC.Extend/Utils/WeChatBotTestController.cs
@@ -78,7 +78,6 @@ namespace NCC.Extend.Utils @@ -78,7 +78,6 @@ namespace NCC.Extend.Utils
78 zdyj = 1000, 78 zdyj = 1000,
79 sfyj = 1000, 79 sfyj = 1000,
80 qk = 0, 80 qk = 0,
81 - ckmx = "无",  
82 khly = "测试来源", 81 khly = "测试来源",
83 sfskdd = "无", 82 sfskdd = "无",
84 jj = "这是一条测试开单记录", 83 jj = "这是一条测试开单记录",