fix: 考核记录列表统计不污染查询条件
This commit is contained in:
@@ -9022,13 +9022,13 @@ class KhjlglView(APIView):
|
|||||||
if page_size > 100:
|
if page_size > 100:
|
||||||
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
|
# FluentQuery.filter() 会原地修改同一对象;统计与列表必须各自独立查询
|
||||||
agg = stats_qs.aggregate(
|
stats_base = _build_shenhe_jilu_filters(filter_data)
|
||||||
total_fee=Sum('jiaofei_jine'),
|
agg = stats_base.aggregate(total_fee=Sum('jiaofei_jine'))
|
||||||
)
|
tag_rows = _build_shenhe_jilu_filters(filter_data).values(
|
||||||
tag_rows = stats_qs.values(
|
|
||||||
'chenghao_id', 'chenghao__mingcheng'
|
'chenghao_id', 'chenghao__mingcheng'
|
||||||
).annotate(
|
).annotate(
|
||||||
total=Count('jilu_id'),
|
total=Count('jilu_id'),
|
||||||
@@ -9039,11 +9039,11 @@ class KhjlglView(APIView):
|
|||||||
).order_by('-total')
|
).order_by('-total')
|
||||||
|
|
||||||
stats = {
|
stats = {
|
||||||
'total': stats_qs.count(),
|
'total': stats_base.count(),
|
||||||
'passed': stats_qs.filter(zhuangtai=1).count(),
|
'passed': _build_shenhe_jilu_filters(filter_data).filter(zhuangtai=1).count(),
|
||||||
'failed': stats_qs.filter(zhuangtai=2).count(),
|
'failed': _build_shenhe_jilu_filters(filter_data).filter(zhuangtai=2).count(),
|
||||||
'in_progress': stats_qs.filter(zhuangtai=0).count(),
|
'in_progress': _build_shenhe_jilu_filters(filter_data).filter(zhuangtai=0).count(),
|
||||||
'pending': stats_qs.filter(zhuangtai=3).count(),
|
'pending': _build_shenhe_jilu_filters(filter_data).filter(zhuangtai=3).count(),
|
||||||
'total_fee': float(agg['total_fee'] or 0),
|
'total_fee': float(agg['total_fee'] or 0),
|
||||||
'tag_stats': [
|
'tag_stats': [
|
||||||
{
|
{
|
||||||
@@ -9061,7 +9061,7 @@ class KhjlglView(APIView):
|
|||||||
|
|
||||||
total = qs.count()
|
total = qs.count()
|
||||||
start = (page - 1) * page_size
|
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 = []
|
uids = []
|
||||||
jilu_ids = []
|
jilu_ids = []
|
||||||
|
|||||||
Reference in New Issue
Block a user