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 17 /// 扣减类型
18 18 /// </summary>
19 19 [Required(ErrorMessage = "扣减类型不能为空")]
20   - public int? DeductType { get; set; }
  20 + public string DeductType { get; set; }
21 21  
22 22 /// <summary>
23   - /// 扣减关联ID
  23 + /// 扣减品项关联ID
24 24 /// </summary>
25 25 [Required(ErrorMessage = "扣减关联ID不能为空")]
26 26 public string DeductId { get; set; }
... ... @@ -28,7 +28,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo
28 28 /// <summary>
29 29 /// 开单id
30 30 /// </summary>
31   - [Required(ErrorMessage = "开单id不能为空")]
32 31 public string BillingId { get; set; }
33 32  
34 33 /// <summary>
... ... @@ -37,5 +36,35 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo
37 36 [Required(ErrorMessage = "合计金额不能为空")]
38 37 [Range(0.01, 999999.99, ErrorMessage = "合计金额必须在0.01到999999.99之间")]
39 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 36 /// 合计金额
37 37 /// </summary>
38 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 36 /// 合计金额
37 37 /// </summary>
38 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 31 /// 最大金额
32 32 /// </summary>
33 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 146 public string F_FIleUrl { get; set; }
147 147  
148 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 160 /// </summary>
151 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 59 /// </summary>
60 60 public string ckfs { get; set; }
61 61  
  62 +
62 63 /// <summary>
63   - /// 储扣明细
  64 + /// 储扣总金额
64 65 /// </summary>
65   - public string ckmx { get; set; }
  66 + public decimal deductAmount { get; set; }
66 67  
67 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 54 public decimal projectNumber { get; set; }
55 55  
56 56 /// <summary>
57   - /// 是否有效
  57 + /// 来源类型
58 58 /// </summary>
59   - public int? isEnabled { get; set; } = 0;
  59 + public string sourceType { get; set; }
60 60  
61 61 /// <summary>
62   - /// 来源类型
  62 + /// 备注
63 63 /// </summary>
64   - public string sourceType { get; set; }
  64 + public string remark { get; set; }
65 65  
66 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 68 /// </summary>
69 69 public decimal actualPrice { get; set; }
70 70  
  71 +
  72 + /// <summary>
  73 + /// 备注
  74 + /// </summary>
  75 + public string remark { get; set; }
  76 +
71 77 /// <summary>
72 78 /// 健康师业绩列表
73 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 92 public decimal RefundedCount { get; set; }
93 93  
94 94 /// <summary>
  95 + /// 已储扣数量
  96 + /// </summary>
  97 + /// <remarks>该品项已储扣的次数</remarks>
  98 + /// <example>0</example>
  99 + public decimal DeductCount { get; set; }
  100 +
  101 + /// <summary>
95 102 /// 剩余数量
96 103 /// </summary>
97 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 20 /// 扣减类型
21 21 /// </summary>
22 22 [SugarColumn(ColumnName = "F_DeductType")]
23   - public int? DeductType { get; set; }
  23 + public string DeductType { get; set; }
24 24  
25 25 /// <summary>
26 26 /// 扣减关联ID
... ... @@ -46,5 +46,35 @@ namespace NCC.Extend.Entitys.lq_kd_deductinfo
46 46 /// </summary>
47 47 [SugarColumn(ColumnName = "F_IsEffective")]
48 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 204 [SugarColumn(ColumnName = "F_IsEffective")]
205 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 60 [SugarColumn(ColumnName = "F_CreateTIme")]
61 61 public DateTime? CreateTIme { get; set; }
62 62  
63   -
64   -
65   -
66 63 /// <summary>
67 64 /// 项目次数
68 65 /// </summary>
... ... @@ -98,5 +95,11 @@ namespace NCC.Extend.Entitys.lq_kd_pxmx
98 95 /// </summary>
99 96 [SugarColumn(ColumnName = "F_IsEffective")]
100 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 8 public enum StatusEnum
9 9 {
10 10 /// <summary>
11   - ///
  11 + ///
12 12 /// </summary>
13   - [Description("有效")]
14   - 有效 = 0,
  13 + [Description("无效")]
  14 + 无效 = -1,
15 15  
16 16 /// <summary>
17   - ///
  17 + ///
18 18 /// </summary>
19   - [Description("无效")]
20   - 无效 = 1,
  19 + [Description("有效")]
  20 + 有效 = 1,
21 21  
22 22 /// <summary>
23 23 /// 删除
... ...
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
... ... @@ -136,6 +136,7 @@ namespace NCC.Extend.LqKdKdjlb
136 136 createTime = pxmx.CreateTIme,
137 137 totalPrice = pxmx.TotalPrice,
138 138 actualPrice = pxmx.ActualPrice,
  139 + remark = pxmx.Remark,
139 140 };
140 141  
141 142 // 关联该品项的健康师业绩
... ... @@ -258,10 +259,33 @@ namespace NCC.Extend.LqKdKdjlb
258 259 entity.Id = YitIdHelper.NextId().ToString();
259 260 entity.CreateTime = DateTime.Now;
260 261 entity.UpdateTime = DateTime.Now;
  262 + entity.IsEffective = StatusEnum.有效.GetHashCode();
