tfse-model-api-v0.2/Report/routes.py

63 lines
2.1 KiB
Python

import json
import os
from flask import Blueprint, request, Response
from Report.PdfReport import ReportGenerator
from Report.ReportModel import ReportModel
from Report.db import upload_pdf, download_pdf, find_tfse_db
from Report.path_tool import get_gen_report_path
report_route = Blueprint('result', __name__)
# @report_route.route('/gen_pdf', methods=['POST'])
# def gen_pdf():
# with open("../static/test_data/report_template.json", "r", encoding="utf-8") as f:
# data = json.load(f)
# req = request.json
# name = req['企业名称']
# text_model = ReportModel(req_json=req, tep_json=data).report_vlaues()
# # 生成报告保存到static临时文件夹
# pdf_report = ReportGenerator(name=name, text_model=text_model)
# pdf_report.gen_report()
#
# # 将报告pdf保存到数据库并删掉本地报告
# file_id = upload_pdf(name)
# if file_id:
# file_path = get_gen_report_path(name=name)
# os.remove(file_path)
# file = download_pdf(file_id)
# response = Response(file, content_type='application/pdf')
#
# return response
@report_route.route('/gen_pdf', methods=['POST'])
def report_pdf():
with open("static/test_data/manufacturing_report.json", "r", encoding="utf-8") as f:
temp_data = json.load(f)
req = request.json
name = req['company']
req_data = find_tfse_db(db='评价', col='报告数据', query={'企业ID': req['cid'], '评价ID': req['rid']})
if len(req_data) > 0:
text_model = ReportModel(rep_json=req_data[0], temp_data=temp_data).report_vlaues()
# 生成报告保存到static临时文件夹
pdf_report = ReportGenerator(name=name, text_model=text_model)
pdf_report.gen_report()
# 将报告pdf保存到数据库并删掉本地报告
file_id = upload_pdf(name)
if file_id:
file_path = get_gen_report_path(name=name)
os.remove(file_path)
file = download_pdf(file_id)
response = Response(file, content_type='application/pdf')
return response
else:
return {"info": "报告数据不存在"}, 400