update 股东部分/关联风险/关注

This commit is contained in:
彭森 2021-12-17 16:52:48 +08:00
parent d4e3394865
commit 007e1b09fe
2 changed files with 161 additions and 42 deletions

View File

@ -38,7 +38,7 @@ class CleanModel:
data['进出口权'] = import_export(self.data)
data['知识产权'] = intellectual_property(self.data)
data['资质荣誉'] = qualification_honor(self.data)
data['融资信息'] = financing_information(self.data)
# data['融资信息'] = financing_information(self.data)
return data
def esg_evaluate(self):

View File

@ -27,7 +27,7 @@ def get_tfse_data(param):
# 基本信息
cbd = find_tyc_db(db='公司背景', col='基本信息', query={'企业名称': company})[0]
# 企业股东
cs = find_tyc_db(db='公司背景', col='企业股东', query={'企业名称': company})[0]
cs = find_tyc_db(db='公司背景', col='企业股东', query={'企业名称': '四川麦克福瑞制药有限公司'})[0]
# 对外投资
oi = find_tyc_db(db='公司背景', col='对外投资', query={'企业名称': company})[0]
# 进出口信用
@ -37,11 +37,13 @@ def get_tfse_data(param):
# 软件著作权
sc = find_tyc_db(db='知识产权', col='软件著作权', query={'企业名称': company})[0]
# 资质证书
qh = find_tyc_db(db='经营状况', col='资质证书', query={'企业名称': '四川麦克福瑞制药有限公司'})[0]
qh = find_tyc_db(db='经营状况', col='资质证书', query={'企业名称': company})[0]
# 融资历史
fh = find_tyc_db(db='公司发展', col='融资历史', query={'企业名称': company})[0]
# 风险数据
rd = find_tfse_db(db='评价', col='风险数据', query={'企业ID': cid})[0]
# 周边风险
pr = find_tyc_db(db='天眼风险', col='周边风险', query={'企业名称': company})[0]
report_data['评价结果'] = es
report_data['综合评价填报'] = cef
report_data['指标明细'] = fid
@ -54,6 +56,7 @@ def get_tfse_data(param):
report_data['资质证书'] = qh
report_data['融资历史'] = fh
report_data['风险数据'] = rd
report_data['周边风险'] = pr
return report_data
@ -90,33 +93,33 @@ def financial_data(param):
for key, value in data_01['资产负债表'][0].items():
insert_list = list()
insert_list.append(key)
insert_list.append(value)
insert_list.append(data_01['资产负债表'][1][key])
insert_list.append(data_01['资产负债表'][2][key])
insert_list.append(str(value))
insert_list.append(str(data_01['资产负债表'][1][key]))
insert_list.append(str(data_01['资产负债表'][2][key]))
result.append(insert_list)
for key, value in data_01['利润表'][0].items():
if key != '报告期':
insert_list = list()
insert_list.append(key)
insert_list.append(value)
insert_list.append(data_01['利润表'][1][key])
insert_list.append(data_01['利润表'][2][key])
insert_list.append(str(value))
insert_list.append(str(data_01['利润表'][1][key]))
insert_list.append(str(data_01['利润表'][2][key]))
result.append(insert_list)
for k, v in data_02[0].items():
if k != '企业名称' and k != '年报期':
if k != '企业名称' and k != '年报期' and k != '企业ID':
try:
insert_list = list()
insert_list.append(k)
insert_list.append(v)
insert_list.append(data_02[1][k])
insert_list.append(data_02[2][k])
insert_list.append(str(v))
insert_list.append(str(data_02[1][k]))
insert_list.append(str(data_02[2][k]))
result.append(insert_list)
except IndexError:
insert_list = list()
insert_list.append(k)
insert_list.append(v)
insert_list.append('')
insert_list.append('')
insert_list.append(str(v))
insert_list.append(str(data_02[1][k]))
insert_list.append('-')
result.append(insert_list)
return result
@ -170,7 +173,7 @@ def evaluation_view(param1, param2):
else:
result['esg_desc'] = esg_desc_03
# 盈利能力
profitability_score = float(data_03['财务评分']['净资产收益率']) + float(data_03['财务评分']['总资产报酬率'])
profitability_score = float(data_03['财务评分']['盈利能力']['净资产收益率']) + float(data_03['财务评分']['盈利能力']['总资产报酬率'])
if profitability_score >= 16:
result['profitability'] = ''
elif profitability_score >= 16 * 0.8:
@ -182,8 +185,8 @@ def evaluation_view(param1, param2):
else:
result['profitability'] = ''
# 资产运营效率
operation_score = float(data_03['财务评分']['总资产周转率']) + float(data_03['财务评分']['应收账款周转率']) + float(
data_03['财务评分']['存货周转率'])
operation_score = float(data_03['财务评分']['资产质量']['总资产周转率']) + float(data_03['财务评分']['资产质量']['应收账款周转率']) + float(
data_03['财务评分']['资产质量']['存货周转率'])
if operation_score >= 18:
result['operational_efficiency'] = ''
elif operation_score >= 18 * 0.8:
@ -195,8 +198,8 @@ def evaluation_view(param1, param2):
else:
result['operational_efficiency'] = ''
# 债务风险得分
debt_risk_score = float(data_03['财务评分']['资产负债率']) + float(data_03['财务评分']['已获利息倍数']) + float(
data_03['财务评分']['速动比率'])
debt_risk_score = float(data_03['财务评分']['债务风险']['资产负债率']) + float(data_03['财务评分']['债务风险']['已获利息倍数']) + float(
data_03['财务评分']['债务风险']['速动比率'])
if debt_risk_score >= 18:
result['debt_risk'] = ''
elif debt_risk_score >= 18 * 0.8:
@ -208,8 +211,8 @@ def evaluation_view(param1, param2):
else:
result['debt_risk'] = ''
# 经营增长状况得分
growth_ability_score = float(data_03['财务评分']['营业增长率']) + float(data_03['财务评分']['总资产增长率']) + float(
data_03['财务评分']['技术投入比率'])
growth_ability_score = float(data_03['财务评分']['经营增长']['营业增长率']) + float(data_03['财务评分']['经营增长']['总资产增长率']) + float(
data_03['财务评分']['经营增长']['技术投入比率'])
if growth_ability_score >= 18:
result['growth_ability'] = ''
elif growth_ability_score >= 18 * 0.8:
@ -236,10 +239,29 @@ def evaluation_view(param1, param2):
def attention(param):
weight = dict()
weight['净资产收益率'] = 8
weight['总资产报酬率'] = 8
weight['总资产周转率'] = 6
weight['应收账款周转率'] = 6
weight['存货周转率'] = 6
weight['资产负债率'] = 8
weight['已获利息倍数'] = 5
weight['速动比率'] = 5
weight['营业增长率'] = 8
weight['总资产增长率'] = 5
weight['技术投入比率'] = 5
data = param['评价结果']['财务评分']
del param['评价结果']['财务评分']['合计']
for k, v in data.items():
for k_1, v_1 in v.items():
if k_1 != '合计':
weight[k_1] = round(v_1 / weight[k_1], 2)
res = sorted(weight.items(), key=lambda x: x[1])
result = dict()
result['attention_01'] = ''
result['attention_02'] = ''
result['attention_03'] = ''
result['attention_01'] = res[0][0]
result['attention_02'] = res[1][0]
result['attention_03'] = res[2][0]
return result
@ -326,6 +348,41 @@ def calculate_growth_rate(param1, param2):
return rate
def shareholder_strength_data(param):
"""
股东数据
清洗数据库数据根据需要返回
Parameters:
param: 企业名称
Returns:
股东数据
"""
data = dict()
# 基本信息
cbd = find_tyc_db(db='公司背景', col='基本信息', query={'企业名称': param})[0]
# 企业股东
cs = find_tyc_db(db='公司背景', col='企业股东', query={'企业名称': param})[0]
data['基本信息'] = cbd
data['企业股东'] = cs
return data
def person_subsidiaries(param):
"""
人员控股数据
清洗数据库数据根据需要返回
Parameters:
param: 人员id
Returns:
人员控股数据
"""
data = dict()
# 控股数据
ps = find_tyc_db(db='公司背景', col='人员控股企业', query={'人员ID': param})[0]
data['人员控股企业'] = ps
return data
def shareholder_strength(param):
"""
股东实力
@ -335,7 +392,57 @@ def shareholder_strength(param):
Returns:
股东实力数据
"""
return 'ok'
data_01 = param['企业股东']['企业股东']
result = dict()
result['part_01'] = dict()
if data_01['result'][0]['type'] == 1:
shareholder = data_01['result'][0]['name']
# 大股东名称
result['part_01']['company'] = shareholder
# 股东-基本信息
data_02 = shareholder_strength_data(shareholder)['基本信息']['基本信息']
# 股东-企业股东
data_03 = shareholder_strength_data(shareholder)['企业股东']['企业股东']
result['part_01']['found_date'] = time_stamp(data_02['estiblishTime'])
result['part_01']['registered_capital'] = data_02['regCapital']
result['part_01']['registered_capital'] = data_02['actualCapital']
result['part_01']['share_holders'] = data_03['result'][0]['name']
result['part_01']['share_rates'] = data_03['result'][0]['capital'][0]['percent']
result['part_01']['business_scope'] = data_02['businessScope']
result['part_02'] = dict()
esatablish = datetime.datetime.today().year - int(result['part_01']['found_date'][:4])
if esatablish >= 5:
result['part_02']['establish_time'] = '较长'
else:
result['part_02']['establish_time'] = '较短'
regcapital = float(data_02['regCapital'].replace('万人民币', ''))
if regcapital >= 30000:
result['part_02']['capital_strength'] = ''
result['part_02']['support_strength'] = '有望在业务和资金方面给予公司一定支持'
elif regcapital >= 10000:
result['part_02']['capital_strength'] = '较强'
result['part_02']['support_strength'] = '有望在业务和资金方面给予公司一定支持'
elif regcapital >= 3000:
result['part_02']['capital_strength'] = '尚可'
result['part_02']['support_strength'] = '对公司的支持力度或较弱'
elif regcapital >= 1000:
result['part_02']['capital_strength'] = '较弱'
result['part_02']['support_strength'] = '对公司的支持力度或较弱'
else:
result['part_02']['capital_strength'] = ''
result['part_02']['support_strength'] = '对公司的支持力度或较弱'
else:
result['part_01']['name'] = data_01['result'][0]['name']
result['part_01']['enterprise_amount'] = 0
subsidiaries = person_subsidiaries(data_01['result'][0]['id'])
if len(subsidiaries['人员控股企业']['人员控股企业']) > 0:
for item in subsidiaries['人员控股企业']['items']:
reg = float(item['regCapital'].replace('万人民币', ''))
percent = float(item['percent'].replace('%', ''))
if reg > 3000 and percent > 50:
result['part_01']['enterprise_amount'] += 1
return result
def outbound_investment(param):
@ -676,9 +783,9 @@ def qualification_honor(param):
insert_data.append(item['startDate'])
insert_data.append(item['endDate'])
result['part_03'].append(insert_data)
result['part_01']['Qualification'] = ''.join(result['part_01']['Qualification'])
result['part_02']['Qualification_international'] = ''.join(result['part_02']['Qualification_international'])
result['part_02']['Qualification_image'] = ''.join(result['part_02']['Qualification_image'])
result['part_01']['Qualification'] = ''.join(result['part_01']['Qualification'])
result['part_02']['Qualification_international'] = ''.join(result['part_02']['Qualification_international'])
result['part_02']['Qualification_image'] = ''.join(result['part_02']['Qualification_image'])
return result
@ -850,7 +957,7 @@ def profitability(param):
else:
result['part_02']['income_scale'] = ''
# 产品技术含量
rona = data_02['财务评分']['净资产收益率']
rona = data_02['财务评分']['盈利能力']['净资产收益率']
if rona >= 8:
result['part_02']['technology_level'] = ''
elif rona >= 8 * 0.8:
@ -870,7 +977,7 @@ def profitability(param):
# 总资产报酬率
result['part_02']['return_on_total_assets_analysis'] = str(data_03[1]['总资产报酬率'])
# 盈利能力
p_score = data_02['财务评分']['净资产收益率'] + data_02['财务评分']['总资产报酬率']
p_score = data_02['财务评分']['盈利能力']['净资产收益率'] + data_02['财务评分']['盈利能力']['总资产报酬率']
if p_score >= 16:
result['part_02']['profitability_analysis'] = ''
elif p_score >= 16 * 0.8:
@ -907,7 +1014,7 @@ def asset_quality(param):
# 总资产周转率
result['part_03']['total_assets_turnover_analysis'] = str(data_03[0]['总资产周转率'])
# 行业水平/资产质量
a_s = data_02['财务评分']['总资产周转率'] + data_02['财务评分']['应收账款周转率'] + data_02['财务评分']['存货周转率']
a_s = data_02['财务评分']['资产质量']['总资产周转率'] + data_02['财务评分']['资产质量']['应收账款周转率'] + data_02['财务评分']['资产质量']['存货周转率']
if a_s >= 18:
result['part_03']['industry_level'] = ''
result['part_03']['asset_quality'] = ''
@ -939,7 +1046,7 @@ def debt_risk(param):
data_03 = param['指标明细']
result = dict()
result['part_02'] = dict()
d_s = data_02['财务评分']['资产负债率'] + data_02['财务评分']['已获利息倍数'] + data_02['财务评分']['速动比率']
d_s = data_02['财务评分']['债务风险']['资产负债率'] + data_02['财务评分']['债务风险']['已获利息倍数'] + data_02['财务评分']['债务风险']['速动比率']
if d_s >= 18:
result['part_02']['debt_risk'] = ''
elif d_s >= 18 * 0.8:
@ -976,7 +1083,7 @@ def debt_risk(param):
else:
result['part_02']['fin_structure_analysis'] = '欠稳健'
# 经营性现金流对利息的保障程度
ic_s = data_02['财务评分']['已获利息倍数']
ic_s = data_02['财务评分']['债务风险']['已获利息倍数']
if ic_s >= 5:
result['part_02']['operating_cash_flow_to_debt'] = ''
elif ic_s >= 5 * 0.8:
@ -990,7 +1097,7 @@ def debt_risk(param):
# 已获利息倍数
result['part_02']['interest_cover'] = data_03[0]['已获利息倍数']
# 资产流动性
qr_s = data_02['财务评分']['速动比率']
qr_s = data_02['财务评分']['债务风险']['速动比率']
if qr_s >= 5:
result['part_02']['Assets_liquidity'] = ''
elif qr_s >= 5 * 0.8:
@ -1021,7 +1128,7 @@ def growth_ability(param):
result = dict()
result['part_02'] = dict()
# 重视程度
ti_s = data_02['财务评分']['技术投入比率']
ti_s = data_02['财务评分']['经营增长']['技术投入比率']
if ti_s >= 5 * 0.7:
result['part_02']['degree_of_imprtance'] = '重视技术研发或先进工艺的开发'
elif ti_s >= 5 * 0.4:
@ -1031,7 +1138,7 @@ def growth_ability(param):
# 技术投入比
result['part_02']['technology_input_ratio'] = data_03[1]['技术投入比率']
# 创新对公司贡献/整体成长能力
ga_s = data_02['财务评分']['营业增长率'] + data_02['财务评分']['总资产增长率'] + data_02['财务评分']['技术投入比率']
ga_s = data_02['财务评分']['经营增长']['营业增长率'] + data_02['财务评分']['经营增长']['总资产增长率'] + data_02['财务评分']['经营增长']['技术投入比率']
if ga_s >= 18:
result['part_02']['contribution'] = ''
result['part_02']['growth_ability'] = ''
@ -1111,7 +1218,19 @@ def associated_risk(param):
Returns:
关联风险数据
"""
data = param['周边风险']['周边风险']['list']
result = dict()
result['risk_num'] = 0
extent = ["失信被执行人", "司法拍卖", "限制消费令", "强制清算", "涉金融黑名单", "破产案件", "严重违法", "经营异常", "欠税公告",
"环保处罚", "立案信息", "税收违法", "违规处理"]
for item in data:
if item['title'] in extent:
result['include'] = '包括'
else:
result['include'] = '不包括'
result['risk_num'] += item['total']
if result['risk_num'] > 50:
result['include'] = '包括'
return result
@ -1162,7 +1281,7 @@ def conclusion(param):
else:
result['part_02']['enterprise_quality'] = ''
# 公司盈利能力得分
p_s = data_01['财务评分']['净资产收益率'] + data_01['财务评分']['总资产报酬率']
p_s = data_01['财务评分']['盈利能力']['净资产收益率'] + data_01['财务评分']['盈利能力']['总资产报酬率']
if p_s >= 16:
result['part_02']['Profitability'] = ''
elif p_s >= 16 * 0.8:
@ -1174,7 +1293,7 @@ def conclusion(param):
else:
result['part_02']['Profitability'] = ''
# 资产质量得分
aq_s = data_01['财务评分']['总资产周转率'] + data_01['财务评分']['应收账款周转率'] + data_01['财务评分']['存货周转率']
aq_s = data_01['财务评分']['资产质量']['总资产周转率'] + data_01['财务评分']['资产质量']['应收账款周转率'] + data_01['财务评分']['资产质量']['存货周转率']
if aq_s >= 18:
result['part_02']['asset_quality'] = ''
elif aq_s >= 18 * 0.8:
@ -1186,7 +1305,7 @@ def conclusion(param):
else:
result['part_02']['asset_quality'] = ''
# 债务风险得分
dr_s = data_01['财务评分']['资产负债率'] + data_01['财务评分']['已获利息倍数'] + data_01['财务评分']['速动比率']
dr_s = data_01['财务评分']['债务风险']['资产负债率'] + data_01['财务评分']['债务风险']['已获利息倍数'] + data_01['财务评分']['债务风险']['速动比率']
if dr_s >= 18:
result['part_02']['debt_risk'] = ''
elif dr_s >= 18 * 0.8:
@ -1198,7 +1317,7 @@ def conclusion(param):
else:
result['part_02']['debt_risk'] = ''
# 成长空间得分
gs_s = data_01['财务评分']['营业增长率'] + data_01['财务评分']['总资产增长率'] + data_01['财务评分']['技术投入比率']
gs_s = data_01['财务评分']['经营增长']['营业增长率'] + data_01['财务评分']['经营增长']['总资产增长率'] + data_01['财务评分']['经营增长']['技术投入比率']
if gs_s >= 18:
result['part_02']['growth_ability'] = ''
elif gs_s >= 18 * 0.8: