update ESG相关接口

This commit is contained in:
P3ngSaM 2022-02-18 16:03:11 +08:00
parent 5471398642
commit e9467ab6dc
4 changed files with 91 additions and 8 deletions

View File

@ -1,4 +1,5 @@
from common.scripts import read_json_file
from rating.scripts.common import industry_processing
from rating.scripts.esg.environment import *
from rating.scripts.esg.governance import *
from rating.scripts.esg.social import *
@ -33,7 +34,7 @@ class EsgCleanModel:
# 段落5 基本信息
data = dict()
data['公司名称'] = self.data['企业名称']
data['所属行业'] = self.data['所属行业']
data['所属行业'] = industry_processing(self.data['所属行业'])
return data
def paragraph_06(self):
@ -102,12 +103,9 @@ class EsgCleanModel:
data['企业ID'] = self.cid
data['企业名称'] = self.company
data['评价年度'] = self.data['评价年度']
data['行业选择'] = self.data['所属行业']
data['报告模板'] = self.integrate_data()
return data
if __name__ == '__main__':
d = read_json_file('/rating/static/template_data.json')
m = EsgCleanModel(d)
m.storage_data()

View File

@ -2,7 +2,7 @@ from flask import Blueprint, request
from common.scripts import verify_token
from rating.EsgReportEtl import EsgCleanModel
from rating.ReportEtl import CleanModel
from rating.scripts.common import get_tfse_data
from rating.scripts.common import get_tfse_data, get_esg_data
from rating.scripts.risk_count import *
rating_route = Blueprint('rating', __name__)
@ -27,6 +27,25 @@ def risk_data():
return {"info": "执行成功"}, 200
@rating_route.route('/esg_risk_data', methods=['POST'])
@verify_token
def esg_risk_data():
"""
风险数据清洗
Parameters:
company_name 企业名称
company_id 企业ID
evaluation_id 评价ID
Returns:
res: 清洗后的满足要求的风险数据
"""
company_name = request.json['company_name']
company_id = request.json['company_id']
evaluation_id = request.json['evaluation_id']
esg_risk_data_etl(company_name, company_id, evaluation_id)
return {"info": "执行成功"}, 200
@rating_route.route('/report_data', methods=['POST'])
@verify_token
def report_data():
@ -65,7 +84,7 @@ def esg_report_data():
info = request.json
# 准备需要清洗的数据
db_data = get_tfse_data(info)
db_data = get_esg_data(info)
# 调用清洗数据模型
data = EsgCleanModel(db_data).storage_data()

View File

@ -1,3 +1,4 @@
import copy
import time
from rating.db import find_tyc_db, find_tfse_db
@ -124,6 +125,17 @@ def province_conversion(param):
return res
def industry_processing(param):
"""
将行业数组转为字符串
Parameters:
param list 行业数组
Returns:
result str 行业字符串
"""
return param[0] + '-' + param[1]
# 获取数据库数据
def get_tfse_data(param):
"""
@ -202,8 +214,6 @@ def filter_oi_data(param):
return param
def shareholder_strength_data(param):
"""
股东数据
@ -238,3 +248,32 @@ def person_subsidiaries(param):
ps = find_tyc_db(db='公司背景', col='人员控股企业', query={'人员ID': param})[0]
data['人员控股企业'] = ps
return data
def get_esg_data(param):
"""
获取数据库数据并按要求格式返回
Parameters:
param dict 企业名称企业ID评价ID
Returns:
result dict 符合要求需要清洗的数据
"""
company = param['company']
rid = param['rid']
cid = param['cid']
# ESG评价结果
es = find_tfse_db(db='评价', col='ESG评价结果', query={'评价ID': rid})[0]
# ESG风险数据
rd = find_tfse_db(db='评价', col='ESG风险数据', query={'企业ID': cid})[0]
# ESG评价填报
ef = find_tfse_db(db='评价', col='ESG评价填报', query={'评价ID': rid})[0]
rd.pop('企业ID')
rd.pop('评价ID')
rd.pop('更新日期')
report_data = copy.deepcopy(ef)
report_data['评价等级'] = es['评价等级']
report_data['风险数据'] = rd
return report_data

View File

@ -55,6 +55,33 @@ def risk_data_etl(param1, param2, param3):
return info
def esg_risk_data_etl(param1, param2, param3):
"""
根据企业名称查询天眼查数据库
将数据按规定格式存储到esg相关数据库中评价-ESG风险数据
Parameters:
param1: 企业名称
param2: 企业ID
param3: 评价ID
Returns:
res: 保存结果
"""
insert_data = dict()
insert_data['评价ID'] = param3
insert_data['企业ID'] = param2
insert_data['更新日期'] = time.strftime("%Y-%m-%d", time.localtime())
insert_data['法律诉讼'] = lawsuit(param1)
insert_data['被执行人'] = executed_person(param1)
insert_data['失信人'] = dishonest_person(param1)
insert_data['行政处罚'] = administrative_punish(param1)
insert_data['税收违法'] = tax_violation(param1)
insert_data['严重违法'] = serious_illegal(param1)
insert_data['经营异常'] = abnormal_operation(param1)
info = conserve_data(db='评价', col='ESG风险数据', cid=param2, insert_data=insert_data)
return info
def dishonest_person(param):
"""
失信人