Commit 544fd30bb8bcf571861c1d9c21a4dc0bd89a833f
1 parent
6dd1b9bf
feat: 增强LqKdKdjlbService的删除逻辑,添加消耗记录和储扣记录检查
- 在批量删除和单条删除方法中添加对消耗记录和储扣记录的检查,防止删除已消耗或有储扣的开单记录 - 引入新的实体类以支持检查逻辑,确保数据一致性和完整性
Showing
1 changed file
with
39 additions
and
1 deletions
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
| @@ -20,15 +20,17 @@ using NCC.Extend.Entitys.Dto.Common; | @@ -20,15 +20,17 @@ using NCC.Extend.Entitys.Dto.Common; | ||
| 20 | using NCC.Extend.Entitys.Dto.LqKdDeductinfo; | 20 | using NCC.Extend.Entitys.Dto.LqKdDeductinfo; |
| 21 | using NCC.Extend.Entitys.Dto.LqKdKdjlb; | 21 | using NCC.Extend.Entitys.Dto.LqKdKdjlb; |
| 22 | using NCC.Extend.Entitys.Enum; | 22 | using NCC.Extend.Entitys.Enum; |
| 23 | +using NCC.Extend.Entitys.lq_hytk_hytk; | ||
| 23 | using NCC.Extend.Entitys.lq_hytk_mx; | 24 | using NCC.Extend.Entitys.lq_hytk_mx; |
| 24 | using NCC.Extend.Entitys.lq_jinsanjiao_user; | 25 | using NCC.Extend.Entitys.lq_jinsanjiao_user; |
| 25 | using NCC.Extend.Entitys.lq_kd_deductinfo; | 26 | using NCC.Extend.Entitys.lq_kd_deductinfo; |
| 27 | +using NCC.Extend.Entitys.lq_xh_hyhk; | ||
| 28 | +using NCC.Extend.Entitys.lq_xh_pxmx; | ||
| 26 | using NCC.Extend.Entitys.lq_kd_jksyj; | 29 | using NCC.Extend.Entitys.lq_kd_jksyj; |
| 27 | using NCC.Extend.Entitys.lq_kd_kdjlb; | 30 | using NCC.Extend.Entitys.lq_kd_kdjlb; |
| 28 | using NCC.Extend.Entitys.lq_kd_kjbsyj; | 31 | using NCC.Extend.Entitys.lq_kd_kjbsyj; |
| 29 | using NCC.Extend.Entitys.lq_kd_pxmx; | 32 | using NCC.Extend.Entitys.lq_kd_pxmx; |
| 30 | using NCC.Extend.Entitys.lq_khxx; | 33 | using NCC.Extend.Entitys.lq_khxx; |
| 31 | -using NCC.Extend.Entitys.lq_xh_pxmx; | ||
| 32 | using NCC.Extend.Entitys.lq_xmzl; | 34 | using NCC.Extend.Entitys.lq_xmzl; |
| 33 | using NCC.Extend.Interfaces.LqKdKdjlb; | 35 | using NCC.Extend.Interfaces.LqKdKdjlb; |
| 34 | using NCC.Extend.Utils; | 36 | using NCC.Extend.Utils; |
| @@ -841,6 +843,22 @@ namespace NCC.Extend.LqKdKdjlb | @@ -841,6 +843,22 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 841 | { | 843 | { |
| 842 | //开启事务 | 844 | //开启事务 |
| 843 | _db.BeginTran(); | 845 | _db.BeginTran(); |
| 846 | + // 检查是否有消耗记录 | ||
| 847 | + var billingItemIds = await _db.Queryable<LqKdPxmxEntity>().Where(p => ids.Contains(p.Glkdbh)).Select(p => p.Id).ToListAsync(); | ||
| 848 | + if (billingItemIds.Any()) | ||
| 849 | + { | ||
| 850 | + var consumeRecords = await _db.Queryable<LqXhPxmxEntity>().Where(x => x.IsEffective == StatusEnum.有效.GetHashCode()).Where(x => billingItemIds.Contains(x.BillingItemId)).AnyAsync(); | ||
| 851 | + if (consumeRecords) | ||
| 852 | + { | ||
| 853 | + throw NCCException.Oh("选中的开单记录中有已消耗的记录,不能删除"); | ||
| 854 | + } | ||
| 855 | + } | ||
| 856 | + // 检查是否有储扣记录 | ||
| 857 | + var deductRecords = await _db.Queryable<LqKdDeductinfoEntity>().Where(x => ids.Contains(x.BillingId) && x.IsEffective == StatusEnum.有效.GetHashCode()).AnyAsync(); | ||
| 858 | + if (deductRecords) | ||
| 859 | + { | ||
| 860 | + throw NCCException.Oh("选中的开单记录中有储扣记录,不能删除"); | ||
| 861 | + } | ||
| 844 | //批量删除开单记录表 | 862 | //批量删除开单记录表 |
| 845 | await _db.Deleteable<LqKdKdjlbEntity>().In(d => d.Id, ids).ExecuteCommandAsync(); | 863 | await _db.Deleteable<LqKdKdjlbEntity>().In(d => d.Id, ids).ExecuteCommandAsync(); |
| 846 | 864 | ||
| @@ -1038,6 +1056,26 @@ namespace NCC.Extend.LqKdKdjlb | @@ -1038,6 +1056,26 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 1038 | { | 1056 | { |
| 1039 | //开启事务 | 1057 | //开启事务 |
| 1040 | _db.BeginTran(); | 1058 | _db.BeginTran(); |
| 1059 | + //先查询开单品项明细 | ||
| 1060 | + var lqPxmxList = _db.Queryable<LqKdPxmxEntity>().Where(x => x.Glkdbh == id).ToList(); | ||
| 1061 | + //判断是否有对应的消耗记录 | ||
| 1062 | + var consumeRecords = await _db.Queryable<LqXhPxmxEntity>().Where(x => lqPxmxList.Select(y => y.Id).Contains(x.BillingItemId)).AnyAsync(); | ||
| 1063 | + if (consumeRecords) | ||
| 1064 | + { | ||
| 1065 | + throw NCCException.Oh("选中的开单记录中有已消耗的记录,不能删除"); | ||
| 1066 | + } | ||
| 1067 | + //判断是否有对应的退卡记录 | ||
| 1068 | + var refundRecords = await _db.Queryable<LqHytkMxEntity>().Where(x => lqPxmxList.Select(y => y.Id).Contains(x.BillingItemId)).AnyAsync(); | ||
| 1069 | + if (refundRecords) | ||
| 1070 | + { | ||
| 1071 | + throw NCCException.Oh("选中的开单记录中有退卡记录,不能删除"); | ||
| 1072 | + } | ||
| 1073 | + //判断是否有对应的储扣记录 | ||
| 1074 | + var deductRecords = await _db.Queryable<LqKdDeductinfoEntity>().Where(x => lqPxmxList.Select(y => y.Id).Contains(x.DeductId)).AnyAsync(); | ||
| 1075 | + if (deductRecords) | ||
| 1076 | + { | ||
| 1077 | + throw NCCException.Oh("选中的开单记录中有储扣记录,不能删除"); | ||
| 1078 | + } | ||
| 1041 | 1079 | ||
| 1042 | //删除开单记录表记录 | 1080 | //删除开单记录表记录 |
| 1043 | await _db.Deleteable<LqKdKdjlbEntity>().Where(d => d.Id == id).ExecuteCommandAsync(); | 1081 | await _db.Deleteable<LqKdKdjlbEntity>().Where(d => d.Id == id).ExecuteCommandAsync(); |