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

106 lines
7.1 KiB
Python
Raw Normal View History

import re
def handle_report_content(param1, param2):
"""
报告摘要部分数据处理
Parameters:
2021-12-21 00:38:36 +08:00
param1: 报告模板
param2: 数据模板
Returns:
2021-12-21 00:38:36 +08:00
result: 报告结果
"""
report_content = param1['报告内容']
report_data = param2['报告模板']
for num in range(len(report_content)):
p_value = report_content[num]['章节']
p_num = len(report_content[num]['章节内容'])
for c_num in range(p_num):
section = report_content[num]['章节内容'][c_num]['小节']
# 主要财务数据为表格
if section == '主要财务数据':
report_content[num]['章节内容'][c_num]['小节内容'][2]['表格'] = report_data[num][p_value]['主要财务数据']
# 判断股东实力部分如果返回数据长度为1则为自然人段落长度为2为企业段落
elif section == '股东实力':
if len(report_data[num][p_value][section]) == 1:
p = report_content[num]['章节内容'][c_num]['小节内容'][2]['段落']
d = report_data[num][p_value][section][0]
report_content[num]['章节内容'][c_num]['小节内容'][2]['段落'] = p.format(**d)
del report_content[num]['章节内容'][c_num]['小节内容'][0]
del report_content[num]['章节内容'][c_num]['小节内容'][1]
else:
del report_content[num]['章节内容'][c_num]['小节内容'][2]
content_num = len(report_content[num]['章节内容'][c_num]['小节内容'])
for cn in range(content_num):
# 段落内容
p = report_content[num]['章节内容'][c_num]['小节内容'][cn]['段落']
d = report_data[num][p_value][section][cn]
report_content[num]['章节内容'][c_num]['小节内容'][cn]['段落'] = p.format(**d)
# 对外投资段落中,只需要处理第一段和第四段,其余都是表格描述语句
elif section == '对外投资':
# 处理段落1
p_0 = report_content[num]['章节内容'][c_num]['小节内容'][0]['段落']
d_0 = report_data[num][p_value][section][0]
report_content[num]['章节内容'][c_num]['小节内容'][0]['段落'] = p_0.format(**d_0)
# 处理段落4-表格
report_content[num]['章节内容'][c_num]['小节内容'][4]['表格'] = report_data[num][p_value][section][1]
elif section == '资质荣誉':
# 如果资质荣誉无数据只显示第三段,有数据则删除第三段
if len(report_data[num][p_value][section]) == 1:
del report_content[num]['章节内容'][c_num]['小节内容'][0]
del report_content[num]['章节内容'][c_num]['小节内容'][1]
del report_content[num]['章节内容'][c_num]['小节内容'][2]
del report_content[num]['章节内容'][c_num]['小节内容'][3]
del report_content[num]['章节内容'][c_num]['小节内容'][4]
del report_content[num]['章节内容'][c_num]['小节内容'][5]
else:
# 处理段落1判断是否有资质有则显示这一段没有则删除
if report_data[num][p_value][section][0]['Qualification'] == '':
del report_content[num]['章节内容'][c_num]['小节内容'][0]
else:
p_0 = report_content[num]['章节内容'][c_num]['小节内容'][0]['段落']
d_0 = report_data[num][p_value][section][0]
report_content[num]['章节内容'][c_num]['小节内容'][0]['段落'] = p_0.format(**d_0)
# 处理段落2之前需判断段落1是否被删除删除索引都会随之变化
if len(report_content[num]['章节内容'][c_num]['小节内容']) == 7:
# 处理段落2,判断是否有认证资质,有则显示这一段,没有则删除
if report_data[num][p_value][section][1]['Qualification_number'] > 0:
p_2 = report_content[num]['章节内容'][c_num]['小节内容'][1]['段落']
d_2 = report_data[num][p_value][section][1]
report_content[num]['章节内容'][c_num]['小节内容'][1]['段落'] = p_2.format(**d_2)
else:
del report_content[num]['章节内容'][c_num]['小节内容'][1]
# 第一段被删除的情况
else:
if report_data[num][p_value][section][0]['Qualification_number'] > 0:
p_2 = report_content[num]['章节内容'][c_num]['小节内容'][0]['段落']
d_2 = report_data[num][p_value][section][1]
report_content[num]['章节内容'][c_num]['小节内容'][0]['段落'] = p_2.format(**d_2)
else:
del report_content[num]['章节内容'][c_num]['小节内容'][0]
# 处理之前先判断表格数据是否为空,再判断前两段是否已经被删除
if len(report_data[num][p_value][section][2]) > 1:
if len(report_content[num]['章节内容'][c_num]['小节内容']) == 7:
# 处理段落6-表格
report_content[num]['章节内容'][c_num]['小节内容'][5]['表格'] = report_data[num][p_value][section][2]
elif len(report_content[num]['章节内容'][c_num]['小节内容']) == 6:
report_content[num]['章节内容'][c_num]['小节内容'][4]['表格'] = report_data[num][p_value][section][2]
elif len(report_content[num]['章节内容'][c_num]['小节内容']) == 5:
report_content[num]['章节内容'][c_num]['小节内容'][3]['表格'] = report_data[num][p_value][section][2]
length = len(report_content[num]['章节内容'][c_num]['小节内容'])-1
del report_content[num]['章节内容'][c_num]['小节内容'][length]
elif section == '附录2 有关指标的计算公式' or section == '附录3 数字化综合信用等级评价级别释义':
continue
else:
content_num = len(report_content[num]['章节内容'][c_num]['小节内容'])
for cn in range(content_num):
# 段落内容
p = report_content[num]['章节内容'][c_num]['小节内容'][cn]['段落']
d = report_data[num][p_value][section][cn]
if d is None:
continue
else:
report_content[num]['章节内容'][c_num]['小节内容'][cn]['段落'] = p.format(**d)
return report_content