2021-12-20 17:08:04 +08:00
|
|
|
|
import re
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def handle_report_content(param1, param2):
|
|
|
|
|
"""
|
|
|
|
|
报告摘要部分数据处理
|
|
|
|
|
Parameters:
|
2021-12-21 00:38:36 +08:00
|
|
|
|
param1: 报告模板
|
|
|
|
|
param2: 数据模板
|
2021-12-20 17:08:04 +08:00
|
|
|
|
Returns:
|
2021-12-21 00:38:36 +08:00
|
|
|
|
result: 报告结果
|
2021-12-20 17:08:04 +08:00
|
|
|
|
"""
|
|
|
|
|
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]['小节']
|
2021-12-21 17:10:59 +08:00
|
|
|
|
# 主要财务数据为表格
|
2021-12-20 17:08:04 +08:00
|
|
|
|
if section == '主要财务数据':
|
2021-12-21 17:10:59 +08:00
|
|
|
|
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
|
2021-12-20 17:08:04 +08:00
|
|
|
|
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]
|
2021-12-21 17:10:59 +08:00
|
|
|
|
if d is None:
|
|
|
|
|
continue
|
|
|
|
|
else:
|
|
|
|
|
report_content[num]['章节内容'][c_num]['小节内容'][cn]['段落'] = p.format(**d)
|
2021-12-20 17:08:04 +08:00
|
|
|
|
|
|
|
|
|
return report_content
|