Merge branch 'v0.21' into 'master'

数据库配置 升级到v0.21

See merge request root/etl_tfse!11
This commit is contained in:
FECR-IBD 2022-03-24 08:11:21 +00:00
commit ee418a5bc9
38 changed files with 248 additions and 248 deletions

View File

@ -6,7 +6,7 @@ client_admin = pymongo.MongoClient('mongodb://{}:{}@{}:{}'.format('root', 'RYIHr
client_tfse_021 = pymongo.MongoClient('mongodb://{}:{}@{}:{}'.format('root', 'UTlC9cCoglD1cI1*', '116.63.130.34', 27021))
def find_data_in_tyc(param1, param2, param3):
def FIND_DATA_IN_TYC(param1, param2, param3):
"""
根据企业ID查询企业信息
Parameters:
@ -22,68 +22,57 @@ def find_data_in_tyc(param1, param2, param3):
return record
def find_data_in_tfse(param1, param2, param3):
def FIND_SINGLE_COLUMN_BY_REQ(param1, param2, param3, param4):
"""
根据企业ID查询企业信息
查询符合条件的第一条数据的某个制定字段值
Parameters:
param1: string 数据库 db
param2: string 数据集 collection
param3: dict 查询条件 例如 {"企业名称": "xxx有限公司"}
param1: str 数据库
param2: str 数据表
param3: dict 查询条件
param4: str 一个指定查询字段
Returns:
record: 查询结果
record: 查询结果为空返回None; 查询结果正常返回查询结果的第一条数据;
"""
collection = client_tfse[param1][param2]
data = collection.find(param3, {'_id': False})
record = list(data)
collection = client_tfse_021[param1][param2]
column = {**{'_id': False}, **{param4: 1}}
record = list(collection.find(param3, column))
return None if record == [] else record[0][param4]
def FIND_SINGLE_DATA_BY_REQ(param1, param2, param3, param4):
"""
查询符合条件的第一条数据
Parameters:
param1: str 数据库
param2: str 数据表
param3: dict 查询条件
param4: list 查询字段
Returns:
record: 查询结果为空返回False; 查询结果正常返回查询结果的第一条数据;
"""
collection = client_tfse_021[param1][param2]
columns = {**{'_id': False}, **dict(zip(param4, [1] * len(param4)))}
record = list(collection.find(param3, columns))
return False if record == [] else record[0]
def FIND_ALL_DATA_BY_REQ(param1, param2, param3, param4):
"""
查询符合条件的所有数据
Parameters:
param1: str 数据库
param2: str 数据表
param3: dict 查询条件
param4: list 查询字段
Returns:
record: list 查询结果
"""
collection = client_tfse_021[param1][param2]
columns = {**{'_id': False}, **dict(zip(param4, [1] * len(param4)))}
record = list(collection.find(param3, columns))
return record
def insert_data_to_tfse(param1, param2, param3):
"""
插入数据
Parameters:
param1: string 数据库
param2: string 数据集
param3: dict 数据
Returns:
-
"""
collection = client_tfse[param1][param2]
collection.insert_one(param3)
def conserve_data_to_tfse(param1, param2, param3, param4):
"""
保存数据
Parameters:
param1: string 数据库
param2: string 数据集
param3: string cid
param4: object 需要保存的数据
Returns:
-
"""
collection = client_tfse[param1][param2]
collection.update_one(param3, {"$set": param4}, upsert=True)
def update_data(param1, param2, param3, param4):
"""
更新数据
Parameters:
param1: string 数据库
param2: string 数据集
param3: string 查询条件
param4: dict 需要更新的数据
Returns:
-
"""
collection = client_tfse[param1][param2]
res = collection.update_one(param3, {"$set": param4})
info = res.raw_result['updatedExisting']
return info
def UPSERT_SINGLE_DATA(param1, param2, param3, param4):
"""
插入单条数据

View File

@ -5,10 +5,9 @@ import requests
import pandas as pd
from common.scripts import read_json_file, sub_dict, df_iterrows
from company.db import find_data_in_tyc, insert_data_to_tfse, find_data_in_tfse, conserve_data_to_tfse, update_data, \
UPSERT_SINGLE_DATA, UPDATE_SINGLE_DATA
from rating.scripts.risk_detail import associate_risk_detail, change_log_detail
from common.utils import read_json_file, sub_dict, df_iterrows
from CompanyData.db import FIND_DATA_IN_TYC, UPSERT_SINGLE_DATA, UPDATE_SINGLE_DATA, FIND_SINGLE_DATA_BY_REQ, FIND_ALL_DATA_BY_REQ
from RatingData.scripts.risk_detail import associate_risk_detail, change_log_detail
def drag_company_data_request(company_name):
@ -40,9 +39,9 @@ def basic_info_etl(cid, company_name):
-
"""
# Params
basic_info = find_data_in_tyc('公司背景', '基本信息', {"企业名称": company_name})
holder_info = find_data_in_tyc('公司背景', '企业股东', {"企业名称": company_name})
member_info = find_data_in_tyc('公司背景', '主要人员', {"企业名称": company_name})
basic_info = FIND_DATA_IN_TYC('公司背景', '基本信息', {"企业名称": company_name})
holder_info = FIND_DATA_IN_TYC('公司背景', '企业股东', {"企业名称": company_name})
member_info = FIND_DATA_IN_TYC('公司背景', '主要人员', {"企业名称": company_name})
# Returns
data = read_json_file('/company/static/template/基本信息.json')
@ -118,7 +117,7 @@ def basic_info_etl(cid, company_name):
save_result()
def general_rating_etl(rid):
def cc_rating_etl(rid):
"""
执行综合信用评价信息数据清洗程序
Parameters:
@ -128,29 +127,24 @@ def general_rating_etl(rid):
"""
# Parameters
rating_record = find_data_in_tfse('评价', '评价记录', {"评价ID": rid})[0]
rating_result = find_data_in_tfse('评价', '评价结果', {"评价ID": rid})[0]
rating_results = find_data_in_tfse('评价', '评价结果', {"企业ID": rating_result['企业ID']})
text_model = find_data_in_tfse('评价', '报告数据', {"企业ID": rating_result['企业ID'], "评价ID": rid})[0]
rating_record = FIND_SINGLE_DATA_BY_REQ('企业数据', '评价记录', {"评价ID": rid}, ['报告fid'])
rating_result = FIND_SINGLE_DATA_BY_REQ('综信评价数据', '评价结果', {"评价ID": rid},
["企业ID", "企业名称", "经营评分", "财务评分", "风险评分", "评价年度"])
rating_results = FIND_ALL_DATA_BY_REQ('综信评价数据', '评价结果', {"企业ID": rating_result['企业ID']},
['信用等级', "信用评分", '评价时间', "评价方式"])
text_model = FIND_SINGLE_DATA_BY_REQ('综信评价数据', '报告数据', {"评价ID": rid}, ["行业选择", "报告内容"])
df_records = pd.DataFrame(rating_results).sort_values('评价时间', ascending=False)
rating_index = find_data_in_tfse('企业', '指标明细', {"企业ID": rating_result['企业ID']})
df_index = pd.DataFrame(rating_index).sort_values('年报期', ascending=False)
# Returns
result = dict()
def result_head():
# 根据rid 查询评价日期、信用等级、信用分数
result['评价ID'] = rid
result['企业ID'] = rating_result['企业ID']
result['企业名称'] = rating_result['企业名称']
result['更新时间'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# 综合信用等级数据
result_general = result['综合信用等级'] = dict()
result_general['评价时间'] = rating_result['评价时间']
result_general['信用等级'] = rating_result['信用等级']
result_general['信用评分'] = rating_result['信用评分']
def make_radar_chart():
"""
综合信用指标表现雷达图数据
@ -229,45 +223,45 @@ def general_rating_etl(rid):
result['信用分析']['评价意见'] = evaluation_comments_content()
result['信用分析']['查看报告'] = '/file/get_company_report?file_id={}'.format(rating_record['报告fid'])
def make_total_score():
"""
生成总得分数据
"""
ref_score = read_json_file('/company/static/refers/general.json')['total']
result['总得分'] = dict()
# def make_total_score():
# """
# 生成总得分数据
# """
# ref_score = read_json_file('/company/static/refers/general.json')['total']
# result['总得分'] = dict()
#
# result['总得分']['ESG'] = '{}%'.format(round(100*rating_result['经营评分']['合计']/ref_score['ESG'], 2))
# result['总得分']['财务指标'] = '{}%'.format(round(100*rating_result['财务评分']['合计']/ref_score['财务指标'], 2))
# result['总得分']['风险指标'] = '{}%'.format(round(100*(1-rating_result['风险评分']['合计']/ref_score['风险指标']), 2))
result['总得分']['ESG'] = '{}%'.format(round(100*rating_result['经营评分']['合计']/ref_score['ESG'], 2))
result['总得分']['财务指标'] = '{}%'.format(round(100*rating_result['财务评分']['合计']/ref_score['财务指标'], 2))
result['总得分']['风险指标'] = '{}%'.format(round(100*(1-rating_result['风险评分']['合计']/ref_score['风险指标']), 2))
# def profitability():
# """
# 盈利能力数据
# """
# date = '{}-12-31'.format(int(rating_result['评价年度'].split('年')[0])-1)
# df_profit = df_index[df_index['年报期'] == date]
# result['盈利能力'] = dict()
# result['盈利能力']['总资产报酬率'] = df_profit['总资产报酬率'].values[0]
# result['盈利能力']['净资产收益率'] = df_profit['净资产收益率'].values[0]
def profitability():
"""
盈利能力数据
"""
date = '{}-12-31'.format(int(rating_result['评价年度'].split('')[0])-1)
df_profit = df_index[df_index['年报期'] == date]
result['盈利能力'] = dict()
result['盈利能力']['总资产报酬率'] = df_profit['总资产报酬率'].values[0]
result['盈利能力']['净资产收益率'] = df_profit['净资产收益率'].values[0]
# def growth_ability():
# """
# 成长能力数据
# """
# df_grow = df_index[:3].sort_values('年报期', ascending=True).set_index('年报期')
# result['成长能力'] = json.loads(df_grow[['营业增长率', '总资产增长率']].T.to_json())
def growth_ability():
"""
成长能力数据
"""
df_grow = df_index[:3].sort_values('年报期', ascending=True).set_index('年报期')
result['成长能力'] = json.loads(df_grow[['营业增长率', '总资产增长率']].T.to_json())
def assets_quality():
"""
计算资产质量数据
"""
date = '{}-12-31'.format(int(rating_result['评价年度'].split('')[0]) - 1)
df_assets = df_index[df_index['年报期'] == date]
result['资产质量'] = dict()
result['资产质量']['应收账款周转率'] = df_assets['应收账款周转率'].values[0]
result['资产质量']['存货周转率'] = df_assets['存货周转率'].values[0]
result['资产质量']['总资产周转率'] = df_assets['总资产周转率'].values[0]
result['资产质量']['资产负债率'] = df_assets['资产负债率'].values[0]
# def assets_quality():
# """
# 计算资产质量数据
# """
# date = '{}-12-31'.format(int(rating_result['评价年度'].split('年')[0]) - 1)
# df_assets = df_index[df_index['年报期'] == date]
# result['资产质量'] = dict()
# result['资产质量']['应收账款周转率'] = df_assets['应收账款周转率'].values[0]
# result['资产质量']['存货周转率'] = df_assets['存货周转率'].values[0]
# result['资产质量']['总资产周转率'] = df_assets['总资产周转率'].values[0]
# result['资产质量']['资产负债率'] = df_assets['资产负债率'].values[0]
def rating_history():
"""
@ -314,14 +308,14 @@ def general_rating_etl(rid):
result_head()
make_radar_chart()
credit_analysis_content()
make_total_score()
profitability()
growth_ability()
assets_quality()
# make_total_score()
# profitability()
# growth_ability()
# assets_quality()
rating_history()
rating_index_analysis()
conserve_data_to_tfse('企业', '综合评价分析', {"企业ID": result['企业ID']}, result)
UPSERT_SINGLE_DATA('企业数据', '综合信用分析', {"评价ID": rid}, result)
def financial_analysis(rid):
@ -334,11 +328,14 @@ def financial_analysis(rid):
"""
# Parameters
rating_result = find_data_in_tfse('评价', '评价结果', {"评价ID": rid})[0]
rating_input = find_data_in_tfse('评价', '综合评价填报', {"评价ID": rid})[0]
rating_result = FIND_SINGLE_DATA_BY_REQ('综信评价数据', '评价结果', {"评价ID": rid}, ["企业ID", "财务评分"])
rating_input = FIND_SINGLE_DATA_BY_REQ('综信评价数据', '填报数据', {"评价ID": rid}, ["行业选择", "财务填报"])
industry = rating_input['行业选择']
periods = list(pd.DataFrame(rating_input['财务填报']['资产负债表']).sort_values('报告期', ascending=False)['报告期'][0:2].values)
df_recent_2year = pd.DataFrame(find_data_in_tfse('企业', '指标明细', {'企业ID': rating_result['企业ID']})).sort_values('年报期', ascending=False)[0:2]
df_recent_2year = pd.DataFrame(FIND_ALL_DATA_BY_REQ('综信评价数据', '财指结果', {'企业ID': rating_result['企业ID']},
["年报期", '净资产收益率', '总资产报酬率', '总资产周转率',
'应收账款周转率', '存货周转率', '资产负债率', '已获利息倍数',
'速动比率', '营业增长率', '总资产增长率', '技术投入比率'])).sort_values('年报期', ascending=False)[0:2]
df_this = df_recent_2year[0:1]
df_last = df_recent_2year[1:2]
@ -414,7 +411,7 @@ def financial_analysis(rid):
df_index = pd.DataFrame({'': index_value, "级别": index_level})
result['指标详情'] = df_iterrows(df_index)
insert_data_to_tfse('企业', '财务要素分析', result)
UPSERT_SINGLE_DATA("企业数据", "财务要素分析", {"评价ID": rid}, result)
def risk_analysis_etl(rid):
@ -426,8 +423,8 @@ def risk_analysis_etl(rid):
-
"""
# Params
rating_result = find_data_in_tfse('评价', '评价结果', {"评价ID": rid})[0]
risk_data = find_data_in_tfse('评价', '风险数据', {"评价ID": rid})[0]
rating_result = FIND_SINGLE_DATA_BY_REQ('综信评价数据', '评价结果', {"评价ID": rid}, ["企业ID", "企业名称", "风险评分"])
risk_data = FIND_SINGLE_DATA_BY_REQ('综信评价数据', '风险数据', {"评价ID": rid}, ["合规风险", "经营风险"])
# Returns
result = dict()
@ -552,7 +549,7 @@ def risk_analysis_etl(rid):
result['周边风险'] = associate_risk()
result['变更记录'] = change_log()
insert_data_to_tfse('企业', '风险要素分析', result)
UPSERT_SINGLE_DATA('企业数据', '经营风险分析', {"评价ID": rid}, result)
def esg_rating_etl(rid):
@ -564,8 +561,9 @@ def esg_rating_etl(rid):
res: desc
"""
# Parameters
rating_record = find_data_in_tfse('评价', 'ESG评价结果', {"评价ID": rid})[0]
rating_input = find_data_in_tfse('评价', 'ESG评价填报', {"评价ID": rid})[0]
rating_record = FIND_SINGLE_DATA_BY_REQ('ESG评价数据', '评价结果', {"评价ID": rid},
["评价等级", "ESG得分", "环境得分", "社会得分", "公司治理得分"])
rating_input = FIND_SINGLE_DATA_BY_REQ('ESG评价数据', '填报数据', {"评价ID": rid}, ["所属行业"])
# Returns
result = dict()
@ -790,15 +788,15 @@ def esg_rating_etl(rid):
res.append(g())
return res
result['企业ID'] = rating_record['企业ID']
result['评价ID'] = rating_record['评价ID']
result['企业ID'] = rating_record['企业ID']
result['更新日期'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
result['ESG评级'] = rating_result()
result['维度得分情况'] = dimension_rating()
result['实质性议题得分情况'] = substantive_score()
result['实质性议题'] = substantive_topics()
insert_data_to_tfse('企业', 'ESG要素分析', result)
UPSERT_SINGLE_DATA("企业数据", "ESG评价分析", {"评价ID": rid}, result)
def calculate_weight(param):

View File

@ -1,7 +1,7 @@
from flask import Blueprint, request
from common.scripts import verify_token
from company.scripts import *
from common.utils import verify_token
from CompanyData.job_scripts import *
company_route = Blueprint('company', __name__)
@ -48,7 +48,7 @@ def general_rating():
"""
rid = request.json['rid']
general_rating_etl(rid)
cc_rating_etl(rid)
financial_analysis(rid)
risk_analysis_etl(rid)

View File

@ -1,12 +1,9 @@
import json
import os
import pymongo
O_HOST = "116.63.130.34"
O_PASS = "RYIHrqml#LSW6#!*"
O_PASS = "sromitdTW569kC#M"
O_USER = "root"
O_PORT = "27020"
O_PORT = "27018"
T_HOST = "116.63.130.34"
T_PASS = "UTlC9cCoglD1cI1*"
@ -33,7 +30,8 @@ def data_migrator(origin, target):
target_list = []
for data in origin_data:
###
rid = list(origin_client['评价']['评价记录'].find({"企业ID": data['企业ID'], "评价项目": "综合信用评价"}, {'_id': False}))[0]['评价ID']
data['评价ID'] = rid
###
target_list.append(data)
@ -49,7 +47,7 @@ def data_migrator(origin, target):
if __name__ == '__main__':
o = {"DB": "用户", "Collection": "token记录"}
t = {"DB": "管理端", "Collection": "token记录"}
o = {"DB": "企业", "Collection": "风险要素分析"}
t = {"DB": "企业数据", "Collection": "经营风险分析"}
data_migrator(o, t)

View File

@ -1,18 +0,0 @@
import pymongo
HOST = "116.63.130.34"
PASS = "UTlC9cCoglD1cI1*"
USER = "root"
PORT = "27021"
mongo_client = pymongo.MongoClient('mongodb://{}:{}@{}:{}'.format(USER, PASS, HOST, PORT))
def all_data():
collection = mongo_client['应用端']['企业用户']
data = list(collection.find({}, {'_id': False}))
###
###

27
DBInitial/demo.py Normal file
View File

@ -0,0 +1,27 @@
import pymongo
HOST = "116.63.130.34"
PASS = "UTlC9cCoglD1cI1*"
USER = "root"
PORT = "27021"
mongo_client = pymongo.MongoClient('mongodb://{}:{}@{}:{}'.format(USER, PASS, HOST, PORT))
def all_data():
collection = mongo_client['模型端']['天眼查公司行业分类']
data = list(collection.find({}, {'_id': False}))
###
pass
for d in data:
if d['一级行业'] == '制造业':
d['远东_一级行业'] = '制造业'
if d['一级行业'] == '信息传输、软件和信息技术服务业':
d['远东_一级行业'] = '信息技术业'
collection.update_one({"三级行业": d['三级行业']}, {"$set": d})
###
if __name__ == '__main__':
all_data()

View File

@ -1,8 +1,8 @@
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 *
from common.utils import read_json_file
from RatingData.scripts.common import industry_processing
from RatingData.scripts.esg.environment import *
from RatingData.scripts.esg.governance import *
from RatingData.scripts.esg.social import *
class EsgCleanModel:

View File

@ -1,10 +1,10 @@
from rating.scripts.report.abstract import *
from rating.scripts.report.appendix import *
from rating.scripts.report.company_profile import *
from rating.scripts.report.enterprise_risk import *
from rating.scripts.report.esg_evaluation import *
from rating.scripts.report.financial_analysis import *
from rating.scripts.report.rating_conclusion import *
from RatingData.scripts.report.abstract import *
from RatingData.scripts.report.appendix import *
from RatingData.scripts.report.company_profile import *
from RatingData.scripts.report.enterprise_risk import *
from RatingData.scripts.report.esg_evaluation import *
from RatingData.scripts.report.financial_analysis import *
from RatingData.scripts.report.rating_conclusion import *
class CleanModel:

View File

@ -9,7 +9,7 @@ client_tyc = pymongo.MongoClient('mongodb://{}:{}@{}:{}'.format(USER, PASSWORD_T
client_tfse_021 = pymongo.MongoClient('mongodb://{}:{}@{}:{}'.format(USER, PASSWORD_TFSE_021, '116.63.130.34', 27021))
def find_tyc_db(**kwargs):
def FIND_DATA_N_TYC(**kwargs):
"""
查询天眼查数据库记录
Parameters:
@ -23,31 +23,38 @@ def find_tyc_db(**kwargs):
return data
def find_tfse_db(**kwargs):
def FIND_SINGLE_DATA_BY_REQ(param1, param2, param3, param4):
"""
查询天府股交数据库记录
查询符合条件的第一条数据
Parameters:
kwargs: 查询条件
param1: str 数据库
param2: str 数据表
param3: dict 查询条件
param4: list 查询字段
Returns:
data: tfse数据
record: 查询结果为空返回False; 查询结果正常返回查询结果的第一条数据;
"""
collection = client_tfse[kwargs['db']][kwargs['col']]
result = collection.find(kwargs['query'], {'_id': False})
data = list(result)
return data
collection = client_tfse_021[param1][param2]
columns = {**{'_id': False}, **dict(zip(param4, [1] * len(param4)))}
record = list(collection.find(param3, columns))
return False if record == [] else record[0]
def conserve_data(**kwargs):
def FIND_ALL_DATA_BY_REQ(param1, param2, param3, param4):
"""
根据评价ID保存数据
查询符合条件的所有数据
Parameters:
kwargs: 查询条件
param1: str 数据库
param2: str 数据表
param3: dict 查询条件
param4: list 查询字段
Returns:
保存结果
record: list 查询结果
"""
collection = client_tfse[kwargs['db']][kwargs['col']]
collection.update_one({"企业ID": kwargs['cid']}, {"$set": kwargs['insert_data']}, upsert=True)
return '保存成功'
collection = client_tfse_021[param1][param2]
columns = {**{'_id': False}, **dict(zip(param4, [1] * len(param4)))}
record = list(collection.find(param3, columns))
return record
def UPSERT_SINGLE_DATA(param1, param2, param3, param4):

View File

@ -1,9 +1,9 @@
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, get_esg_data
from rating.scripts.risk_count import *
from common.utils import verify_token
from RatingData.EsgReportEtl import EsgCleanModel
from RatingData.ReportEtl import CleanModel
from RatingData.scripts.common import get_tfse_data, get_esg_data
from RatingData.scripts.risk_count import *
rating_route = Blueprint('rating', __name__)
@ -43,7 +43,7 @@ def esg_risk_data():
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
return {"info": "执行"}, 200
@rating_route.route('/report_data', methods=['POST'])

View File

@ -1,8 +1,8 @@
import copy
import time
from rating.db import find_tyc_db, find_tfse_db
from rating.static.province_map import p_map
from RatingData.db import FIND_DATA_N_TYC, FIND_SINGLE_DATA_BY_REQ, FIND_ALL_DATA_BY_REQ
from RatingData.static.province_map import p_map
import pandas as pd
@ -151,34 +151,35 @@ def get_tfse_data(param):
report_data = dict()
# 评价结果
es = find_tfse_db(db='评价', col='评价结果', query={'评价ID': rid})[0]
es = FIND_SINGLE_DATA_BY_REQ('综信评价数据', '评价结果', {'评价ID': rid}, ["评价年度", "财务评分"])
# 综合评价填报
cef = find_tfse_db(db='评价', col='综合评价填报', query={'评价ID': rid})[0]
cef = FIND_SINGLE_DATA_BY_REQ('综信评价数据', '填报数据', {'评价ID': rid}, ["财务填报", "行业选择"])
# 指标明细
fid = find_tfse_db(db='企业', col='指标明细', query={'企业名称': company})
fid = FIND_ALL_DATA_BY_REQ('综信评价数据', '财指结果', {'企业ID': rid},
['报告期', '净资产收益率', '存货周转率', '已获利息倍数', '应收账款周转率', '总资产周转率', '总资产增长率', '总资产报酬率', '技术投入比率', '营业增长率', '资产负债率', '速动比率'])
# 基本信息
cbd = find_tyc_db(db='公司背景', col='基本信息', query={'企业名称': company})[0]
cbd = FIND_DATA_N_TYC(db='公司背景', col='基本信息', query={'企业名称': company})[0]
if '上市' in cbd['基本信息']['companyOrgType']:
# 企业股东
cs = find_tyc_db(db='公司背景', col='十大股东', query={'企业名称': company})[0]
cs = FIND_DATA_N_TYC(db='公司背景', col='十大股东', query={'企业名称': company})[0]
else:
cs = find_tyc_db(db='公司背景', col='企业股东', query={'企业名称': company})[0]
cs = FIND_DATA_N_TYC(db='公司背景', col='企业股东', query={'企业名称': company})[0]
# 对外投资
oi = find_tyc_db(db='公司背景', col='对外投资', query={'企业名称': company})[0]
oi = FIND_DATA_N_TYC(db='公司背景', col='对外投资', query={'企业名称': company})[0]
# 进出口信用
ip = find_tyc_db(db='经营状况', col='进出口信用', query={'企业名称': company})[0]
ip = FIND_DATA_N_TYC(db='经营状况', col='进出口信用', query={'企业名称': company})[0]
# 专利
ip_02 = find_tyc_db(db='知识产权', col='专利', query={'企业名称': company})[0]
ip_02 = FIND_DATA_N_TYC(db='知识产权', col='专利', query={'企业名称': company})[0]
# 软件著作权
sc = find_tyc_db(db='知识产权', col='软件著作权', query={'企业名称': company})[0]
sc = FIND_DATA_N_TYC(db='知识产权', col='软件著作权', query={'企业名称': company})[0]
# 资质证书
qh = find_tyc_db(db='经营状况', col='资质证书', query={'企业名称': company})[0]
qh = FIND_DATA_N_TYC(db='经营状况', col='资质证书', query={'企业名称': company})[0]
# 融资历史
fh = find_tyc_db(db='公司发展', col='融资历史', query={'企业名称': company})[0]
fh = FIND_DATA_N_TYC(db='公司发展', col='融资历史', query={'企业名称': company})[0]
# 风险数据
rd = find_tfse_db(db='评价', col='风险数据', query={'企业ID': cid})[0]
rd = FIND_SINGLE_DATA_BY_REQ('综信评价数据', '风险数据', {'评价ID': rid}, ["合规风险", "经营风险"])
# 周边风险
pr = find_tyc_db(db='天眼风险', col='周边风险', query={'企业名称': company})[0]
pr = FIND_DATA_N_TYC(db='天眼风险', col='周边风险', query={'企业名称': company})[0]
report_data['评价结果'] = es
report_data['综合评价填报'] = cef
report_data['指标明细'] = fid
@ -228,9 +229,9 @@ def shareholder_strength_data(param):
"""
data = dict()
# 基本信息
cbd = find_tyc_db(db='公司背景', col='基本信息', query={'企业名称': param})[0]
cbd = FIND_DATA_N_TYC(db='公司背景', col='基本信息', query={'企业名称': param})[0]
# 企业股东
cs = find_tyc_db(db='公司背景', col='企业股东', query={'企业名称': param})[0]
cs = FIND_DATA_N_TYC(db='公司背景', col='企业股东', query={'企业名称': param})[0]
data['基本信息'] = cbd
data['企业股东'] = cs
@ -248,13 +249,13 @@ def ten_shareholder_data(param):
"""
data = dict()
# 基本信息
cbd = find_tyc_db(db='公司背景', col='基本信息', query={'企业名称': param})[0]
cbd = FIND_DATA_N_TYC(db='公司背景', col='基本信息', query={'企业名称': param})[0]
data['基本信息'] = cbd
if '上市' in cbd['基本信息']['companyOrgType']:
cs = find_tyc_db(db='公司背景', col='十大股东', query={'企业名称': param})[0]
cs = FIND_DATA_N_TYC(db='公司背景', col='十大股东', query={'企业名称': param})[0]
data['十大股东'] = cs
else:
cs = find_tyc_db(db='公司背景', col='企业股东', query={'企业名称': param})[0]
cs = FIND_DATA_N_TYC(db='公司背景', col='企业股东', query={'企业名称': param})[0]
data['企业股东'] = cs
return data
@ -270,7 +271,7 @@ def person_subsidiaries(param):
"""
data = dict()
# 控股数据
ps = find_tyc_db(db='公司背景', col='人员控股企业', query={'人员ID': param})[0]
ps = FIND_DATA_N_TYC(db='公司背景', col='人员控股企业', query={'人员ID': param})[0]
data['人员控股企业'] = ps
return data
@ -288,16 +289,15 @@ def get_esg_data(param):
cid = param['cid']
# ESG评价结果
es = find_tfse_db(db='评价', col='ESG评价结果', query={'评价ID': rid})[0]
es = FIND_SINGLE_DATA_BY_REQ('ESG评价数据', '评价结果', {'评价ID': rid}, ['评价等级'])
# ESG风险数据
rd = find_tfse_db(db='评价', col='ESG风险数据', query={'企业ID': cid})[0]
rd = FIND_SINGLE_DATA_BY_REQ('ESG评价数据', '风险数据', {'企业ID': cid},
["严重违法", "失信人", "法律诉讼", "税收违法", "经营异常", "行政处罚", "被执行人"])
# 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)
ef = FIND_SINGLE_DATA_BY_REQ('ESG评价数据', '填报数据', {'评价ID': rid},
["评价ID", "企业ID", "企业名称", "所属行业", "评价年度", "公司当年收入(万元)", "环境问卷", "社会问卷", "治理问卷"])
report_data = copy.deepcopy(ef)
report_data['评价等级'] = es['评价等级']
report_data['风险数据'] = rd

View File

@ -1,5 +1,5 @@
from common.scripts import read_json_file
from rating.scripts.common import *
from common.utils import read_json_file
from RatingData.scripts.common import *
def evaluation_results(param):

View File

@ -1,4 +1,4 @@
from rating.scripts.common import *
from RatingData.scripts.common import *
def appendix_one(param):

View File

@ -1,6 +1,6 @@
import datetime
from rating.scripts.common import *
from RatingData.scripts.common import *
def company_background(param1, param2):

View File

@ -1,7 +1,7 @@
import time
import datetime
from rating.db import conserve_data, find_tyc_db, UPSERT_SINGLE_DATA
from RatingData.db import FIND_DATA_N_TYC, UPSERT_SINGLE_DATA
def risk_data_etl(param1, param2, param3):
@ -77,8 +77,7 @@ def esg_risk_data_etl(param1, param2, param3):
insert_data['严重违法'] = serious_illegal(param1)
insert_data['经营异常'] = abnormal_operation(param1)
info = conserve_data(db='评价', col='ESG风险数据', cid=param2, insert_data=insert_data)
return info
UPSERT_SINGLE_DATA("ESG评价数据", "风险数据", {"评价ID": param3}, insert_data)
def dishonest_person(param):
@ -91,7 +90,7 @@ def dishonest_person(param):
res: 满足条件总数
"""
total = 0
res = find_tyc_db(db='司法风险', col='失信人', query={'企业名称': param})
res = FIND_DATA_N_TYC(db='司法风险', col='失信人', query={'企业名称': param})
if len(res):
data = res[0]
try:
@ -122,7 +121,7 @@ def serious_illegal(param):
res: 满足条件总数
"""
total = 0
res = find_tyc_db(db='经营风险', col='严重违法', query={'企业名称': param})
res = FIND_DATA_N_TYC(db='经营风险', col='严重违法', query={'企业名称': param})
if len(res):
data = res[0]
try:
@ -155,7 +154,7 @@ def abnormal_operation(param):
res: 满足条件总数
"""
total = 0
res = find_tyc_db(db='经营风险', col='经营异常', query={'企业名称': param})
res = FIND_DATA_N_TYC(db='经营风险', col='经营异常', query={'企业名称': param})
if len(res):
data = res[0]
try:
@ -186,7 +185,7 @@ def owing_taxes(param):
res: 满足条件总数
"""
total = 0
res = find_tyc_db(db='经营风险', col='欠税公告', query={'企业名称': param})
res = FIND_DATA_N_TYC(db='经营风险', col='欠税公告', query={'企业名称': param})
if len(res):
data = res[0]
try:
@ -217,7 +216,7 @@ def tax_violation(param):
res: 满足条件总数
"""
total = 0
res = find_tyc_db(db='经营风险', col='税收违法', query={'企业名称': param})
res = FIND_DATA_N_TYC(db='经营风险', col='税收违法', query={'企业名称': param})
if len(res):
data = res[0]
try:
@ -248,7 +247,7 @@ def filing_info(param):
res: 满足条件总数
"""
total = 0
res = find_tyc_db(db='司法风险', col='立案信息', query={'企业名称': param})
res = FIND_DATA_N_TYC(db='司法风险', col='立案信息', query={'企业名称': param})
if len(res):
data = res[0]
try:
@ -279,7 +278,7 @@ def administrative_punish(param):
res: 满足条件总数
"""
total = 0
res = find_tyc_db(db='经营风险', col='行政处罚', query={'企业名称': param})
res = FIND_DATA_N_TYC(db='经营风险', col='行政处罚', query={'企业名称': param})
if len(res):
data = res[0]
try:
@ -310,7 +309,7 @@ def environmental_punish(param):
res: 满足条件总数
"""
total = 0
res = find_tyc_db(db='经营风险', col='环保处罚', query={'企业名称': param})
res = FIND_DATA_N_TYC(db='经营风险', col='环保处罚', query={'企业名称': param})
if len(res):
data = res[0]
try:
@ -341,7 +340,7 @@ def opening_announcement(param):
res: 满足条件总数
"""
total = 0
res = find_tyc_db(db='司法风险', col='开庭公告', query={'企业名称': param})
res = FIND_DATA_N_TYC(db='司法风险', col='开庭公告', query={'企业名称': param})
if len(res):
data = res[0]
try:
@ -376,7 +375,7 @@ def executed_person(param):
res: 满足条件总数
"""
total = 0
res = find_tyc_db(db='司法风险', col='被执行人', query={'企业名称': param})
res = FIND_DATA_N_TYC(db='司法风险', col='被执行人', query={'企业名称': param})
if len(res):
data = res[0]
try:
@ -407,7 +406,7 @@ def court_announcement(param):
res: 满足条件总数
"""
total = 0
res = find_tyc_db(db='司法风险', col='法院公告', query={'企业名称': param})
res = FIND_DATA_N_TYC(db='司法风险', col='法院公告', query={'企业名称': param})
if len(res):
data = res[0]
try:
@ -439,7 +438,7 @@ def lawsuit(param):
res: 满足条件总数
"""
total = 0
res = find_tyc_db(db='司法风险', col='诉讼', query={'企业名称': param})
res = FIND_DATA_N_TYC(db='司法风险', col='诉讼', query={'企业名称': param})
if len(res):
data = res[0]
try:
@ -471,7 +470,7 @@ def service_notice(param):
res: 满足条件总数
"""
total = 0
res = find_tyc_db(db='司法风险', col='送达公告', query={'企业名称': param})
res = FIND_DATA_N_TYC(db='司法风险', col='送达公告', query={'企业名称': param})
if len(res):
data = res[0]
try:
@ -502,7 +501,7 @@ def equity_pledge(param):
res: 满足条件总数
"""
total = 0
res = find_tyc_db(db='经营风险', col='股权出质', query={'企业名称': param})
res = FIND_DATA_N_TYC(db='经营风险', col='股权出质', query={'企业名称': param})
if len(res):
data = res[0]
try:
@ -536,7 +535,7 @@ def periphery_risk(param1, param2):
res: 满足条件总数
"""
total = 0
res = find_tyc_db(db='天眼风险', col='周边风险', query={'企业名称': param1})
res = FIND_DATA_N_TYC(db='天眼风险', col='周边风险', query={'企业名称': param1})
if len(res):
data = res[0]
try:
@ -566,7 +565,7 @@ def change_record(param1, param2):
res: 满足条件总数
"""
total = 0
res = find_tyc_db(db='公司背景', col='变更记录', query={'企业名称': param1})
res = FIND_DATA_N_TYC(db='公司背景', col='变更记录', query={'企业名称': param1})
if len(res):
data = res[0]
try:

View File

@ -1,7 +1,7 @@
import json
import pandas as pd
from rating.db import find_tyc_db
from RatingData.db import FIND_DATA_N_TYC
def associate_risk_detail(param):
@ -13,7 +13,7 @@ def associate_risk_detail(param):
Returns:
result: 企业关联风险类型和数量
"""
res = find_tyc_db(db='天眼风险', col='周边风险', query={'企业名称': param})
res = FIND_DATA_N_TYC(db='天眼风险', col='周边风险', query={'企业名称': param})
result = []
if res:
@ -45,7 +45,7 @@ def change_log_detail(param):
Returns:
res: desc
"""
res = find_tyc_db(db='天眼风险', col='预警提醒', query={'企业名称': param})
res = FIND_DATA_N_TYC(db='天眼风险', col='预警提醒', query={'企业名称': param})
result = []
if res:
df = pd.DataFrame(res[0]['预警提醒']['list'])[['total', 'title', 'list']]

4
app.py
View File

@ -1,8 +1,8 @@
from flask import Flask
from flask_cors import *
from company.routes import company_route
from rating.routes import rating_route
from CompanyData.routes import company_route
from RatingData.routes import rating_route
app = Flask(__name__)
CORS(app, supports_credentials=True)