tfse-model-api-v0.2/Report/scripts/contents.py

205 lines
13 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 == '对外投资':
# 判断对外投资是否有数据
if len(report_data[num][p_value][section]) == 1:
d_0 = report_data[num][p_value][section][0]['describe']
report_content[num]['章节内容'][c_num]['小节内容'] = list()
insert_p = dict()
insert_p['段落'] = d_0
report_content[num]['章节内容'][c_num]['小节内容'].append(insert_p)
else:
# 处理段落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:
report_content[num]['章节内容'][c_num]['小节内容'] = list()
insert_dict = dict()
insert_dict['段落'] = '经查询,公司无技术、产品品质或品牌等方面的荣誉资质。'
report_content[num]['章节内容'][c_num]['小节内容'].append(insert_dict)
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
def handle_information_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 == '对外投资':
# 判断对外投资是否有数据
if len(report_data[num][p_value][section]) == 1:
d_0 = report_data[num][p_value][section][0]['describe']
report_content[num]['章节内容'][c_num]['小节内容'] = list()
insert_p = dict()
insert_p['段落'] = d_0
report_content[num]['章节内容'][c_num]['小节内容'].append(insert_p)
else:
# 处理段落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:
report_content[num]['章节内容'][c_num]['小节内容'] = list()
insert_dict = dict()
insert_dict['段落'] = '经查询,公司无技术、产品品质或品牌等方面的荣誉资质。'
report_content[num]['章节内容'][c_num]['小节内容'].append(insert_dict)
else:
# 第一段数据
if report_data[num][p_value][section][0] == '无数据':
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)
# 第二段数据
if report_data[num][p_value][section][1] == '无数据':
report_content[num]['章节内容'][c_num]['小节内容'][1]['段落'] = '无数据'
else:
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)
# 第三段数据
if report_data[num][p_value][section][2] == '无数据':
report_content[num]['章节内容'][c_num]['小节内容'][2]['段落'] = '无数据'
else:
p_2 = report_content[num]['章节内容'][c_num]['小节内容'][2]['段落']
d_2 = report_data[num][p_value][section][2]
report_content[num]['章节内容'][c_num]['小节内容'][2]['段落'] = p_2.format(**d_2)
# 第五段数据(表格)
report_content[num]['章节内容'][c_num]['小节内容'][5]['表格'] = report_data[num][p_value][section][3]
# 再判断第一段、第二段、第三段数据是否为无数据,为无则删除
new_list = filter(lambda x: x != {"段落": "无数据"}, report_content[num]['章节内容'][c_num]['小节内容'])
report_content[num]['章节内容'][c_num]['小节内容'] = list(new_list)
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