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()