2021-12-24 15:24:26 +08:00
|
|
|
import json
|
|
|
|
import pandas as pd
|
|
|
|
|
2022-01-27 17:01:38 +08:00
|
|
|
|
2022-02-14 17:28:52 +08:00
|
|
|
from company.company_db import FIND_DATA_IN_COMPANY, FIND_DATA_IN_MACRO_INDUSTRY_ANALYSIS
|
|
|
|
from company.company_utils import sub_dict, judge_industry
|
2021-12-13 16:04:10 +08:00
|
|
|
|
|
|
|
|
2021-12-21 11:06:58 +08:00
|
|
|
def find_company_data_scripts(table, cid):
|
2022-01-26 17:34:59 +08:00
|
|
|
return FIND_DATA_IN_COMPANY(table, {"企业ID": cid})
|
2021-12-24 15:24:26 +08:00
|
|
|
|
|
|
|
|
2022-01-27 17:01:38 +08:00
|
|
|
def get_head_info_impl(cid):
|
2022-01-26 17:34:59 +08:00
|
|
|
data = FIND_DATA_IN_COMPANY('综合评价分析', {"企业ID": cid})
|
2021-12-27 16:30:57 +08:00
|
|
|
if data:
|
|
|
|
return sub_dict(data[0], ['企业名称', '综合信用等级'])
|
|
|
|
else:
|
2022-01-26 17:34:59 +08:00
|
|
|
company = FIND_DATA_IN_COMPANY('公司基本信息', {"企业ID": cid})[0]
|
2021-12-27 16:30:57 +08:00
|
|
|
result = {
|
|
|
|
"企业名称": company['企业名称'],
|
|
|
|
"综合信用等级": {
|
|
|
|
"评价时间": "N/A",
|
|
|
|
"信用等级": "N/A",
|
|
|
|
"信用评分": "N/A"
|
|
|
|
},
|
|
|
|
}
|
|
|
|
return result
|
|
|
|
|
|
|
|
|
2021-12-24 15:24:26 +08:00
|
|
|
def find_financial_index_detail_scripts(table, cid):
|
2021-12-28 16:23:33 +08:00
|
|
|
|
2022-01-26 17:34:59 +08:00
|
|
|
index_detail = FIND_DATA_IN_COMPANY(table, {"企业ID": cid})
|
2021-12-28 16:23:33 +08:00
|
|
|
if not index_detail:
|
|
|
|
return False
|
|
|
|
|
2021-12-30 11:19:26 +08:00
|
|
|
df = pd.DataFrame(index_detail).sort_values('年报期', ascending=False)
|
2021-12-24 15:24:26 +08:00
|
|
|
cols = [
|
|
|
|
'年报期',
|
|
|
|
'净资产收益率',
|
|
|
|
'总资产报酬率',
|
|
|
|
'总资产周转率',
|
|
|
|
'应收账款周转率',
|
|
|
|
'存货周转率',
|
|
|
|
'资产负债率',
|
|
|
|
'已获利息倍数',
|
|
|
|
'速动比率',
|
|
|
|
'营业增长率',
|
|
|
|
'总资产增长率',
|
|
|
|
'技术投入比率'
|
|
|
|
]
|
|
|
|
unit_cols = [
|
|
|
|
'净资产收益率',
|
|
|
|
'总资产报酬率',
|
|
|
|
'总资产周转率',
|
|
|
|
'存货周转率',
|
|
|
|
'资产负债率',
|
|
|
|
'速动比率',
|
|
|
|
'营业增长率',
|
|
|
|
'总资产增长率',
|
|
|
|
'技术投入比率'
|
|
|
|
]
|
|
|
|
|
|
|
|
def percent_unit(param):
|
|
|
|
return param.map(lambda x: '{}%'.format(x) if (param.name in unit_cols and not pd.isna(x)) else x)
|
|
|
|
|
|
|
|
df_result = df[cols].apply(lambda x: percent_unit(x))
|
|
|
|
|
|
|
|
return list(json.loads(df_result.T.to_json()).values())
|
2022-02-09 17:34:42 +08:00
|
|
|
|
|
|
|
|
2022-02-14 17:28:52 +08:00
|
|
|
def industry_analysis_impl(cid):
|
|
|
|
"""
|
|
|
|
行业宏观分析数据
|
|
|
|
Parameters:
|
|
|
|
cid: str 企业ID
|
|
|
|
Returns:
|
|
|
|
Case Success:
|
|
|
|
data: dict 行业宏观分析数据
|
|
|
|
Case Fail:
|
|
|
|
data: dict 空字典
|
|
|
|
"""
|
|
|
|
|
|
|
|
industry = judge_industry(cid)
|
|
|
|
|
|
|
|
if industry is False:
|
|
|
|
return {}
|
|
|
|
|
|
|
|
data = FIND_DATA_IN_MACRO_INDUSTRY_ANALYSIS(industry)
|
|
|
|
|
|
|
|
if data is False:
|
|
|
|
return {}
|
|
|
|
|
|
|
|
return data
|
|
|
|
|
2022-02-24 16:15:04 +08:00
|
|
|
|
|
|
|
def esg_analysis_impl(cid):
|
|
|
|
"""
|
|
|
|
ESG要素分析数据
|
|
|
|
Parameters:
|
|
|
|
cid: str 企业ID
|
|
|
|
Returns:
|
|
|
|
Case Success:
|
|
|
|
data: dict ESG分析数据
|
|
|
|
Case Fail:
|
|
|
|
data: dict 空字典
|
|
|
|
"""
|
|
|
|
data = FIND_DATA_IN_COMPANY('ESG要素分析',{"企业ID": cid})
|
|
|
|
|
|
|
|
if data is False:
|
|
|
|
return {}
|
|
|
|
|
|
|
|
return data
|