From 07f517de587a17f0573a0bd17f0c23abd0900196 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 5 Jul 2023 16:32:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20quastat=20task=20=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/qm/tasks.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/qm/tasks.py b/apps/qm/tasks.py index d6b92aea..7bd06f20 100644 --- a/apps/qm/tasks.py +++ b/apps/qm/tasks.py @@ -2,7 +2,7 @@ from __future__ import absolute_import, unicode_literals from celery import shared_task from apps.qm.models import QuaStat from apps.utils.tasks import CustomTask -from django.db.models import Sum, F, ExpressionWrapper, FloatField +from django.db.models import Sum, F, ExpressionWrapper, FloatField, Q @shared_task(base=CustomTask) @@ -15,16 +15,18 @@ def cal_quastat(quastatId: str): # GROUP BY field1 # """ ins = QuaStat.objects.get(id=quastatId) + qs = QuaStat.objects.exclude(Q(val_avg__isnull=True)|Q(num_test__isnull=True)|Q(num_ok__isnull=True)) # 日统计 params = { 'testitem': ins.testitem, 'material': ins.material, 'belong_dept': ins.belong_dept, + 'type': 'sflog', 'year_s': ins.year_s, 'month_s': ins.month_s, 'day_s': ins.day_s } - results_day = QuaStat.objects.filter(**params).values('belong_dept', 'material', + results_day = qs.filter(**params).values('belong_dept', 'material', 'testitem', 'year_s', 'month_s', 'day_s').annotate( avg_val_total=Sum(F('val_avg')*F('num_test')), num_test_1=Sum('num_test'), @@ -47,7 +49,7 @@ def cal_quastat(quastatId: str): qua.save() # 月统计 params.pop('day_s') - results_month = QuaStat.objects.filter(**params).values('belong_dept', 'material', + results_month = qs.filter(**params).values('belong_dept', 'material', 'testitem', 'year_s', 'month_s').annotate( avg_val_total=Sum(F('val_avg')*F('num_test')), num_test_1=Sum('num_test'), @@ -72,7 +74,7 @@ def cal_quastat(quastatId: str): # 年统计 params.pop('month_s') - results_year = QuaStat.objects.filter(**params).values('belong_dept', 'material', + results_year = qs.filter(**params).values('belong_dept', 'material', 'testitem', 'year_s').annotate( avg_val_total=Sum(F('val_avg')*F('num_test')), num_test_1=Sum('num_test'),