update 更改报告生成方法中获取数据的方式

This commit is contained in:
彭森 2021-12-24 14:02:33 +08:00
parent 870d9dde06
commit 984d990cd5
5 changed files with 64 additions and 26 deletions

View File

@ -31,9 +31,3 @@ if __name__ == '__main__':
tem_data = json.load(f) tem_data = json.load(f)
r = ReportModel(rep_data, tem_data).report_vlaues() r = ReportModel(rep_data, tem_data).report_vlaues()
print(r) print(r)
"""
1.对外投资模块需要特殊处理
2.资质荣誉需要判断数据是否存在如果无数据则显示段落3
3.环境治理中段落3绿色业务占比
"""

View File

@ -56,6 +56,14 @@ def find_tfse_db(**kwargs):
return data return data
if __name__ == '__main__': def conserve_data(**kwargs):
pid = upload_pdf('远东资信评估有限公司') """
file = download_pdf(pid) 根据评价ID保存数据
Parameters:
kwargs: 查询条件
Returns:
保存结果
"""
collection = client[kwargs['db']][kwargs['col']]
collection.update_one({"企业ID": kwargs['cid']}, {"$set": kwargs['insert_data']}, upsert=True)
return '保存成功'

View File

@ -1,38 +1,74 @@
import json import json
import os import os
import requests
from flask import Blueprint, request, Response from flask import Blueprint, request, Response
from Report.PdfReport import ReportGenerator from Report.PdfReport import ReportGenerator
from Report.ReportModel import ReportModel from Report.ReportModel import ReportModel
from Report.db import upload_pdf, download_pdf, find_tfse_db from Report.db import upload_pdf, download_pdf, find_tfse_db, conserve_data
from Report.path_tool import get_gen_report_path from Report.path_tool import get_gen_report_path
from common.scripts import verify_token
report_route = Blueprint('result', __name__) report_route = Blueprint('result', __name__)
@report_route.route('/gen_pdf', methods=['POST']) @report_route.route('/gen_pdf', methods=['POST'])
@verify_token
def report_pdf(): def report_pdf():
# 获取报告模板json
with open("static/test_data/manufacturing_report.json", "r", encoding="utf-8") as f: with open("static/test_data/manufacturing_report.json", "r", encoding="utf-8") as f:
temp_data = json.load(f) temp_data = json.load(f)
# 企业名称
req = request.json req = request.json
name = req['company'] name = req['company']
req_data = find_tfse_db(db='评价', col='报告数据', query={'企业ID': req['cid'], '评价ID': req['rid']}) cid = req['cid']
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) def get_report_data():
if file_id: url = 'http://139.9.249.34:51011/etl_tfse/rating/report_data'
file_path = get_gen_report_path(name=name) token = 'dmfd7FshT!5Wng9^gcCcQV7T6FBnVgl4'
os.remove(file_path) headers = {'token': token, 'Content-Type': 'application/json;charset=UTF-8'}
file = download_pdf(file_id) req_data = json.dumps(req)
response = Response(file, content_type='application/pdf') result = requests.post(url, headers=headers, data=req_data)
if result.status_code == 200:
data = json.loads(result.text)
else:
data = None
return data
# 执行子方法
report_data = get_report_data()
return response # 保存处理好的报告数据
def save_report_data(r_data):
res = conserve_data(db='评价', col='报告数据', cid=cid, insert_data=r_data)
if res != '保存成功':
return '报告数据保存失败'
else:
return res
# 判断表格数据是否获取成功
if report_data is not None:
text_model = ReportModel(rep_json=report_data['data'], temp_data=temp_data).report_vlaues()
# 保存text_model到报告数据库
save_result = save_report_data(text_model)
if save_result == '保存成功':
# 生成报告保存到static临时文件夹
pdf_report = ReportGenerator(name=name, text_model=text_model)
pdf_report.gen_report()
# 将报告pdf保存到数据库并删掉本地报告
file_id = upload_pdf(name)
# 根据名称保存报告获取file_id
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": save_result}, 210
else: else:
return {"info": "报告数据不存在"}, 400 return {"info": "报告数据不存在"}, 400

View File

@ -3,7 +3,7 @@ import re
def handle_report_content(param1, param2): def handle_report_content(param1, param2):
""" """
报告摘要部分数据处理 报告数据处理
Parameters: Parameters:
param1: 报告模板 param1: 报告模板
param2: 数据模板 param2: 数据模板

View File

@ -367,7 +367,7 @@
"段落": "制造业细分行业较多,通常来说,包括创新型企业、智能制造企业在内的先进制造业企业产品技术含量较高,处于成长期或成熟期的先进制造业企业盈利能力较好;处于初创期的先进制造业企业正处于拓展市场阶段,收入规模较小,而研发支出和固定资产投资支出规模较大,导致盈利能力偏弱,多处于亏损状态。传统制造业多为低端制造业,或存在产能过剩,行业竞争激烈,处于微笑曲线下端,大型企业尚可通过规模效应获得一定利润,中小企业盈利能力较弱。" "段落": "制造业细分行业较多,通常来说,包括创新型企业、智能制造企业在内的先进制造业企业产品技术含量较高,处于成长期或成熟期的先进制造业企业盈利能力较好;处于初创期的先进制造业企业正处于拓展市场阶段,收入规模较小,而研发支出和固定资产投资支出规模较大,导致盈利能力偏弱,多处于亏损状态。传统制造业多为低端制造业,或存在产能过剩,行业竞争激烈,处于微笑曲线下端,大型企业尚可通过规模效应获得一定利润,中小企业盈利能力较弱。"
}, },
{ {
"段落": "公司收入规模{income_scale},产品技术含量{technology_level}成本控制能力{cost_control_capability}{date}年公司净资产收益率、总资产报酬率分别为{return_on_net_assets_analysis}%和{return_on_total_assets_analysis}%,盈利能力{profitability_analysis}。" "段落": "公司收入规模{income_scale},产品技术含量{technology_level}{date}年公司净资产收益率、总资产报酬率分别为{return_on_net_assets_analysis}%和{return_on_total_assets_analysis}%,盈利能力{profitability_analysis}。"
} }
] ]
}, },