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

77 lines
2.4 KiB
Python
Raw Normal View History

2022-01-14 14:15:37 +08:00
import datetime
2022-01-12 14:44:37 +08:00
import os
2022-01-11 16:56:50 +08:00
import time
from flask import Blueprint, request
from Certificate.PdfCertificate import CertificateGenerator
2022-01-12 14:44:37 +08:00
from Certificate.scripts.common import get_certificate_data
from Certificate.scripts.path_tool import get_gen_report_path
2022-02-28 17:03:36 +08:00
from Certificate.db import upload_pdf, upload_esg_pdf
2022-01-11 16:56:50 +08:00
from common.scripts import verify_token
certificate_route = Blueprint('certificate', __name__)
@certificate_route.route('/generate_certificate', methods=['POST'])
@verify_token
def gen_certificate():
"""
2022-02-28 17:03:36 +08:00
生成综合信用评价证书
2022-01-11 16:56:50 +08:00
Parameters:
company str 企业名称
cid str 企业ID
rid str 评价ID
2022-02-28 17:03:36 +08:00
type str 证书类型
2022-01-11 16:56:50 +08:00
Returns:
result: 证书FileID
"""
2022-01-12 14:44:37 +08:00
def certificate(param):
"""
生成证书pdf
Parameters:
param: dict 证书所需数据
Returns:
res: 处理成功返回报告FileID处理失败返回False
"""
# 生成PDF报告文件以时间戳命名临时存储
2022-01-14 14:15:37 +08:00
certificate_file_name = '{}_{}.pdf'.format(req_body['company'], datetime.datetime.now().strftime('%Y%m%d'))
2022-01-12 14:44:37 +08:00
pdf_report = CertificateGenerator(name=certificate_file_name, text_data=param)
2022-02-28 17:03:36 +08:00
if len(param) > 5:
pdf_report.gen_esg()
else:
pdf_report.gen()
2022-01-12 14:44:37 +08:00
return certificate_file_name
def save_certificate(param):
"""
保存证书pdf
Parameters:
param: 证书pdf
Returns:
res: 处理成功返回报告FileID处理失败返回False
"""
# 保存PDF报告文件删除临时存储的报告
2022-02-28 17:03:36 +08:00
if len(text_data) > 5:
file_id = upload_esg_pdf(param)
else:
file_id = upload_pdf(param)
2022-01-12 14:44:37 +08:00
certificate_path = get_gen_report_path(name=param)
os.remove(certificate_path)
# 保存PDF报告成功返回FileID;保存PDF报告文件失败返回False
return file_id if file_id else False
2022-01-11 16:56:50 +08:00
# Parameters
req_body = request.json # 接收的json格式请求体
2022-01-12 14:44:37 +08:00
text_data = get_certificate_data(req_body)
certifice_pdf = certificate(text_data)
result = save_certificate(certifice_pdf)
if result is not False:
return {"info": "生成证书成功", "result": {"FileID": result}}, 200
else:
return {"info": "生成证书失败"}, 210