tfse-etl-api-v0.2/RatingData/scripts/report/esg_evaluation.py

258 lines
14 KiB
Python

import datetime
def environmental_governance(param):
"""
资质荣誉 区分行业
Parameters:
param: 数据库数据
"""
industry = param['综合评价填报']['行业选择'][0]
if industry == '制造业':
return environmental_governance_manufacturing(param)
elif industry == '信息技术业':
return environmental_governance_infomation(param)
def environmental_governance_manufacturing(param):
"""
环境治理-制造业
清洗数据库数据,根据需要返回
Parameters:
param: 数据库数据
Returns:
环境治理数据
"""
# Params
data_01 = param['评价结果']
data_02 = param['资质证书']['资质证书']
date = str(datetime.datetime.today().year) + ''
cp = ['排污许可证', '环保部_限制类固体废物进口', '排污登记信息', '环保部_国家重点监控企业名单', '环保部_自动类固体废物进口']
ep = ['低碳产品认证', '中国节能环保产品', '低碳产品认证-铝合金建筑型材', 'FSC认证', '环保产品认证', '环境标志产品', '环境管理体系认证',
'绿色产品(认证活动一)', '绿色食品生产资料--食品添加剂类', '节能产品认证(不含建筑节能)', '低碳产品认证-通用硅酸盐水泥',
'电子信息产品污染控制自愿性认证', '中国环保产品认证证书', '中国环保标志产品认证证书', '商品和服务在生命周期内的温室气体排放评价规范认证',
'中国绿色环保企业', '绿色食品生产资料--饲料及饲料添加剂类', '中国优秀节能减排绿色环保企业', '工业固废处置及资源化工程专业甲级证书',
'有机产品认证', '绿色产品(认证活动二)', '环保部_实施清洁生产审核并通过评估验收', '环境管理体系认证证书', '温室气体核查声明',
'环保部_环境保护科学技术奖获奖项目名单', '环保部_环境标志', '绿色食品生产资料--肥料类', '低碳产品认证-中小型三相异步电动机',
'节水产品认证', '中国环境标志产品认证证书', 'HSE管理体系评价证书']
# Returns
result = list()
def para_01():
part_01 = dict()
def certificate():
score = round(data_01['经营评分']['环境'] / 10 * 100, 2)
if len(data_02) == 0:
part_01['certificate'] = '无资质'
else:
part_01['certificate'] = list()
for item in data_02['result']:
if item['certificateName'] in cp:
part_01['certificate'].append(item['certificateName'])
if len(part_01['certificate']) == 0:
part_01['certificate'] = '无资质'
else:
part_01['certificate'] = ''.join(part_01['certificate'])
if score < 50 or part_01['certificate'] == '无资质':
part_01['certificate'] = '公司绿色发展理念相对薄弱。公司绿色发展战略和绿色组织架构亦有待完善,生产过程对环境造成一定污染,' \
'尚未有污染缓解措施或污染缓解措施效果欠佳,环境问题或对公司正常经营造成负面影响。'
else:
part_01['certificate'] = '公司为环境友好型企业。公司较为重视环境保护,实行绿色低碳发展理念,包括制定绿色发展战略、完善绿色组织架构、' \
'保障产品安全、合理安排节能减排和污染处理措施、提高资源利用效率、制定污染缓解措施等应对环境事件。'
certificate()
return part_01
def para_02():
part_02 = dict()
if data_02:
part_02['Qualification_number'] = 0
for item in data_02['result']:
if item['certificateName'] in ep:
part_02['Qualification_number'] += 1
if part_02['Qualification_number'] > 0:
part_02['Qualification_number'] = '截至{year03}末,公司获得' \
'{Qualification_number}项环保领域相关认证资' \
'质。'.format(year03=date,
Qualification_number=part_02['Qualification_number'])
else:
part_02['Qualification_number'] = '截至{year03}末,公司未获得环保领域相关认证资质。'.format(year03=date)
else:
part_02['Qualification_number'] = '截至{year03}末,公司未获得环保领域相关认证资质。'.format(year03=date)
return part_02
result.append(para_01())
result.append(para_02())
return result
def environmental_governance_infomation(param):
"""
环境治理-信息技术业
清洗数据库数据,根据需要返回
Parameters:
param: 数据库数据
Returns:
环境治理数据
"""
# Params
data_01 = param['评价结果']
data_02 = param['资质证书']['资质证书']
date = str(datetime.datetime.today().year) + ''
cp = ['排污许可证', '环保部_限制类固体废物进口', '排污登记信息', '环保部_国家重点监控企业名单', '环保部_自动类固体废物进口']
ep = ['低碳产品认证', '中国节能环保产品', '低碳产品认证-铝合金建筑型材', 'FSC认证', '环保产品认证', '环境标志产品', '环境管理体系认证',
'绿色产品(认证活动一)', '绿色食品生产资料--食品添加剂类', '节能产品认证(不含建筑节能)', '低碳产品认证-通用硅酸盐水泥',
'电子信息产品污染控制自愿性认证', '中国环保产品认证证书', '中国环保标志产品认证证书', '商品和服务在生命周期内的温室气体排放评价规范认证',
'中国绿色环保企业', '绿色食品生产资料--饲料及饲料添加剂类', '中国优秀节能减排绿色环保企业', '工业固废处置及资源化工程专业甲级证书',
'有机产品认证', '绿色产品(认证活动二)', '环保部_实施清洁生产审核并通过评估验收', '环境管理体系认证证书', '温室气体核查声明',
'环保部_环境保护科学技术奖获奖项目名单', '环保部_环境标志', '绿色食品生产资料--肥料类', '低碳产品认证-中小型三相异步电动机',
'节水产品认证', '中国环境标志产品认证证书', 'HSE管理体系评价证书']
et = ['环保部_环境保护科学技术奖获奖项目名']
# Returns
result = list()
def para_01():
part_01 = dict()
def certificate():
et_num = 0
score = round(data_01['经营评分']['环境'] / 10 * 100, 2)
if len(data_02) == 0:
part_01['certificate'] = '无资质'
else:
part_01['certificate'] = list()
for item in data_02['result']:
if item['certificateName'] in cp:
part_01['certificate'].append(item['certificateName'])
if item['certificateName'] in et:
et_num += 1
if len(part_01['certificate']) == 0:
part_01['certificate'] = '无资质'
else:
part_01['certificate'] = ''.join(part_01['certificate'])
if score < 50 or part_01['certificate'] == '无资质':
part_01['certificate'] = '公司绿色发展理念相对薄弱。公司绿色发展战略和绿色组织架构亦有待完善,生产过程对环境造成一定污染,' \
'尚未有污染缓解措施或污染缓解措施效果欠佳,环境问题或对公司正常经营造成负面影响。'
else:
if et_num > 0:
part_01['certificate'] = '公司为环境友好型企业,公司曾获得环保部颁布的环境保护科学技术奖。公司较为重视环境保护,实行绿色低碳发展理念,包括制定绿色发展战略、完善绿色组织架构、' \
'保障产品安全、合理安排节能减排和污染处理措施、提高资源利用效率、制定污染缓解措施等应对环境事件。'
else:
part_01['certificate'] = '公司为环境友好型企业。公司较为重视环境保护,实行绿色低碳发展理念,包括制定绿色发展战略、完善绿色组织架构、' \
'保障产品安全、合理安排节能减排和污染处理措施、提高资源利用效率、制定污染缓解措施等应对环境事件。'
certificate()
return part_01
def para_02():
part_02 = dict()
if data_02:
part_02['Qualification_number'] = 0
for item in data_02['result']:
if item['certificateName'] in ep:
part_02['Qualification_number'] += 1
if part_02['Qualification_number'] > 0:
part_02['Qualification_number'] = '截至{year03}末,公司获得' \
'{Qualification_number}项环保领域相关认证资' \
'质。'.format(year03=date,
Qualification_number=part_02['Qualification_number'])
else:
part_02['Qualification_number'] = '截至{year03}末,公司未获得环保领域相关认证资质。'.format(year03=date)
else:
part_02['Qualification_number'] = '截至{year03}末,公司未获得环保领域相关认证资质。'.format(year03=date)
return part_02
result.append(para_01())
result.append(para_02())
return result
def social_responsibility(param):
"""
社会责任
清洗数据库数据,根据需要返回
Parameters:
param: 数据库数据
Returns:
社会责任数据
"""
# Params
data_01 = param['评价结果']
data_02 = param['资质证书']['资质证书']
sr = ['企业社会责任管理体系认证' '社会责任管理', '社会责任管理体系认证', '社会责任管理体系', '优秀供应商', '供应链安全管理体系认证证书',
'HACCP认证证书', 'BSCI认证']
# Returns
result = list()
def para_01():
part_01 = dict()
part_01['Qualification_number'] = 0
score = round(data_01['经营评分']['社会责任'] / 10 * 100, 2)
def Qualification_number():
qualification = list()
if len(data_02) == 0:
part_01['Qualification_number'] = 0
else:
for item in data_02['result']:
if item['certificateName'] in sr:
# 数量
part_01['Qualification_number'] += 1
# 名称
qualification.append(item['certificateName'])
qualification = ''.join(qualification)
if score > 50 and part_01['Qualification_number'] > 0:
part_01['Qualification_number'] = '公司积极履行社会责任,拥有{Qualification_number}项社会责任领域相关认证资质,' \
'包括{Qualification}。公司以公平、公正、自愿、市场化的原则开展业务,' \
'承担对于客户、员工、社区、供应链相关方的责任,企业形象较好,无社会负面事件,' \
'为公司业务拓展奠定较好基础。'.format(
Qualification_number=part_01['Qualification_number'],
Qualification=qualification)
elif score > 50 and part_01['Qualification_number'] == 0:
part_01['Qualification_number'] = '公司积极履行社会责任,未获得社会责任领域相关认证资质。' \
'公司以公平、公正、自愿、市场化的原则开展业务,' \
'承担对于客户、员工、社区、供应链相关方的责任,企业形象较好,无社会负面事件,' \
'为公司业务拓展奠定较好基础。'
else:
part_01['Qualification_number'] = '公司社会责任履行能力有待进一步提升,公司客户满意率偏低,供应链管理能力较弱,' \
'对员工提供的福利未达到行业平均水平,对区域经济发展贡献力度不大,有一定社会负面事件。'
Qualification_number()
return part_01
result.append(para_01())
return result
def corporate_governance(param):
"""
公司治理
清洗数据库数据,根据需要返回
Parameters:
param: 数据库数据
Returns:
公司治理数据
"""
data_01 = param['评价结果']
data_02 = param['风险数据']
result = list()
part_01 = dict()
score = round(data_01['经营评分']['公司治理'] / 10 * 100, 2)
risk = data_02['关联风险']['周边风险']['高风险']
if score > 50 and risk == 0:
part_01['governance_score'] = '公司治理水平较高。公司股权清晰,组织结构较完善,可满足业务发展需要;' \
'公司各类信息披露透明、公开、及时,信息披露质量较高。公司重视风险管理,' \
'包括信用风险在内的各类风险水平较低,未发生重大风险事件。'
elif score > 50 and risk > 0:
part_01['governance_score'] = '公司治理水平较高。公司股权清晰,组织结构较完善,可满足业务发展需要;' \
'公司各类信息披露透明、公开、及时,信息披露质量较高;但风险控制能力有待加强。'
else:
part_01['governance_score'] = '公司规模较小,组织架构尚不完善,股权结构有待进一步明晰,信息披露透明度和质量欠佳。' \
'风险控制能力有待加强。整体来看,公司治理水平有待进一步提升。'
result.append(part_01)
return result