2021-11-15 04:07:20 +08:00
|
|
|
import copy
|
|
|
|
import pandas as pd
|
|
|
|
|
2021-11-15 15:36:26 +08:00
|
|
|
from lib.Indicators import *
|
2021-11-15 04:07:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
class RatingModel:
|
|
|
|
"""
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
def __init__(self, param):
|
|
|
|
# 所属行业
|
2021-11-17 04:50:21 +08:00
|
|
|
self.industry = param['行业']
|
|
|
|
# 评价期间
|
|
|
|
self.period = param['评价期间']
|
2021-11-15 15:36:26 +08:00
|
|
|
# 数据模板 data_model
|
2021-11-17 04:50:21 +08:00
|
|
|
self.data_model = param['数据模板']
|
2021-11-15 04:07:20 +08:00
|
|
|
# 指标结果(财务)
|
2021-11-17 04:50:21 +08:00
|
|
|
self.indicators = self.financial_elements()
|
2021-11-15 04:07:20 +08:00
|
|
|
# 指标百分比
|
|
|
|
self.percentages = ''
|
|
|
|
# 指标评分结果
|
|
|
|
self.ratings = ''
|
|
|
|
|
|
|
|
def business_elements(self):
|
|
|
|
"""
|
|
|
|
经营要素
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
|
|
def financial_elements(self):
|
|
|
|
"""
|
|
|
|
财务要素
|
|
|
|
"""
|
2021-11-17 04:50:21 +08:00
|
|
|
ele = dict()
|
2021-11-15 15:36:26 +08:00
|
|
|
dm = self.data_model['财务数据']
|
2021-11-17 04:50:21 +08:00
|
|
|
b, e = self.period['上期'], self.period['当期']
|
|
|
|
ele['净资产收益率'] = roe(dm[e]['净利润'], dm[e]['所有者权益合计'], dm[b]['所有者权益合计'])
|
|
|
|
ele['总资产报酬率'] = roa(dm[e]['利润总额'], dm[e]['计入财务费的利息支出'], dm[e]['资产总计'], dm[b]['资产总计'])
|
|
|
|
ele['总资产周转率'] = tat(dm[e]['营业收入'], dm[e]['资产总计'], dm[b]['资产总计'])
|
|
|
|
ele['应收账款周速度'] = acrt(dm[e]['营业收入'], dm[e]['应收账款'])
|
|
|
|
ele['存货周转率'] = ivtt(dm[e]['营业成本'], dm[e]['存货'], dm[b]['存货'])
|
|
|
|
ele['资产负债率'] = dbar(dm[e]['负债合计'], dm[e]['资产总计'])
|
|
|
|
ele['已获利息倍数'] = icm(dm[e]['利润总额'], dm[e]['计入财务费的利息支出'], dm[e]['资本化利息支出'], dm[e]['短期借款'], dm[e]['长期借款'])
|
|
|
|
ele['速动比率'] = qkr(dm[e]['流动资产合计'], dm[e]['存货'], dm[e]['流动负债合计'])
|
|
|
|
ele['营业增长率'] = bgr(dm[e]['营业收入'], dm[b]['营业收入'])
|
|
|
|
ele['总资产增长率'] = tagr(dm[e]['资产总计'], dm[b]['资产总计'])
|
|
|
|
ele['技术投入比率'] = tio(dm[e]['研发费用'], dm[e]['营业收入'])
|
|
|
|
return ele
|
2021-11-15 04:07:20 +08:00
|
|
|
|
|
|
|
def risk_elements(self):
|
|
|
|
"""
|
|
|
|
风险要素
|
|
|
|
"""
|
|
|
|
pass
|
2021-11-15 15:36:26 +08:00
|
|
|
|
|
|
|
def req_percent(self):
|
|
|
|
"""
|
|
|
|
计算指标百分比
|
|
|
|
"""
|
|
|
|
self.business_elements()
|
|
|
|
self.risk_elements()
|
|
|
|
|
|
|
|
def req_rating(self):
|
|
|
|
"""
|
|
|
|
计算评级结果
|
2021-11-17 04:50:21 +08:00
|
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
import json
|
|
|
|
with open("../static/test_data/demo01.json", "r", encoding="utf-8") as f:
|
|
|
|
data = json.load(f)
|
|
|
|
RatingModel(data)
|