feat(file-summary): 生成汇总报告和导出下载

This commit is contained in:
2026-06-06 01:22:49 +08:00
parent 18d045d487
commit 61bd31790b
8 changed files with 286 additions and 5 deletions

View File

@@ -1,8 +1,10 @@
from django.contrib.auth.decorators import login_required
from django.http import Http404, JsonResponse
from pathlib import Path
from django.http import FileResponse, Http404, JsonResponse
from django.views.decorators.http import require_http_methods
from review_agent.models import Conversation, FileAttachment
from review_agent.models import Conversation, ExportedSummaryFile, FileAttachment
from review_agent.models import FileSummaryBatch, WorkflowEvent
from .events import serialize_event
@@ -105,3 +107,18 @@ def batch_events(request, batch_id: int):
after_id = 0
events = WorkflowEvent.objects.filter(batch=batch, pk__gt=after_id).order_by("id")
return JsonResponse({"events": [serialize_event(event) for event in events]})
@require_http_methods(["GET"])
@login_required
def export_download(request, export_id: int):
exported = ExportedSummaryFile.objects.filter(
pk=export_id,
batch__user=request.user,
).first()
if not exported:
raise Http404("导出文件不存在。")
path = Path(exported.storage_path)
if not path.exists():
return JsonResponse({"error": "文件不存在。"}, status=404)
return FileResponse(path.open("rb"), as_attachment=True, filename=exported.file_name)