diff --git a/Report/ReportModel.py b/Report/ReportModel.py index 240f586..85d7cfa 100644 --- a/Report/ReportModel.py +++ b/Report/ReportModel.py @@ -31,9 +31,3 @@ if __name__ == '__main__': tem_data = json.load(f) r = ReportModel(rep_data, tem_data).report_vlaues() print(r) - - """ - 1.对外投资模块需要特殊处理 - 2.资质荣誉需要判断数据是否存在,如果无数据则显示段落3 - 3.环境治理中段落3,绿色业务占比 - """ \ No newline at end of file diff --git a/Report/db.py b/Report/db.py index e0bc65f..fc72d89 100644 --- a/Report/db.py +++ b/Report/db.py @@ -56,6 +56,14 @@ def find_tfse_db(**kwargs): return data -if __name__ == '__main__': - pid = upload_pdf('远东资信评估有限公司') - file = download_pdf(pid) +def conserve_data(**kwargs): + """ + 根据评价ID保存数据 + Parameters: + kwargs: 查询条件 + Returns: + 保存结果 + """ + collection = client[kwargs['db']][kwargs['col']] + collection.update_one({"企业ID": kwargs['cid']}, {"$set": kwargs['insert_data']}, upsert=True) + return '保存成功' diff --git a/Report/routes.py b/Report/routes.py index 982f0dd..8ee1891 100644 --- a/Report/routes.py +++ b/Report/routes.py @@ -1,38 +1,74 @@ import json import os +import requests 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.db import upload_pdf, download_pdf, find_tfse_db, conserve_data from Report.path_tool import get_gen_report_path +from common.scripts import verify_token report_route = Blueprint('result', __name__) @report_route.route('/gen_pdf', methods=['POST']) +@verify_token def report_pdf(): + # 获取报告模板json 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() + cid = req['cid'] - # 将报告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') + # 获取报告数据 + def get_report_data(): + url = 'http://139.9.249.34:51011/etl_tfse/rating/report_data' + token = 'dmfd7FshT!5Wng9^gcCcQV7T6FBnVgl4' + headers = {'token': token, 'Content-Type': 'application/json;charset=UTF-8'} + req_data = json.dumps(req) + 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: return {"info": "报告数据不存在"}, 400 diff --git a/Report/script.py b/Report/script.py index 8ff1011..ed16ef6 100644 --- a/Report/script.py +++ b/Report/script.py @@ -3,7 +3,7 @@ import re def handle_report_content(param1, param2): """ - 报告摘要部分数据处理 + 报告数据处理 Parameters: param1: 报告模板 param2: 数据模板 diff --git a/static/test_data/manufacturing_report.json b/static/test_data/manufacturing_report.json index b6dd1cb..cd02bf1 100644 --- a/static/test_data/manufacturing_report.json +++ b/static/test_data/manufacturing_report.json @@ -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}。" } ] },