fix: 考核记录列表统计不污染查询条件

This commit is contained in:
XingQue
2026-06-24 00:07:19 +08:00
parent 8dae04c32c
commit 98daa93abd

View File

@@ -9022,13 +9022,13 @@ class KhjlglView(APIView):
if page_size > 100:
page_size = 100
qs = _build_shenhe_jilu_filters(request.data)
filter_data = request.data
qs = _build_shenhe_jilu_filters(filter_data)
stats_qs = qs
agg = stats_qs.aggregate(
total_fee=Sum('jiaofei_jine'),
)
tag_rows = stats_qs.values(
# FluentQuery.filter() 会原地修改同一对象;统计与列表必须各自独立查询
stats_base = _build_shenhe_jilu_filters(filter_data)
agg = stats_base.aggregate(total_fee=Sum('jiaofei_jine'))
tag_rows = _build_shenhe_jilu_filters(filter_data).values(
'chenghao_id', 'chenghao__mingcheng'
).annotate(
total=Count('jilu_id'),
@@ -9039,11 +9039,11 @@ class KhjlglView(APIView):
).order_by('-total')
stats = {
'total': stats_qs.count(),
'passed': stats_qs.filter(zhuangtai=1).count(),
'failed': stats_qs.filter(zhuangtai=2).count(),
'in_progress': stats_qs.filter(zhuangtai=0).count(),
'pending': stats_qs.filter(zhuangtai=3).count(),
'total': stats_base.count(),
'passed': _build_shenhe_jilu_filters(filter_data).filter(zhuangtai=1).count(),
'failed': _build_shenhe_jilu_filters(filter_data).filter(zhuangtai=2).count(),
'in_progress': _build_shenhe_jilu_filters(filter_data).filter(zhuangtai=0).count(),
'pending': _build_shenhe_jilu_filters(filter_data).filter(zhuangtai=3).count(),
'total_fee': float(agg['total_fee'] or 0),
'tag_stats': [
{
@@ -9061,7 +9061,7 @@ class KhjlglView(APIView):
total = qs.count()
start = (page - 1) * page_size
rows = qs.order_by('-CreateTime')[start:start + page_size]
rows = qs.order_by('-CreateTime')[start:start + page_size].to_list()
uids = []
jilu_ids = []