261 263 try
262 264 {
263 265 //开启事务
264 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 290 entity.CreateUser = userInfo.userId;
267 291 entity.DeductAmount = input.lqKdKdjlbDeductList.Sum(x => x.Amount ?? 0);//计算储扣总金额
... ... @@ -282,6 +306,12 @@ namespace NCC.Extend.LqKdKdjlb
282 306 DeductId = item.DeductId,
283 307 DeductType = item.DeductType,
284 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 316 allDeductEntities.Add(lqKdDeductEntity);
287 317 }
... ... @@ -296,7 +326,7 @@ namespace NCC.Extend.LqKdKdjlb
296 326 Yjsj = input.kdrq,
297 327 CreateTIme = DateTime.Now,
298 328 MemberId = entity.Kdhy,
299   - IsEnabled = 0,
  329 + IsEnabled = StatusEnum.有效.GetHashCode(),
300 330 ProjectNumber = item.projectNumber,
301 331 TotalPrice = (decimal)(item.pxjg * item.projectNumber),
302 332 Px = item.px,
... ... @@ -304,6 +334,8 @@ namespace NCC.Extend.LqKdKdjlb
304 334 Pxjg = item.pxjg,
305 335 SourceType = item.sourceType,
306 336 ActualPrice = item.actualPrice,
  337 + Remark = item.remark,
  338 + IsEffective = StatusEnum.有效.GetHashCode(),
307 339 };
308 340 allPxmxEntities.Add(lqKdPxmxEntity);
309 341  
... ... @@ -325,6 +357,7 @@ namespace NCC.Extend.LqKdKdjlb
325 357 Yjsj = input.kdrq,
326 358 Jsj_id = ijks_tem.jsj_id,
327 359 Kdpxid = lqKdPxmxEntity.Id,
  360 + IsEffective = StatusEnum.有效.GetHashCode(),
328 361 });
329 362 }
330 363 }
... ... @@ -345,6 +378,7 @@ namespace NCC.Extend.LqKdKdjlb
345 378 Kjblsyj = ikjbs_tem.kjblsyj,
346 379 Yjsj = input.kdrq,
347 380 Kdpxid = lqKdPxmxEntity.Id,
  381 + IsEffective = StatusEnum.有效.GetHashCode(),
348 382 }
349 383 );
350 384 }
... ... @@ -352,6 +386,7 @@ namespace NCC.Extend.LqKdKdjlb
352 386 }
353 387  
354 388  
  389 +
355 390 //通过会员id查询会员信息
356 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 1298 //关闭事务
1264 1299 _db.CommitTran();
1265 1300 }
1266   - catch (Exception ex) when (!(ex is NCCException))
  1301 + catch (Exception)
1267 1302 {
1268 1303 //回滚事务
1269 1304 _db.RollbackTran();
... ... @@ -1440,7 +1475,7 @@ namespace NCC.Extend.LqKdKdjlb
1440 1475 importTime = DateTime.Now
1441 1476 };
1442 1477 }
1443   - catch (Exception ex) when (!(ex is NCCException))
  1478 + catch (Exception ex)
1444 1479 {
1445 1480 _db.RollbackTran();
1446 1481 throw NCCException.Oh($"导入历史会员权益数据失败: {ex.Message}");
... ...
netcore/src/Modularity/Extend/NCC.Extend/LqKhxxService.cs
... ... @@ -34,6 +34,7 @@ using NCC.FriendlyException;
34 34 using NCC.JsonSerialization;
35 35 using SqlSugar;
36 36 using Yitter.IdGenerator;
  37 +using NCC.Extend.Entitys.lq_kd_deductinfo;
37 38  
38 39 namespace NCC.Extend.LqKhxx
39 40 {
... ... @@ -578,6 +579,17 @@ namespace NCC.Extend.LqKhxx
578 579 })
579 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 594 var remainingItems = baseItems.Select(item => new RemainingItemInfo
583 595 {
... ... @@ -589,12 +601,13 @@ namespace NCC.Extend.LqKhxx
589 601 TotalPurchased = item.ProjectNumber,
590 602 ConsumedCount = consumedData.FirstOrDefault(c => c.BillingItemId == item.Id)?.TotalConsumed ?? 0,
591 603 RefundedCount = refundedData.FirstOrDefault(r => r.BillingItemId == item.Id)?.TotalRefunded ?? 0,
  604 + DeductCount = deductData.FirstOrDefault(d => d.BillingItemId == item.Id)?.TotalDeduct ?? 0,
592 605 }).ToList();
593 606  
594 607 // 计算剩余数量
595 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 612 return new MemberRemainingItemsOutput
600 613 {
... ...
netcore/src/Modularity/Extend/NCC.Extend/Utils/LqKdKdjlbStringGenerator.cs
... ... @@ -66,7 +66,7 @@ namespace NCC.Extend.Utils
66 66 sb.AppendLine($"⏩欠款: {entity.qk}");
67 67  
68 68 // 抵扣:
69   - sb.AppendLine($"⏩抵扣:{entity.ckmx ?? "无"}");
  69 + sb.AppendLine($"⏩抵扣:{entity.deductAmount}");
70 70  
71 71 // 来源:售后
72 72 sb.AppendLine($"⏩来源:{entity.khly ?? "无"}");
... ...
netcore/src/Modularity/Extend/NCC.Extend/Utils/WeChatBotTestController.cs
... ... @@ -78,7 +78,6 @@ namespace NCC.Extend.Utils
78 78 zdyj = 1000,
79 79 sfyj = 1000,
80 80 qk = 0,
81   - ckmx = "无",
82 81 khly = "测试来源",
83 82 sfskdd = "无",
84 83 jj = "这是一条测试开单记录",
... ...