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

63 lines
2.0 KiB
Python

import datetime
import json
import time
from Report.PdfReport import ReportGenerator
from Report.scripts.contents import *
class ReportModel:
"""
信息技术业报告模板
"""
def __init__(self, prepare, template):
"""
Parameters:
prepare: dict 报告准备数据
template: dict 报告模板
"""
self.data = prepare
self.doc = template
def report_values(self):
"""
生成报告数据
Parameters:
report_template 报告准备数据
report_data 报告模板
Returns:
report_template 报告数据
"""
self.doc['评价ID'] = self.data['评价ID']
self.doc['企业ID'] = self.data['企业ID']
self.doc['企业名称'] = self.data['企业名称']
self.doc['评价年度'] = self.data['评价年度']
self.doc['行业选择'] = self.data['行业选择']
self.doc['生成日期'] = datetime.datetime.now().strftime("%Y-%m-%d")
self.doc['报告内容'] = self.report_content()
return self.doc
def report_content(self):
"""
根据行业选择报告内容具体逻辑流程
"""
industry = self.data['行业选择'][0]
if industry == '制造业':
return handle_manufacturing_content(self.doc, self.data)
elif industry == '信息技术业':
return handle_information_content(self.doc, self.data)
if __name__ == '__main__':
with open('../Report/static/test/report_data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
with open('../Report/static/ReportTemplates/制造业.json', 'r', encoding='utf-8') as f:
doc = json.load(f)
model = ReportModel(data, doc)
text_model = model.report_values()
report_file_name = '{}_{}.pdf'.format(data['企业名称'], int(time.time()))
pdf_report = ReportGenerator(name=report_file_name, text_model=text_model)
pdf_report.gen_report()