Commit a08a576e8a1a9ecf1699d11ed7e8edeac6fe3496

Authored by “wangming”
1 parent d5374a53

refactor: 优化营销活动开单统计查询,直接从主表查询

- 开单统计改为直接从lq_kd_kdjlb主表查询
- 使用EXISTS子查询判断是否包含活动品项
- 开单金额使用sfyj字段(实付业绩),欠款金额使用qk字段
- 提高查询效率,避免JOIN导致的重复统计
netcore/src/Modularity/Extend/NCC.Extend/LqPackageInfoService.cs
@@ -652,17 +652,23 @@ namespace NCC.Extend.LqPackageInfo @@ -652,17 +652,23 @@ namespace NCC.Extend.LqPackageInfo
652 } 652 }
653 653
654 // 6. 开单统计 654 // 6. 开单统计
  655 + // 直接从开单主表查询,通过子查询判断是否包含活动品项
655 var billingSql = $@" 656 var billingSql = $@"
656 SELECT 657 SELECT
657 COUNT(DISTINCT kd.F_Id) as billing_count, 658 COUNT(DISTINCT kd.F_Id) as billing_count,
658 - SUM(CAST(px.F_ActualPrice AS DECIMAL(18,2))) as billing_amount, 659 + SUM(CAST(kd.sfyj AS DECIMAL(18,2))) as billing_amount,
659 SUM(CAST(kd.qk AS DECIMAL(18,2))) as debt_amount 660 SUM(CAST(kd.qk AS DECIMAL(18,2))) as debt_amount
660 - FROM lq_kd_pxmx px  
661 - LEFT JOIN lq_kd_kdjlb kd ON px.glkdbh = kd.F_Id  
662 - WHERE px.F_IsEffective = 1  
663 - {itemIdsFilter}  
664 - AND px.yjsj >= '{startTime:yyyy-MM-dd HH:mm:ss}'  
665 - AND px.yjsj <= '{endTime:yyyy-MM-dd HH:mm:ss}' 661 + FROM lq_kd_kdjlb kd
  662 + WHERE kd.F_IsEffective = 1
  663 + AND EXISTS (
  664 + SELECT 1
  665 + FROM lq_kd_pxmx px
  666 + WHERE px.glkdbh = kd.F_Id
  667 + AND px.F_IsEffective = 1
  668 + {itemIdsFilter}
  669 + AND px.yjsj >= '{startTime:yyyy-MM-dd HH:mm:ss}'
  670 + AND px.yjsj <= '{endTime:yyyy-MM-dd HH:mm:ss}'
  671 + )
666 {storeFilter}"; 672 {storeFilter}";
667 673
668 var billingData = await _db.Ado.SqlQueryAsync<dynamic>(billingSql); 674 var billingData = await _db.Ado.SqlQueryAsync<dynamic>(billingSql);