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 | 20 | using NCC.Extend.Entitys.Dto.LqKdDeductinfo; |
| 21 | 21 | using NCC.Extend.Entitys.Dto.LqKdKdjlb; |
| 22 | 22 | using NCC.Extend.Entitys.Enum; |
| 23 | +using NCC.Extend.Entitys.lq_hytk_hytk; | |
| 23 | 24 | using NCC.Extend.Entitys.lq_hytk_mx; |
| 24 | 25 | using NCC.Extend.Entitys.lq_jinsanjiao_user; |
| 25 | 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 | 29 | using NCC.Extend.Entitys.lq_kd_jksyj; |
| 27 | 30 | using NCC.Extend.Entitys.lq_kd_kdjlb; |
| 28 | 31 | using NCC.Extend.Entitys.lq_kd_kjbsyj; |
| 29 | 32 | using NCC.Extend.Entitys.lq_kd_pxmx; |
| 30 | 33 | using NCC.Extend.Entitys.lq_khxx; |
| 31 | -using NCC.Extend.Entitys.lq_xh_pxmx; | |
| 32 | 34 | using NCC.Extend.Entitys.lq_xmzl; |
| 33 | 35 | using NCC.Extend.Interfaces.LqKdKdjlb; |
| 34 | 36 | using NCC.Extend.Utils; |
| ... | ... | @@ -841,6 +843,22 @@ namespace NCC.Extend.LqKdKdjlb |
| 841 | 843 | { |
| 842 | 844 | //开启事务 |
| 843 | 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 | 863 | await _db.Deleteable<LqKdKdjlbEntity>().In(d => d.Id, ids).ExecuteCommandAsync(); |
| 846 | 864 | |
| ... | ... | @@ -1038,6 +1056,26 @@ namespace NCC.Extend.LqKdKdjlb |
| 1038 | 1056 | { |
| 1039 | 1057 | //开启事务 |
| 1040 | 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 | 1081 | await _db.Deleteable<LqKdKdjlbEntity>().Where(d => d.Id == id).ExecuteCommandAsync(); | ... | ... |