diff --git a/antis-ncc-admin/src/views/lqKdKdjlb/index.vue b/antis-ncc-admin/src/views/lqKdKdjlb/index.vue index 5499e67..db6cf9b 100644 --- a/antis-ncc-admin/src/views/lqKdKdjlb/index.vue +++ b/antis-ncc-admin/src/views/lqKdKdjlb/index.vue @@ -1,132 +1,133 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - 查询 - 重置 - 展开 - 收起 - - - - - - - - - 批量删除 - - - - - - - - - - - - - - - {{ scope.row.id || '无' }} - - - - - - + + + + + {{ scope.row.id || '无' }} + + + + + + - - - - - - - {{ scope.row.kdhyc || '无' }} - - - - - - - - - - {{ scope.row.kdhysjh || '无' }} - - - - - - - - - - {{ scope.row.djmd | dynamicText(djmdOptions) || '无' }} - - - - - - - - - - {{ scope.row.jsj | dynamicText(jsjOptions) || '无' }} - - - - - - - - - - - - - - {{ scope.row.gjlx }} - - - - - - - - - {{ scope.row.zdyj || '无' }} - - - - - - - - - - {{ scope.row.sfyj || '无' }} - - - - - - - - - - {{ scope.row.qk || '无' }} - - - - - - - - - - - - - {{ scope.row.ckmx || '无' }} - - - - - - - - - - {{ scope.row.fkfs | dynamicText(fkfsOptions) || '无' }} - - - - - - - - - - {{ scope.row.fkyy | dynamicText(fkyyOptions) || '无' }} - - - - - - - - - {{ scope.row.hgjg | dynamicText(hgjgOptions) || '无' }} - - - - - - - - - - {{ scope.row.fkpd || '无' }} - - - - - - - - - - {{ scope.row.khly | dynamicText(khlyOptions) || '无' }} - - - - - - - - - - {{ scope.row.tjr || '无' }} - - - - - - - - - - {{ scope.row.sfskdd | dynamicText(sfskddOptions) || '无' }} - - - - - - - - - - {{ scope.row.jj || '无' }} - - - - - - - - - - {{ scope.row.bz || '无' }} - - - - - - - - - - {{ scope.row.jksyj || '无' }} - - - - - - - - - - {{ scope.row.kjblsyj || '无' }} - - - - - - - - - - {{ scope.row.pxxx || '无' }} - - - - - - - - - + + + + + {{ scope.row.kdhyc || '无' }} + + + + + + + + + + {{ scope.row.kdhysjh || '无' }} + + + + + + + + + + {{ scope.row.djmd | dynamicText(djmdOptions) || '无' }} + + + + + + + + + + {{ scope.row.jsj | dynamicText(jsjOptions) || '无' }} + + + + + + + + + + {{ formatDate(scope.row.kdrq) }} + + + + + + + + + + {{ scope.row.gjlx }} + + + + + + + + + {{ scope.row.zdyj || '无' }} + + + + + + + + + + {{ scope.row.sfyj || '无' }} + + + + + + + + + + {{ scope.row.qk || '无' }} + + + + + + + + + + {{ scope.row.ckfs | dynamicText(ckfsOptions) || '无' }} + + + + + + + + + + {{ scope.row.ckmx || '无' }} + + + + + + + + + + {{ scope.row.fkfs | dynamicText(fkfsOptions) || '无' }} + + + + + + + + + + {{ scope.row.fkyy | dynamicText(fkyyOptions) || '无' }} + + + + + + + + + {{ scope.row.hgjg | dynamicText(hgjgOptions) || '无' }} + + + + + + + + + + {{ scope.row.fkpd || '无' }} + + + + + + + + + + {{ scope.row.khly | dynamicText(khlyOptions) || '无' }} + + + + + + + + + + {{ scope.row.tjr || '无' }} + + + + + + + + + + {{ scope.row.sfskdd | dynamicText(sfskddOptions) || '无' }} + + + + + + + + + + {{ scope.row.jj || '无' }} + + + + + + + + + + {{ scope.row.bz || '无' }} + + + + + + + + + + {{ scope.row.jksyj || '无' }} + + + + + + + + + + {{ scope.row.kjblsyj || '无' }} + + + + + + + + + + {{ scope.row.pxxx || '无' }} + + + + + + + + + - - 详情 - - - - - - - - - - - + + + + + + + + + - - + + \ No newline at end of file diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListOutput.cs index bce8df5..b33f235 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListOutput.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListOutput.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; namespace NCC.Extend.Entitys.Dto.LqKdKdjlb { @@ -156,5 +157,10 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb /// 开单用户名称 /// public string CreateUserName { get; set; } + + /// + /// 开单品项明细列表 + /// + public List ItemDetails { get; set; } } } diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs index 73c1f35..5639f7c 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs @@ -20,15 +20,17 @@ using NCC.Extend.Entitys.Dto.Common; using NCC.Extend.Entitys.Dto.LqKdDeductinfo; using NCC.Extend.Entitys.Dto.LqKdKdjlb; using NCC.Extend.Entitys.Enum; +using NCC.Extend.Entitys.lq_hytk_hytk; using NCC.Extend.Entitys.lq_hytk_mx; using NCC.Extend.Entitys.lq_jinsanjiao_user; using NCC.Extend.Entitys.lq_kd_deductinfo; +using NCC.Extend.Entitys.lq_xh_hyhk; +using NCC.Extend.Entitys.lq_xh_pxmx; using NCC.Extend.Entitys.lq_kd_jksyj; using NCC.Extend.Entitys.lq_kd_kdjlb; using NCC.Extend.Entitys.lq_kd_kjbsyj; using NCC.Extend.Entitys.lq_kd_pxmx; using NCC.Extend.Entitys.lq_khxx; -using NCC.Extend.Entitys.lq_xh_pxmx; using NCC.Extend.Entitys.lq_xmzl; using NCC.Extend.Interfaces.LqKdKdjlb; using NCC.Extend.Utils; @@ -254,6 +256,48 @@ namespace NCC.Extend.LqKdKdjlb .MergeTable() .OrderBy(sidx + " " + input.sort) .ToPagedListAsync(input.currentPage, input.pageSize); + + // 获取当前页的开单记录ID列表 + var billingIds = data.list.Select(x => x.id).ToList(); + + // 批量查询品项明细 + var itemDetails = new List(); + if (billingIds.Any()) + { + itemDetails = await _db.Queryable() + .Where(x => billingIds.Contains(x.Glkdbh) && x.IsEffective == StatusEnum.有效.GetHashCode()) + .Select(x => new LqKdPxmxInfoOutput + { + id = x.Id, + glkdbh = x.Glkdbh, + px = x.Px, + pxmc = x.Pxmc, + pxjg = x.Pxjg, + projectNumber = x.ProjectNumber, + isEnabled = x.IsEnabled, + sourceType = x.SourceType, + memberId = x.MemberId, + createTime = x.CreateTIme, + totalPrice = x.TotalPrice, + actualPrice = x.ActualPrice, + remark = x.Remark, + isEffective = x.IsEffective + }) + .ToListAsync(); + } + + // 按开单ID分组品项明细 + var itemDetailsGrouped = itemDetails.GroupBy(x => x.glkdbh) + .ToDictionary(g => g.Key, g => g.ToList()); + + // 为每个开单记录分配品项明细 + foreach (var item in data.list) + { + item.ItemDetails = itemDetailsGrouped.ContainsKey(item.id) + ? itemDetailsGrouped[item.id] + : new List(); + } + return PageResult.SqlSugarPageResult(data); } #endregion @@ -841,6 +885,22 @@ namespace NCC.Extend.LqKdKdjlb { //开启事务 _db.BeginTran(); + // 检查是否有消耗记录 + var billingItemIds = await _db.Queryable().Where(p => ids.Contains(p.Glkdbh)).Select(p => p.Id).ToListAsync(); + if (billingItemIds.Any()) + { + var consumeRecords = await _db.Queryable().Where(x => x.IsEffective == StatusEnum.有效.GetHashCode()).Where(x => billingItemIds.Contains(x.BillingItemId)).AnyAsync(); + if (consumeRecords) + { + throw NCCException.Oh("选中的开单记录中有已消耗的记录,不能删除"); + } + } + // 检查是否有储扣记录 + var deductRecords = await _db.Queryable().Where(x => ids.Contains(x.BillingId) && x.IsEffective == StatusEnum.有效.GetHashCode()).AnyAsync(); + if (deductRecords) + { + throw NCCException.Oh("选中的开单记录中有储扣记录,不能删除"); + } //批量删除开单记录表 await _db.Deleteable().In(d => d.Id, ids).ExecuteCommandAsync(); @@ -1038,6 +1098,26 @@ namespace NCC.Extend.LqKdKdjlb { //开启事务 _db.BeginTran(); + //先查询开单品项明细 + var lqPxmxList = _db.Queryable().Where(x => x.Glkdbh == id).ToList(); + //判断是否有对应的消耗记录 + var consumeRecords = await _db.Queryable().Where(x => lqPxmxList.Select(y => y.Id).Contains(x.BillingItemId)).AnyAsync(); + if (consumeRecords) + { + throw NCCException.Oh("选中的开单记录中有已消耗的记录,不能删除"); + } + //判断是否有对应的退卡记录 + var refundRecords = await _db.Queryable().Where(x => lqPxmxList.Select(y => y.Id).Contains(x.BillingItemId)).AnyAsync(); + if (refundRecords) + { + throw NCCException.Oh("选中的开单记录中有退卡记录,不能删除"); + } + //判断是否有对应的储扣记录 + var deductRecords = await _db.Queryable().Where(x => lqPxmxList.Select(y => y.Id).Contains(x.DeductId)).AnyAsync(); + if (deductRecords) + { + throw NCCException.Oh("选中的开单记录中有储扣记录,不能删除"); + } //删除开单记录表记录 await _db.Deleteable().Where(d => d.Id == id).ExecuteCommandAsync(); @@ -1713,5 +1793,7 @@ namespace NCC.Extend.LqKdKdjlb } } #endregion + + } } diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqStatisticsService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqStatisticsService.cs index 8e50319..c4d2868 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqStatisticsService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqStatisticsService.cs @@ -1464,7 +1464,7 @@ namespace NCC.Extend.LqStatistics SUM(CAST(jksyj.jksyj AS DECIMAL(18,2))) as order_performance FROM lq_kd_jksyj jksyj INNER JOIN lq_kd_pxmx pxmx ON jksyj.F_kdpxid = pxmx.F_Id AND pxmx.F_IsEffective = 1 - INNER JOIN lq_kd_kdjlb kd ON jksyj.glkdbh COLLATE utf8mb4_general_ci = kd.F_Id COLLATE utf8mb4_general_ci + INNER JOIN lq_kd_kdjlb kd ON jksyj.glkdbh = CONVERT(kd.F_Id USING utf8mb4) WHERE jksyj.yjsj IS NOT NULL AND jksyj.jksyj IS NOT NULL AND jksyj.jksyj != '' @@ -2529,7 +2529,7 @@ namespace NCC.Extend.LqStatistics SUM(CASE WHEN kd.sfskdd = '是' THEN COALESCE(kd.zdyj, 0) ELSE 0 END) as F_FirstOrderPerformance, SUM(CASE WHEN kd.sfskdd = '否' THEN COALESCE(kd.zdyj, 0) ELSE 0 END) as F_UpgradeOrderPerformance FROM lq_kd_kdjlb kd - LEFT JOIN lq_mdxx md ON kd.djmd COLLATE utf8mb4_general_ci = md.F_Id COLLATE utf8mb4_general_ci + LEFT JOIN lq_mdxx md ON CONVERT(kd.djmd USING utf8mb4) = md.F_Id WHERE kd.F_IsEffective = 1 AND DATE_FORMAT(kd.kdrq, '%Y%m') = @statisticsMonth GROUP BY kd.djmd, md.dm @@ -2539,7 +2539,7 @@ namespace NCC.Extend.LqStatistics kd.djmd as F_StoreId, COUNT(pxmx.F_ProjectNumber) as F_ItemQuantity FROM lq_kd_kdjlb kd - LEFT JOIN lq_kd_pxmx pxmx ON kd.F_Id COLLATE utf8mb4_general_ci = pxmx.glkdbh COLLATE utf8mb4_general_ci AND pxmx.F_IsEffective = 1 + LEFT JOIN lq_kd_pxmx pxmx ON CONVERT(kd.F_Id USING utf8mb4) = pxmx.glkdbh AND pxmx.F_IsEffective = 1 WHERE kd.F_IsEffective = 1 AND DATE_FORMAT(kd.kdrq, '%Y%m') = @statisticsMonth GROUP BY kd.djmd