update 财务要素分析
This commit is contained in:
parent
57d7b6d165
commit
254230fc37
|
@ -416,11 +416,38 @@ class FinancialAnalysisImpl(FinancialElementsAnalysis):
|
|||
'速动比率', '营业增长率', '总资产增长率', '技术投入比率']
|
||||
periods = list(
|
||||
pd.DataFrame(rating_input['财务填报']['资产负债表']).sort_values('报告期', ascending=False)['报告期'][0:2].values)
|
||||
df_recent_2year = pd.DataFrame(self.db.find_single_data('综信评价数据', '财指结果', {'企业ID': rating_result['企业ID']},
|
||||
search)).sort_values('年报期', ascending=False)[0:2]
|
||||
df_recent_2year = pd.DataFrame(self.db.find_all_data('综信评价数据', '财指结果', {'企业ID': rating_result['企业ID']},
|
||||
search)).sort_values('年报期', ascending=False)[0:2]
|
||||
df_this = df_recent_2year[0:1]
|
||||
df_last = df_recent_2year[1:2]
|
||||
|
||||
data_last = list(json.loads(df_last[['净资产收益率', '存货周转率', '已获利息倍数', '应收账款周转率', '总资产周转率', '总资产增长率', '总资产报酬率',
|
||||
'技术投入比率', '营业增长率', '资产负债率', '速动比率']].T.to_json()).values())
|
||||
url = "http://api.fecribd.com/tfse_rating/rating/financial_score"
|
||||
headers = {'token': "X0gSlC!YE8jmr2jJr&ilcjS83j!tsoh5", "content-type": "application/json"}
|
||||
data = {"财务指标": data_last, "所属行业": industry}
|
||||
score_last_origin = json.loads(requests.post(url=url, headers=headers, data=json.dumps(data)).text)[
|
||||
'result']
|
||||
score_avg = {
|
||||
"盈利能力": 8,
|
||||
"资产质量": 9,
|
||||
"债务风险": 9,
|
||||
"经营增长": 9
|
||||
}
|
||||
score_actl = {
|
||||
"盈利能力": rating_result['财务评分']['盈利能力']['合计'],
|
||||
"资产质量": rating_result['财务评分']['资产质量']['合计'],
|
||||
"债务风险": rating_result['财务评分']['债务风险']['合计'],
|
||||
"经营增长": rating_result['财务评分']['经营增长']['合计']
|
||||
}
|
||||
score_last = {
|
||||
"盈利能力": score_last_origin['盈利能力']['合计'],
|
||||
"资产质量": score_last_origin['资产质量']['合计'],
|
||||
"债务风险": score_last_origin['债务风险']['合计'],
|
||||
"经营增长": score_last_origin['经营增长']['合计']
|
||||
}
|
||||
df = pd.DataFrame({'今年值': score_actl, '去年值': score_last, "平均值": score_avg})
|
||||
|
||||
def result_head():
|
||||
"""基本信息"""
|
||||
self.cid = rating_result['企业ID']
|
||||
|
@ -461,7 +488,96 @@ class FinancialAnalysisImpl(FinancialElementsAnalysis):
|
|||
|
||||
def compare_to_year():
|
||||
"""财务得分年度比较"""
|
||||
self.compare_to_years = list()
|
||||
|
||||
def score_actl_script():
|
||||
"""今年财务得分"""
|
||||
compare = self.CompareToYears()
|
||||
score_index = compare.FinancialScoreIndex()
|
||||
score_index.profitability = rating_result['财务评分']['盈利能力']['合计']
|
||||
score_index.asset_quality = rating_result['财务评分']['资产质量']['合计']
|
||||
score_index.debt_risk = rating_result['财务评分']['债务风险']['合计']
|
||||
score_index.business_growth = rating_result['财务评分']['经营增长']['合计']
|
||||
compare.year = df_this['年报期'][0]
|
||||
compare.index = score_index.dict_to_save()
|
||||
self.compare_to_years.append(compare.dict_to_save())
|
||||
|
||||
def score_last_script():
|
||||
"""去年财务得分"""
|
||||
compare = self.CompareToYears()
|
||||
score_index = compare.FinancialScoreIndex()
|
||||
score_index.profitability = score_last_origin['盈利能力']['合计']
|
||||
score_index.asset_quality = score_last_origin['资产质量']['合计']
|
||||
score_index.debt_risk = score_last_origin['债务风险']['合计']
|
||||
score_index.business_growth = score_last_origin['经营增长']['合计']
|
||||
compare.year = df_last['年报期'][1]
|
||||
compare.index = score_index.dict_to_save()
|
||||
self.compare_to_years.append(compare.dict_to_save())
|
||||
|
||||
score_actl_script()
|
||||
score_last_script()
|
||||
|
||||
def compare_to_industry():
|
||||
"""财务得分同行比较"""
|
||||
compare_industry = self.CompareToIndustry()
|
||||
|
||||
def company_level():
|
||||
"""公司水平"""
|
||||
company = compare_industry.CompanyScore()
|
||||
company.profitability = rating_result['财务评分']['盈利能力']['合计']
|
||||
company.asset_quality = rating_result['财务评分']['资产质量']['合计']
|
||||
company.debt_risk = rating_result['财务评分']['债务风险']['合计']
|
||||
company.business_growth = rating_result['财务评分']['经营增长']['合计']
|
||||
compare_industry.company_score = company
|
||||
|
||||
def average_level():
|
||||
"""平均水平"""
|
||||
average = compare_industry.AverageScore()
|
||||
average.profitability = 8
|
||||
average.asset_quality = 9
|
||||
average.debt_risk = 9
|
||||
average.business_growth = 9
|
||||
compare_industry.average_score = average
|
||||
|
||||
company_level()
|
||||
average_level()
|
||||
|
||||
def delta_to_year():
|
||||
"""财务得分较去年变化"""
|
||||
delat_data = json.loads((df['今年值']/df['去年值']-1).apply(lambda x: '{}%'.format(round(x*100, 2))).T.to_json())
|
||||
delat = self.DeltaToYears()
|
||||
delat.profitability = delat_data['盈利能力']
|
||||
delat.asset_quality = delat_data['资产质量']
|
||||
delat.debt_risk = delat_data['债务风险']
|
||||
delat.business_growth = delat_data['经营增长']
|
||||
self.delta_to_years = delat
|
||||
|
||||
def delta_to_industry():
|
||||
"""财务扽分交同行差异"""
|
||||
delat_data = json.loads((df['今年值']/df['平均值']-1).apply(lambda x: '{}%'.format(round(x * 100, 2))).T.to_json())
|
||||
delat = self.DeltaToIndustry()
|
||||
delat.profitability = delat_data['盈利能力']
|
||||
delat.asset_quality = delat_data['资产质量']
|
||||
delat.debt_risk = delat_data['债务风险']
|
||||
delat.business_growth = delat_data['经营增长']
|
||||
self.delta_to_industry = delat
|
||||
|
||||
def _main_():
|
||||
result_head()
|
||||
index_detail()
|
||||
compare_to_year()
|
||||
compare_to_industry()
|
||||
delta_to_year()
|
||||
delta_to_industry()
|
||||
result = self.dict_to_save()
|
||||
self.db.upsert_single_data(
|
||||
'企业数据',
|
||||
'财务要素分析',
|
||||
{"评价ID": self.rid},
|
||||
result
|
||||
)
|
||||
|
||||
_main_()
|
||||
|
||||
|
||||
class BusinessAnalysisImpl(BusinessElementsAnalysis):
|
||||
|
|
|
@ -381,7 +381,7 @@ class FinancialElementsAnalysis(SpecObject):
|
|||
class CompareToYears(SpecObject):
|
||||
"""财务得分年度比较"""
|
||||
|
||||
class FinancialAnalysisIndex(SpecObject):
|
||||
class FinancialScoreIndex(SpecObject):
|
||||
"""指标"""
|
||||
profitability = ValidateAttr(field='profitability', type=(int, float))
|
||||
asset_quality = ValidateAttr(field='asset_quality', type=(int, float))
|
||||
|
@ -396,7 +396,7 @@ class FinancialElementsAnalysis(SpecObject):
|
|||
}
|
||||
|
||||
year = ValidateAttr(field='year', type=str, func=Validate.date_format)
|
||||
index = ValidateAttr(field='index', instance_list=FinancialAnalysisIndex)
|
||||
index = ValidateAttr(field='index', type=FinancialScoreIndex)
|
||||
|
||||
fields_map = {
|
||||
"year": "年度",
|
||||
|
@ -486,7 +486,7 @@ class FinancialElementsAnalysis(SpecObject):
|
|||
update_time = ValidateAttr(field='update_time', func=Validate.time_format)
|
||||
rid = ValidateAttr(field='rid', type=str, length=8)
|
||||
report_date = ValidateAttr(field='report_date', type=str, func=Validate.date_format)
|
||||
compare_to_years = ValidateAttr(field='compare_to_years', length=2, type=CompareToYears)
|
||||
compare_to_years = ValidateAttr(field='compare_to_years', length=2, instance_list=CompareToYears)
|
||||
compare_to_industry = ValidateAttr(field='compare_to_industry', type=CompareToIndustry)
|
||||
delta_to_years = ValidateAttr(field='delta_to_years', type=DeltaToYears)
|
||||
delta_to_industry = ValidateAttr(field='delta_to_industry', type=DeltaToIndustry)
|
||||
|
|
|
@ -44,12 +44,13 @@ def general_rating():
|
|||
-
|
||||
"""
|
||||
try:
|
||||
credit_analysis = CreditAnalysisImpl()
|
||||
credit_analysis.rid = request.json['rid']
|
||||
credit_analysis.cc_rating_etl()
|
||||
# credit_analysis = CreditAnalysisImpl()
|
||||
# credit_analysis.rid = request.json['rid']
|
||||
# credit_analysis.cc_rating_etl()
|
||||
financial_analysis = FinancialAnalysisImpl()
|
||||
financial_analysis.rid = request.json['rid']
|
||||
financial_analysis.financial_analysis_etl()
|
||||
company_index.risk_analysis_etl()
|
||||
# company_index.risk_analysis_etl()
|
||||
return {"info": "数据准备完成"}, 200
|
||||
except ReturnConditionCheckFailed as e:
|
||||
e.log_error()
|
||||
|
|
Loading…
Reference in New Issue