diff --git a/app/controllers/traces/projects_controller.rb b/app/controllers/traces/projects_controller.rb index 62573a1d8..e39d77a9e 100644 --- a/app/controllers/traces/projects_controller.rb +++ b/app/controllers/traces/projects_controller.rb @@ -69,12 +69,18 @@ class Traces::ProjectsController < Traces::BaseController def task_pdf - return render_error("task_id错误") if params[:task_id].blank? - result = Trace::PdfReportService.call(current_user.trace_token, params[:task_id]) - if result.is_a?(Hash) && result[:code] == 200 - redirect_to result[:download_url] + task_id = params[:task_id] + return render_error("task_id错误") if task_id.blank? + file_save_path = "public/trace_task_results/#{task_id}/report.pdf" + if File.exists?(file_save_path) + redirect_to "/trace_task_results/#{task_id}/report.pdf" else - render_error("下载报告失败!") + result = Trace::PdfReportService.call(current_user.trace_token, task_id) + if result.is_a?(Hash) && result[:code] == 200 + redirect_to result[:download_url] + else + render_error("下载报告失败!") + end end rescue Exception => exception puts exception.message