| | |
| | | |
| | | def aggregate_reports_by_status(project_id) -> Tuple[List, List]: |
| | | """按照状态统计项目中的报告""" |
| | | from datetime import datetime, timedelta |
| | | |
| | | query = models.Report.objects |
| | | if project_id: |
| | | query = query.filter(project_id=project_id) |
| | | # 只统计最近7天的数据 |
| | | seven_days_ago = datetime.now() - timedelta(days=7) |
| | | query = query.filter(create_time__gte=seven_days_ago) |
| | | report_count: Dict = query.aggregate( |
| | | 失败=Count("pk", filter=Q(status=0)), |
| | | 成功=Count("pk", filter=Q(status=1)), |
| | | 失败=Count("pk", filter=Q(status=False)), |
| | | 成功=Count("pk", filter=Q(status=True)), |
| | | ) |
| | | |
| | | return list(report_count.keys()), list(report_count.values()) |