94 lines
6.1 KiB
Python
94 lines
6.1 KiB
Python
|
||
def handle_manufacturing_content(param1, param2):
|
||
"""
|
||
制造业报告内容处理
|
||
Parameters:
|
||
param1: 报告模板
|
||
param2: 数据模板
|
||
Returns:
|
||
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]['小节内容'][0]
|
||
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]['小节内容'][3]['表格'] = 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:
|
||
# 第一段数据
|
||
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)
|
||
# 第二段数据
|
||
p_1 = report_content[num]['章节内容'][c_num]['小节内容'][1]['段落']
|
||
d_1 = report_data[num][p_value][section][1]
|
||
report_content[num]['章节内容'][c_num]['小节内容'][1]['段落'] = p_1.format(**d_1)
|
||
# 第五段数据(表格)
|
||
report_content[num]['章节内容'][c_num]['小节内容'][4]['表格'] = report_data[num][p_value][section][2]
|
||
# 再判断第一段和第二段数据是否为空,为空则删除
|
||
if report_data[num][p_value][section][0]['Qualification'] == '无':
|
||
del report_content[num]['章节内容'][c_num]['小节内容'][0]
|
||
# 处理段落2之前需判断段落1是否被删除,删除索引都会随之变化
|
||
if len(report_content[num]['章节内容'][c_num]['小节内容']) == 7:
|
||
# 处理段落2,判断是否有认证资质,有则显示这一段,没有则删除
|
||
if report_data[num][p_value][section][1]['Qualification_number'] < 1:
|
||
del report_content[num]['章节内容'][c_num]['小节内容'][1]
|
||
else:
|
||
if report_data[num][p_value][section][1]['Qualification_number'] < 1:
|
||
del report_content[num]['章节内容'][c_num]['小节内容'][0]
|
||
length = len(report_content[num]['章节内容'][c_num]['小节内容'])-1
|
||
del report_content[num]['章节内容'][c_num]['小节内容'][length]
|
||
elif section == '附录2 有关指标的计算公式' or section == '附录3 数字化综合信用等级评价级别释义':
|
||
continue
|
||
elif section == '附录1 主要数据及指标':
|
||
report_content[num]['章节内容'][c_num]['小节内容'][1]['表格'] = report_data[num][p_value]['附录一']
|
||
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
|