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 652 }
653 653  
654 654 // 6. 开单统计
  655 + // 直接从开单主表查询,通过子查询判断是否包含活动品项
655 656 var billingSql = $@"
656 657 SELECT
657 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 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 672 {storeFilter}";
667 673  
668 674 var billingData = await _db.Ado.SqlQueryAsync<dynamic>(billingSql);
... ...