Merge branch 'ps' into 'master'
update ESG相关接口 See merge request pengsen/etl_tfse!14
This commit is contained in:
commit
e7062ecb3f
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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):
|
||||
"""
|
||||
失信人
|
||||
|
|
Loading…
Reference in New Issue