471 lines
18 KiB
Python
471 lines
18 KiB
Python
from datetime import datetime
|
||
|
||
|
||
def handle_esg_report_data(param1, param2):
|
||
"""
|
||
处理ESG报告模板
|
||
Parameters:
|
||
param1 dict 报告数据
|
||
param2 dict 报告模板
|
||
Returns:
|
||
result dict 报告数据
|
||
"""
|
||
|
||
def handle_paragraph_01(param):
|
||
"""
|
||
远东资信
|
||
Parameters:
|
||
param dict 远东资信段落模板
|
||
Returns:
|
||
result dict 处理好的报告模板
|
||
"""
|
||
param[2]['段落'] = param[2]['段落'].format(param1['报告模板']['远东资信']['联系电话'])
|
||
param[3]['段落'] = param[3]['段落'].format(param1['报告模板']['远东资信']['联系人'])
|
||
return param
|
||
|
||
def handle_paragraph_02(param):
|
||
"""
|
||
基本信息
|
||
Parameters:
|
||
param dict 基本信息段落模板
|
||
Returns:
|
||
result dict 处理好的报告模板
|
||
"""
|
||
param[0]['段落'] = param[0]['段落'].format(param1['报告模板']['基本信息']['公司名称'])
|
||
param[1]['段落'] = param[1]['段落'].format(param1['报告模板']['基本信息']['所属行业'])
|
||
return param
|
||
|
||
def handle_paragraph_03(param):
|
||
"""
|
||
公司ESG等级
|
||
Parameters:
|
||
param dict 公司ESG等级段落模板
|
||
Returns:
|
||
result dict 处理好的报告模板
|
||
"""
|
||
param[0]['段落'] = param[0]['段落'].format(param1['报告模板']['公司ESG等级']['评价等级'])
|
||
return param
|
||
|
||
def handle_paragraph_04(param):
|
||
"""
|
||
环境部分
|
||
Parameters:
|
||
param dict 环境部分段落模板
|
||
Returns:
|
||
result dict 处理好的报告模板
|
||
"""
|
||
|
||
def handle_part_03():
|
||
"""
|
||
段落3
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['环境部分']['段落3']
|
||
param[2]['段落'] = param[2]['段落'].format(date_range=data['date_range'], co2_emissions=data['co2_emissions'])
|
||
|
||
def handle_part_04():
|
||
"""
|
||
段落4
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['环境部分']['段落4']
|
||
param[3]['段落'] = param[3]['段落'].format(date_range=data['date_range'], co2_emissions=data['co2_emissions'],
|
||
year_02=data['year_02'], year_03=data['year_03'],
|
||
year01_on_year02=data['year01_on_year02'],
|
||
year02_on_year03=data['year02_on_year03'],
|
||
industry_indicators=data['industry_indicators'],
|
||
industry_indicators_average=data['industry_indicators_average'],
|
||
industry_indicators_median=data['industry_indicators_median'],
|
||
median_comparison=data['median_comparison'])
|
||
|
||
def handle_part_06():
|
||
"""
|
||
段落4
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['环境部分']['段落6']
|
||
param[5]['段落'] = param[5]['段落'].format(date_range=data['date_range'],
|
||
energy_consumption=data['energy_consumption'])
|
||
|
||
def handle_part_07():
|
||
"""
|
||
段落7
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['环境部分']['段落7']
|
||
param[6]['段落'] = param[6]['段落'].format(date_range=data['date_range'],
|
||
energy_consumption=data['energy_consumption'],
|
||
year_02=data['year_02'], year_03=data['year_03'],
|
||
year01_on_year02=data['year01_on_year02'],
|
||
year02_on_year03=data['year02_on_year03'],
|
||
industry_indicators=data['industry_indicators'],
|
||
industry_indicators_average=data['industry_indicators_average'],
|
||
industry_indicators_median=data['industry_indicators_median'],
|
||
median_comparison=data['median_comparison'])
|
||
|
||
def handle_part_08():
|
||
"""
|
||
段落8
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['环境部分']['段落8']
|
||
param[7]['段落'] = param[7]['段落'].format(date_range=data['date_range'],
|
||
energy_consumption=data['energy_consumption'])
|
||
|
||
def handle_part_09():
|
||
"""
|
||
段落9
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['环境部分']['段落9']
|
||
param[8]['段落'] = param[8]['段落'].format(date_range=data['date_range'],
|
||
energy_consumption=data['energy_consumption'])
|
||
|
||
def handle_part_10():
|
||
"""
|
||
段落10
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['环境部分']['段落10']
|
||
param[9]['段落'] = param[9]['段落'].format(date_range=data['date_range'],
|
||
consume_water=data['consume_water'])
|
||
|
||
def handle_part_11():
|
||
"""
|
||
段落11
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['环境部分']['段落11']
|
||
param[10]['段落'] = param[10]['段落'].format(date_range=data['date_range'],
|
||
consume_water=data['consume_water'],
|
||
year_02=data['year_02'], year_03=data['year_03'],
|
||
year01_on_year02=data['year01_on_year02'],
|
||
year02_on_year03=data['year02_on_year03'],
|
||
industry_indicators=data['industry_indicators'],
|
||
industry_indicators_average=data['industry_indicators_average'],
|
||
industry_indicators_median=data['industry_indicators_median'],
|
||
median_comparison=data['median_comparison'])
|
||
|
||
def handle_part_12():
|
||
"""
|
||
段落12
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['环境部分']['段落12']
|
||
param[11]['段落'] = param[11]['段落'].format(describe=data['describe'])
|
||
|
||
def hanlde_part_13():
|
||
"""
|
||
段落13
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['环境部分']['段落13']
|
||
param[12]['段落'] = param[12]['段落'].format(describe=data['describe'])
|
||
|
||
def judge_false():
|
||
"""
|
||
判断语句描述中是否有false,有则删除
|
||
Parameters:
|
||
param type 参数名
|
||
Returns:
|
||
result type 返回数据
|
||
"""
|
||
new_list = list()
|
||
for item in param:
|
||
if item['段落'] != 'False':
|
||
new_list.append(item)
|
||
return new_list
|
||
|
||
# 调用子方法
|
||
handle_part_03()
|
||
handle_part_04()
|
||
handle_part_06()
|
||
handle_part_07()
|
||
handle_part_08()
|
||
handle_part_09()
|
||
handle_part_10()
|
||
handle_part_11()
|
||
handle_part_12()
|
||
hanlde_part_13()
|
||
result = judge_false()
|
||
return result
|
||
|
||
def handle_paragraph_05(param):
|
||
"""
|
||
社会部分
|
||
Parameters:
|
||
param dict 社会部分段落模板
|
||
Returns:
|
||
result dict 处理好的报告模板
|
||
"""
|
||
|
||
def handle_part_02():
|
||
"""
|
||
段落2
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['社会部分']['段落2']
|
||
param[1]['段落'] = param[1]['段落'].format(date_range=data['date_range'], turnover_ratio=data['turnover_ratio'],
|
||
year_03=data['year_03'],
|
||
industry_indicators=data['industry_indicators'],
|
||
industry_indicators_average=data['industry_indicators_average'],
|
||
industry_indicators_median=data['industry_indicators_median'],
|
||
median_comparison=data['median_comparison'])
|
||
|
||
def handle_part_03():
|
||
"""
|
||
段落3
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['社会部分']['段落3']
|
||
param[2]['段落'] = param[2]['段落'].format(date_range=data['date_range'], salary_level=data['salary_level'],
|
||
year_02=data['year_02'], year_03=data['year_03'],
|
||
year01_on_year02=data['year01_on_year02'],
|
||
year02_on_year03=data['year02_on_year03'],
|
||
industry_indicators=data['industry_indicators'],
|
||
industry_indicators_average=data['industry_indicators_average'],
|
||
industry_indicators_median=data['industry_indicators_median'],
|
||
median_comparison=data['median_comparison'])
|
||
|
||
def handle_part_04():
|
||
"""
|
||
段落4
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['社会部分']['段落4']
|
||
param[3]['段落'] = param[3]['段落'].format(describe=data['describe'])
|
||
|
||
def handle_part_05():
|
||
"""
|
||
段落5
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['社会部分']['段落5']
|
||
param[4]['段落'] = param[4]['段落'].format(describe=data['describe'])
|
||
|
||
def handle_part_06():
|
||
"""
|
||
段落6
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['社会部分']['段落6']
|
||
param[5]['段落'] = param[5]['段落'].format(date_range=data['date_range'],
|
||
training_number=data['training_number'], year_03=data['year_03'],
|
||
industry_indicators=data['industry_indicators'])
|
||
|
||
def handle_part_07():
|
||
"""
|
||
段落7
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['社会部分']['段落7']
|
||
param[6]['段落'] = param[6]['段落'].format(date_range=data['date_range'],
|
||
salary_level=data['salary_level'], year_03=data['year_03'],
|
||
industry_indicators=data['industry_indicators'])
|
||
|
||
def handle_part_08():
|
||
"""
|
||
段落8
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['社会部分']['段落8']
|
||
param[7]['段落'] = param[7]['段落'].format(describe=data['describe'])
|
||
|
||
def handle_part_09():
|
||
"""
|
||
段落9
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['社会部分']['段落9']
|
||
param[8]['段落'] = param[8]['段落'].format(describe=data['describe'])
|
||
|
||
def judge_false():
|
||
"""
|
||
判断语句描述中是否有false,有则删除
|
||
Parameters:
|
||
param type 参数名
|
||
Returns:
|
||
result type 返回数据
|
||
"""
|
||
new_list = list()
|
||
for item in param:
|
||
if item['段落'] != 'False':
|
||
new_list.append(item)
|
||
return new_list
|
||
|
||
# 调用子方法
|
||
handle_part_02()
|
||
handle_part_03()
|
||
handle_part_04()
|
||
handle_part_05()
|
||
handle_part_06()
|
||
handle_part_07()
|
||
handle_part_08()
|
||
handle_part_09()
|
||
result = judge_false()
|
||
return result
|
||
|
||
def handle_paragraph_06(param):
|
||
"""
|
||
公司治理部分
|
||
Parameters:
|
||
param dict 社会部分段落模板
|
||
Returns:
|
||
result dict 处理好的报告模板
|
||
"""
|
||
|
||
def handle_part_02():
|
||
"""
|
||
段落2
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['公司治理部分']['段落2']
|
||
param[1]['段落'] = param[1]['段落'].format(describe=data['describe'])
|
||
|
||
def handle_part_03():
|
||
"""
|
||
段落3
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['公司治理部分']['段落3']
|
||
param[2]['段落'] = param[2]['段落'].format(describe=data['describe'])
|
||
|
||
def handle_part_04():
|
||
"""
|
||
段落4
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['公司治理部分']['段落4']
|
||
param[3]['段落'] = param[3]['段落'].format(experience_year=data['experience_year'],
|
||
industry_indicators_average=data['industry_indicators_average'])
|
||
|
||
def handle_part_05():
|
||
"""
|
||
段落5
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['公司治理部分']['段落5']
|
||
param[4]['段落'] = param[4]['段落'].format(describe=data['describe'])
|
||
|
||
def handle_part_06():
|
||
"""
|
||
段落6
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
result dict 处理好的报告段落模板
|
||
"""
|
||
data = param1['报告模板']['公司治理部分']['段落6']
|
||
param[5]['段落'] = param[5]['段落'].format(board_meetings_number=data['board_meetings_number'],
|
||
industry_indicators_average=data['industry_indicators_average'])
|
||
|
||
def judge_false():
|
||
"""
|
||
判断语句描述中是否有false,有则删除
|
||
Parameters:
|
||
param type 参数名
|
||
Returns:
|
||
result type 返回数据
|
||
"""
|
||
new_list = list()
|
||
for item in param:
|
||
if item['段落'] != 'False':
|
||
new_list.append(item)
|
||
return new_list
|
||
|
||
# 调用子方法
|
||
handle_part_02()
|
||
handle_part_03()
|
||
handle_part_04()
|
||
handle_part_05()
|
||
handle_part_06()
|
||
result = judge_false()
|
||
return result
|
||
|
||
param2['企业名称'] = param1['企业名称']
|
||
param2['评价ID'] = param1['评价ID']
|
||
param2['企业ID'] = param1['企业ID']
|
||
param2['评价年度'] = param1['评价年度']
|
||
param2['生成日期'] = datetime.now().strftime("%Y-%m-%d")
|
||
for index in range(len(param2['报告内容'])):
|
||
if param2['报告内容'][index]['章节'] == '远东资信':
|
||
param2['报告内容'][index]['章节内容'] = handle_paragraph_01(param2['报告内容'][index]['章节内容'])
|
||
elif param2['报告内容'][index]['章节'] == '基本信息':
|
||
param2['报告内容'][index]['章节内容'] = handle_paragraph_02(param2['报告内容'][index]['章节内容'])
|
||
elif param2['报告内容'][index]['章节'] == '公司ESG等级':
|
||
param2['报告内容'][index]['章节内容'] = handle_paragraph_03(param2['报告内容'][index]['章节内容'])
|
||
elif param2['报告内容'][index]['章节'] == '环境部分':
|
||
param2['报告内容'][index]['章节内容'] = handle_paragraph_04(param2['报告内容'][index]['章节内容'])
|
||
elif param2['报告内容'][index]['章节'] == '社会部分':
|
||
param2['报告内容'][index]['章节内容'] = handle_paragraph_05(param2['报告内容'][index]['章节内容'])
|
||
elif param2['报告内容'][index]['章节'] == '公司治理部分':
|
||
param2['报告内容'][index]['章节内容'] = handle_paragraph_06(param2['报告内容'][index]['章节内容'])
|
||
|
||
return param2
|