parent
4b8bd100be
commit
524a83a2a6
|
@ -7,9 +7,9 @@ from Utils.ValidateUtil import ValidateAttr, Validate
|
|||
|
||||
class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
||||
|
||||
rid = ValidateAttr(field="cid", type=str)
|
||||
rid = ValidateAttr(field="rid", type=str)
|
||||
cid = ValidateAttr(field="cid", type=str)
|
||||
report_date = ValidateAttr(field="cid", func=Validate.date_format)
|
||||
report_date = ValidateAttr(field="report_date", func=Validate.date_format)
|
||||
|
||||
fields_map = {
|
||||
"rid": "评级ID",
|
||||
|
@ -52,12 +52,14 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
def eval_guaranteed_insured_balance_growth_rate(self, *args):
|
||||
"""
|
||||
担保在保余额增长率(%)
|
||||
公式: 担保在保余额增长率 = 期末担保在保余额 / 期初担保在保余额
|
||||
公式: 担保在保余额增长率 = (期末担保在保余额 - 期初担保在保余额) / 期初担保在保余额
|
||||
args[0]: 期末担保在保余额
|
||||
args[1]: 期初担保在保余额
|
||||
"""
|
||||
try:
|
||||
self.guaranteed_insured_balance_growth_rate = (args[0] / args[1]) * 100
|
||||
value = ((args[0]-args[1]) / args[1]) * 100
|
||||
value = round(value, 2)
|
||||
self.guaranteed_insured_balance_growth_rate = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.guaranteed_insured_balance_growth_rate = None
|
||||
|
||||
|
@ -69,19 +71,23 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
args[1]: 上期担保业务收入
|
||||
"""
|
||||
try:
|
||||
self.guaranteed_revenue_growth_rate = ((args[0]-args[1]) / args[1]) * 100
|
||||
value = ((args[0]-args[1]) / args[1]) * 100
|
||||
value = round(value, 2)
|
||||
self.guaranteed_revenue_growth_rate = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.guaranteed_revenue_growth_rate = None
|
||||
|
||||
def eval_growth_rate_of_total_assets(self, *args):
|
||||
"""
|
||||
资产总额增长率(%)
|
||||
公式: 资产总额 = 期末资产总额 / 期初资产总额
|
||||
公式: 资产总额 = (期末资产总额 - 期初资产总额) / 期初资产总额
|
||||
args[0]: 期末资产总额
|
||||
args[1]: 期初资产总额
|
||||
"""
|
||||
try:
|
||||
self.growth_rate_of_total_assets = (args[0] / args[1]) * 100
|
||||
value = ((args[0] - args[1]) / args[1]) * 100
|
||||
value = round(value, 2)
|
||||
self.growth_rate_of_total_assets = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.growth_rate_of_total_assets = None
|
||||
|
||||
|
@ -96,7 +102,9 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
args[4]: 资产总额
|
||||
"""
|
||||
try:
|
||||
self.cash_assets_ratio = ((args[0]+args[1]+args[2]-args[3]) / args[4]) * 100
|
||||
value = ((args[0]+args[1]+args[2]-args[3]) / args[4]) * 100
|
||||
value = round(value, 2)
|
||||
self.cash_assets_ratio = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.cash_assets_ratio = None
|
||||
|
||||
|
@ -108,7 +116,9 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
args[1]: 流动负债合计
|
||||
"""
|
||||
try:
|
||||
self.current_ratio = (args[0] / args[1]) * 100
|
||||
value = (args[0] / args[1]) * 100
|
||||
value = round(value, 2)
|
||||
self.current_ratio = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.current_ratio = None
|
||||
|
||||
|
@ -116,12 +126,14 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
代偿准备金比率(%)
|
||||
公式: 代偿准备金比率 = 当期代偿金额 /(未到期责任准备金+担保赔偿准备金)
|
||||
args[1]: 当期代偿金额
|
||||
args[2]: 未到期责任准备金
|
||||
args[3]: 担保赔偿准备金
|
||||
args[0]: 当期代偿金额
|
||||
args[1]: 未到期责任准备金
|
||||
args[2]: 担保赔偿准备金
|
||||
"""
|
||||
try:
|
||||
self.compensation_reserve_ratio = (args[1] / (args[2]+args[3])) * 100
|
||||
value = (args[0] / (args[1]+args[2])) * 100
|
||||
value = round(value, 2)
|
||||
self.compensation_reserve_ratio = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.compensation_reserve_ratio = None
|
||||
|
||||
|
@ -129,14 +141,16 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
代偿保障率(%)
|
||||
公式: 代偿保障率 = (货币资金+可供出售金融资产+存出保证金-存入保证金) / 最大被担保企业融资担保责任余额
|
||||
args[1]: 货币资金
|
||||
args[2]: 可供出售金融资产
|
||||
args[3]: 存出保证金
|
||||
args[4]: 存入保证金
|
||||
args[5]: 最大被担保企业融资担保责任余额
|
||||
args[0]: 货币资金
|
||||
args[1]: 可供出售金融资产
|
||||
args[2]: 存出保证金
|
||||
args[3]: 存入保证金
|
||||
args[4]: 最大被担保企业融资担保责任余额
|
||||
"""
|
||||
try:
|
||||
self.compensation_rate = ((args[1]+args[2]+args[3]-args[4]) / args[5]) * 100
|
||||
value = ((args[0]+args[1]+args[2]-args[3]) / args[4]) * 100
|
||||
value = round(value, 2)
|
||||
self.compensation_rate = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.compensation_rate = None
|
||||
|
||||
|
@ -145,13 +159,15 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
风险准备金充足率(%)
|
||||
公式: 风险准备金充足率=担保风险准备金余额 / 融资担保责任余额
|
||||
其中:担保风险准备金余额=担保赔偿准备金+未到期责任准备金+一般风险准备金
|
||||
args[1]: 担保赔偿准备金
|
||||
args[2]: 未到期责任准备金
|
||||
args[3]: 一般风险准备金
|
||||
args[4]: 融资担保责任余额
|
||||
args[0]: 担保赔偿准备金
|
||||
args[1]: 未到期责任准备金
|
||||
args[2]: 一般风险准备金
|
||||
args[3]: 融资担保责任余额
|
||||
"""
|
||||
try:
|
||||
self.risk_reserve_adequacy_ratio = ((args[1]+args[2]+args[3]) / args[4]) * 100
|
||||
value = ((args[0]+args[1]+args[2]) / args[3]) * 100
|
||||
value = round(value, 2)
|
||||
self.risk_reserve_adequacy_ratio = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.risk_reserve_adequacy_ratio = None
|
||||
|
||||
|
@ -159,11 +175,13 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
单一客户集中度(%)
|
||||
公式: 单一客户集中度 = 最大被担保企业融资担保责任余额 / 融资担保责任余额
|
||||
args[1]: 最大被担保企业融资担保责任余额
|
||||
args[2]: 融资担保责任余额
|
||||
args[0]: 最大被担保企业融资担保责任余额
|
||||
args[1]: 融资担保责任余额
|
||||
"""
|
||||
try:
|
||||
self.single_customer_concentration = (args[1] / args[2]) * 100
|
||||
value = (args[0] / args[1]) * 100
|
||||
value = round(value, 2)
|
||||
self.single_customer_concentration = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.single_customer_concentration = None
|
||||
|
||||
|
@ -171,11 +189,13 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
当期担保代偿率(%)
|
||||
公式: 当期担保代偿率 = 当期代偿金额 / 当期解除担保责任余额
|
||||
args[1]: 当期代偿金额
|
||||
args[2]: 当期解除担保责任余额
|
||||
args[0]: 当期代偿金额
|
||||
args[1]: 当期解除担保责任余额
|
||||
"""
|
||||
try:
|
||||
self.current_guarantee_compensation_rate = (args[1] / args[2]) * 100
|
||||
value = (args[0] / args[1]) * 100
|
||||
value = round(value, 2)
|
||||
self.current_guarantee_compensation_rate = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.current_guarantee_compensation_rate = None
|
||||
|
||||
|
@ -183,11 +203,13 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
当期代偿回收率(%)
|
||||
公式: 当期代偿回收率 = 当期代偿回收金额 / 当期代偿金额
|
||||
args[1]: 当期代偿回收金额
|
||||
args[2]: 当期代偿金额
|
||||
args[0]: 当期代偿回收金额
|
||||
args[1]: 当期代偿金额
|
||||
"""
|
||||
try:
|
||||
self.current_compensation_recovery_rate = (args[1] / args[2]) * 100
|
||||
value = (args[0] / args[1]) * 100
|
||||
value = round(value, 2)
|
||||
self.current_compensation_recovery_rate = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.current_compensation_recovery_rate = None
|
||||
|
||||
|
@ -195,11 +217,13 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
融资担保放大倍数(倍)
|
||||
公式: 融资担保放大倍数 = 融资担保责任余额 / 净资产
|
||||
args[1]: 融资担保责任余额
|
||||
args[2]: 净资产
|
||||
args[0]: 融资担保责任余额
|
||||
args[1]: 净资产
|
||||
"""
|
||||
try:
|
||||
self.financing_guarantee_magnification = args[1] / args[2]
|
||||
value = args[0] / args[1]
|
||||
value = round(value, 2)
|
||||
self.financing_guarantee_magnification = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.financing_guarantee_magnification = None
|
||||
|
||||
|
@ -207,11 +231,13 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
行业集中度(%)
|
||||
公式: 行业集中度 = 最大单一行业融资担保责任余额 / 融资担保责任余额
|
||||
args[1]: 最大单一行业融资担保责任余额
|
||||
args[2]: 融资担保责任余额
|
||||
args[0]: 最大单一行业融资担保责任余额
|
||||
args[1]: 融资担保责任余额
|
||||
"""
|
||||
try:
|
||||
self.industry_concentration = (args[1] / args[2]) * 100
|
||||
value = (args[0] / args[1]) * 100
|
||||
value = round(value, 2)
|
||||
self.industry_concentration = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.industry_concentration = None
|
||||
|
||||
|
@ -219,12 +245,14 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
总资产收益率(%)
|
||||
公式: 总资产收益率 = 净利润 / (期初资产总额+期末资产总额)/2
|
||||
args[1]: 净利润
|
||||
args[2]: 期初资产总额
|
||||
args[3]: 期末资产总额
|
||||
args[0]: 净利润
|
||||
args[1]: 期初资产总额
|
||||
args[2]: 期末资产总额
|
||||
"""
|
||||
try:
|
||||
self.return_total_assets = (args[1] / (args[2]+args[3])/2) * 100
|
||||
value = (args[0] / (args[1]+args[2])/2) * 100
|
||||
value = round(value, 2)
|
||||
self.return_total_assets = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.return_total_assets = None
|
||||
|
||||
|
@ -232,13 +260,15 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
营业利润率(%)
|
||||
公式: 营业利润率 =(营业利润-投资收益-公允价值变动收益)/ 营业收入
|
||||
args[1]: 营业利润
|
||||
args[2]: 投资收益
|
||||
args[3]: 公允价值变动收益
|
||||
args[4]: 营业收入
|
||||
args[0]: 营业利润
|
||||
args[1]: 投资收益
|
||||
args[2]: 公允价值变动收益
|
||||
args[3]: 营业收入
|
||||
"""
|
||||
try:
|
||||
self.operating_margin = ((args[1]-args[2]-args[3]) / args[4]) * 100
|
||||
value = ((args[0]-args[1]-args[2]) / args[3]) * 100
|
||||
value = round(value, 2)
|
||||
self.operating_margin = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.operating_margin = None
|
||||
|
||||
|
@ -246,12 +276,14 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
净资产收益率(%)
|
||||
公式: 净资产收益率 = 净利润 / (期初净资产+期末净资产)/2
|
||||
args[1]: 净利润
|
||||
args[2]: 期初净资产
|
||||
args[3]: 期末净资产
|
||||
args[0]: 净利润
|
||||
args[1]: 期初净资产
|
||||
args[2]: 期末净资产
|
||||
"""
|
||||
try:
|
||||
self.roe = (args[1] / (args[2]+args[3])/2) * 100
|
||||
value = (args[0] / (args[1]+args[2])/2) * 100
|
||||
value = round(value, 2)
|
||||
self.roe = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.roe = None
|
||||
|
||||
|
@ -259,13 +291,15 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
实际资产负债率(%)
|
||||
公式: 实际资产负债率 = (负债合计-未到期责任准备金-担保赔偿准备金) / 资产总额
|
||||
args[1]: 负债合计
|
||||
args[2]: 未到期责任准备金
|
||||
args[3]: 担保赔偿准备金
|
||||
args[4]: 资产总额
|
||||
args[0]: 负债合计
|
||||
args[1]: 未到期责任准备金
|
||||
args[2]: 担保赔偿准备金
|
||||
args[3]: 资产总额
|
||||
"""
|
||||
try:
|
||||
self.actual_asset_liability_ratio = ((args[1]-args[2]-args[3]) / args[4]) * 100
|
||||
value = ((args[0]-args[1]-args[2]) / args[3]) * 100
|
||||
value = round(value, 2)
|
||||
self.actual_asset_liability_ratio = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.actual_asset_liability_ratio = None
|
||||
|
||||
|
@ -273,11 +307,13 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
资本充足率(%)
|
||||
公式: 资本充足率 = 净资产 / 风险加权资产
|
||||
args[1]: 净资产
|
||||
args[2]: 风险加权资产
|
||||
args[0]: 净资产
|
||||
args[1]: 风险加权资产
|
||||
"""
|
||||
try:
|
||||
self.capital_adequacy_ratio = (args[1] / args[2]) * 100
|
||||
value = (args[0] / args[1]) * 100
|
||||
value = round(value, 2)
|
||||
self.capital_adequacy_ratio = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.capital_adequacy_ratio = None
|
||||
|
||||
|
@ -285,10 +321,12 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
实收资本(亿元)
|
||||
公式: 即实缴资本
|
||||
args[1]: 实缴资本
|
||||
args[0]: 实缴资本
|
||||
"""
|
||||
try:
|
||||
self.paid_capital = args[1]
|
||||
value = args[0]/10000
|
||||
value = round(value, 2)
|
||||
self.paid_capital = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.paid_capital = None
|
||||
|
||||
|
@ -296,10 +334,12 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
担保业务收入(万元)
|
||||
公式: 即当期担保业务收入
|
||||
args[1]: 担保业务收入
|
||||
args[0]: 担保业务收入
|
||||
"""
|
||||
try:
|
||||
self.guarantee_business_income = args[1]
|
||||
value = args[0]
|
||||
value = round(value, 2)
|
||||
self.guarantee_business_income = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.guarantee_business_income = None
|
||||
|
||||
|
@ -307,11 +347,13 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
近三年累计担保代偿率(%)
|
||||
公式: 近三年累计担保代偿率 = 近三年累计代偿金额 / 近三年累计解除担保责任金额
|
||||
args[1]: 近三年累计代偿金额
|
||||
args[2]: 近三年累计解除担保责任金额
|
||||
args[0]: 近三年累计代偿金额
|
||||
args[1]: 近三年累计解除担保责任金额
|
||||
"""
|
||||
try:
|
||||
self.cumulative_guarantee_compensation_rate = (args[1] / args[2]) * 100
|
||||
value = (args[0] / args[1]) * 100
|
||||
value = round(value, 2)
|
||||
self.cumulative_guarantee_compensation_rate = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.cumulative_guarantee_compensation_rate = None
|
||||
|
||||
|
@ -319,11 +361,13 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
近三年累计代偿回收率(%)
|
||||
公式: 近三年累计代偿回收率 = 近三年累计代偿回收金额 / 近三年累计代偿金额
|
||||
args[1]: 近三年累计代偿回收金额
|
||||
args[2]: 近三年累计代偿金额
|
||||
args[0]: 近三年累计代偿回收金额
|
||||
args[1]: 近三年累计代偿金额
|
||||
"""
|
||||
try:
|
||||
self.cumulative_compensation_recovery_rate = (args[1] / args[2]) * 100
|
||||
value = (args[0] / args[1]) * 100
|
||||
value = round(value, 2)
|
||||
self.cumulative_compensation_recovery_rate = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.cumulative_compensation_recovery_rate = None
|
||||
|
||||
|
@ -331,11 +375,13 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
风险覆盖率(%)
|
||||
公式: 风险覆盖率 = 担保赔偿准备金 / 近三年累计代偿金额
|
||||
args[1]: 担保赔偿准备金
|
||||
args[2]: 近三年累计代偿金额
|
||||
args[0]: 担保赔偿准备金
|
||||
args[1]: 近三年累计代偿金额
|
||||
"""
|
||||
try:
|
||||
self.risk_coverage_ratio = (args[1] / args[2]) * 100
|
||||
value = (args[0] / args[1]) * 100
|
||||
value = round(value, 2)
|
||||
self.risk_coverage_ratio = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.risk_coverage_ratio = None
|
||||
|
||||
|
@ -343,14 +389,16 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
现金类资产代偿保障率(%)
|
||||
公式: 现金类资产代偿保障率 = (货币资金+可供出售金融资产+存出保证金-存入保证金) / 融资担保责任余额
|
||||
args[1]: 货币资金
|
||||
args[2]: 可供出售金融资产
|
||||
args[3]: 存出保证金
|
||||
args[4]: 存入保证金
|
||||
args[5]: 融资担保责任余额
|
||||
args[0]: 货币资金
|
||||
args[1]: 可供出售金融资产
|
||||
args[2]: 存出保证金
|
||||
args[3]: 存入保证金
|
||||
args[4]: 融资担保责任余额
|
||||
"""
|
||||
try:
|
||||
self.cash_asset_compensation_rate = ((args[1]+args[2]+args[3]-args[4]) / args[5]) * 100
|
||||
value = ((args[0]+args[1]+args[2]-args[3]) / args[4]) * 100
|
||||
value = round(value, 2)
|
||||
self.cash_asset_compensation_rate = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.cash_asset_compensation_rate = None
|
||||
|
||||
|
@ -358,11 +406,13 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
保证金比率(%)
|
||||
公式: 保证金比率 = 存入保证金 / 存出保证金
|
||||
args[1]: 存入保证金
|
||||
args[2]: 存出保证金
|
||||
args[0]: 存入保证金
|
||||
args[1]: 存出保证金
|
||||
"""
|
||||
try:
|
||||
self.margin_ratio = (args[1] / args[2]) * 100
|
||||
value = (args[0] / args[1]) * 100
|
||||
value = round(value, 2)
|
||||
self.margin_ratio = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.margin_ratio = None
|
||||
|
||||
|
@ -370,11 +420,13 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
投资业务收入占比(%)
|
||||
公式: 投资业务收入占比 = 投资业务收入 / 营业收入
|
||||
args[1]: 投资业务收入
|
||||
args[2]: 营业收入
|
||||
args[0]: 投资业务收入
|
||||
args[1]: 营业收入
|
||||
"""
|
||||
try:
|
||||
self.proportion_investment_business_income = (args[1] / args[2]) * 100
|
||||
value = (args[0] / args[1]) * 100
|
||||
value = round(value, 2)
|
||||
self.proportion_investment_business_income = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.proportion_investment_business_income = None
|
||||
|
||||
|
@ -382,11 +434,13 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
投资收益增长率(%)
|
||||
公式: 投资收益增长率 = 期末投资收益 / 期初投资收益
|
||||
args[1]: 期末投资收益
|
||||
args[2]: 期初投资收益
|
||||
args[0]: 期末投资收益
|
||||
args[1]: 期初投资收益
|
||||
"""
|
||||
try:
|
||||
self.investment_income_growth_rate = (args[1] / args[2]) * 100
|
||||
value = (args[0] / args[1]) * 100
|
||||
value = round(value, 2)
|
||||
self.investment_income_growth_rate = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.investment_income_growth_rate = None
|
||||
|
||||
|
@ -394,11 +448,13 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
客户集中度(%)
|
||||
公式: 客户集中度 = 前五大被担保企业融资担保责任余额 / 融资担保责任余额
|
||||
args[1]: 前五大被担保企业融资担保责任余额
|
||||
args[2]: 融资担保责任余额
|
||||
args[0]: 前五大被担保企业融资担保责任余额
|
||||
args[1]: 融资担保责任余额
|
||||
"""
|
||||
try:
|
||||
self.customer_concentration = (args[1] / args[2]) * 100
|
||||
value = (args[0] / args[1]) * 100
|
||||
value = round(value, 2)
|
||||
self.customer_concentration = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.customer_concentration = None
|
||||
|
||||
|
@ -406,11 +462,13 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
担保业务收入占比(%)
|
||||
公式: 担保业务收入占比 = 当期担保业务收入 / 营业收入
|
||||
args[1]: 当期担保业务收入
|
||||
args[2]: 营业收入
|
||||
args[0]: 当期担保业务收入
|
||||
args[1]: 营业收入
|
||||
"""
|
||||
try:
|
||||
self.proportion_income_guarantee_business = (args[1] / args[2]) * 100
|
||||
value = (args[0] / args[1]) * 100
|
||||
value = round(value, 2)
|
||||
self.proportion_income_guarantee_business = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.proportion_income_guarantee_business = None
|
||||
|
||||
|
@ -418,12 +476,14 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
I类资产占比(%)
|
||||
公式: I类资产占比 = I类资产 /(资产总额-应收代偿款)
|
||||
args[1]: I类资产
|
||||
args[2]: 资产总额
|
||||
args[3]: 应收代偿款
|
||||
args[0]: I类资产
|
||||
args[1]: 资产总额
|
||||
args[2]: 应收代偿款
|
||||
"""
|
||||
try:
|
||||
self.one_proportion_class_assets = (args[1] / (args[2]-args[3])) * 100
|
||||
value = (args[0] / (args[1]-args[2])) * 100
|
||||
value = round(value, 2)
|
||||
self.one_proportion_class_assets = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.one_proportion_class_assets = None
|
||||
|
||||
|
@ -431,12 +491,14 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
II类资产占比(%)
|
||||
公式: II类资产占比 = II类资产 /(资产总额-应收代偿款)
|
||||
args[1]: II类资产
|
||||
args[2]: 资产总额
|
||||
args[3]: 应收代偿款
|
||||
args[0]: II类资产
|
||||
args[1]: 资产总额
|
||||
args[2]: 应收代偿款
|
||||
"""
|
||||
try:
|
||||
self.two_proportion_class_assets = (args[1] / (args[2]-args[3])) * 100
|
||||
value = (args[0] / (args[1]-args[2])) * 100
|
||||
value = round(value, 2)
|
||||
self.two_proportion_class_assets = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.two_proportion_class_assets = None
|
||||
|
||||
|
@ -444,11 +506,13 @@ class FinancialIndicatorsModel(FinancialData.FinancialIndicator):
|
|||
"""
|
||||
III类资产占比(%)
|
||||
公式: III类资产占比 = III类资产 /(资产总额-应收代偿款)
|
||||
args[1]: III类资产
|
||||
args[2]: 资产总额
|
||||
args[3]: 应收代偿款
|
||||
args[0]: III类资产
|
||||
args[1]: 资产总额
|
||||
args[2]: 应收代偿款
|
||||
"""
|
||||
try:
|
||||
self.three_proportion_class_assets = (args[1] / (args[2]-args[3])) * 100
|
||||
value = (args[0] / (args[1]-args[2])) * 100
|
||||
value = round(value, 2)
|
||||
self.three_proportion_class_assets = value
|
||||
except TypeError or ZeroDivisionError:
|
||||
self.three_proportion_class_assets = None
|
||||
|
|
|
@ -2,6 +2,7 @@ from DBHelper.MongoHelperInstance import DB_GUA
|
|||
from Modules.Models.FinancialIndicatorsModel import FinancialIndicatorsModel
|
||||
from Modules.Rating.RatingObjects import RatingRecord
|
||||
from Modules.Rating.RatingUtils import RatingUtils
|
||||
from Utils import CommonUtil
|
||||
|
||||
|
||||
class RatingImpl(object):
|
||||
|
@ -77,70 +78,270 @@ class RatingImpl(object):
|
|||
|
||||
@staticmethod
|
||||
def financial_analysis(**kwargs):
|
||||
""""""
|
||||
"""财务分析"""
|
||||
|
||||
rid = kwargs['rid']
|
||||
cid = kwargs['cid']
|
||||
report_date = kwargs['report_date']
|
||||
|
||||
data_c = DB_GUA.find_single_data(
|
||||
paid_capital = DB_GUA.find_single_column(
|
||||
"企业数据",
|
||||
"工商信息",
|
||||
{"企业ID": cid},
|
||||
"实缴资本(万元)"
|
||||
)
|
||||
|
||||
curr_financial_report = DB_GUA.find_single_data(
|
||||
"企业数据",
|
||||
"财务数据",
|
||||
{"企业ID": cid, "报告期": report_date},
|
||||
["资产负债表", "利润表", "补充数据表"]
|
||||
)
|
||||
|
||||
data_l = DB_GUA.find_single_data(
|
||||
last_financial_report = DB_GUA.find_single_data(
|
||||
"企业数据",
|
||||
"财务数据",
|
||||
{"企业ID": cid, "报告期": RatingUtils.last_report_date(report_date)},
|
||||
["资产负债表", "利润表", "补充数据表"]
|
||||
)
|
||||
|
||||
ba_c = data_c["资产负债表"]
|
||||
pr_c = data_c["利润表"]
|
||||
ap_c = data_c["补充数据表"]
|
||||
ba_c = curr_financial_report["资产负债表"]
|
||||
pr_c = curr_financial_report["利润表"]
|
||||
ap_c = curr_financial_report["补充数据表"]
|
||||
|
||||
ba_l = data_l["资产负债表"]
|
||||
pr_l = data_l["利润表"]
|
||||
ap_l = data_l["补充数据表"]
|
||||
ba_l = last_financial_report["资产负债表"]
|
||||
pr_l = last_financial_report["利润表"]
|
||||
ap_l = last_financial_report["补充数据表"]
|
||||
|
||||
model = FinancialIndicatorsModel()
|
||||
|
||||
model.eval_guaranteed_insured_balance_growth_rate(ap_c["担保在保余额"], ap_l["担保在保余额"])
|
||||
model.eval_guaranteed_revenue_growth_rate(ap_c["当期担保业务收入"], ap_c["上期担保业务收入"])
|
||||
model.eval_growth_rate_of_total_assets(ba_c["资产总计"], ba_c["资产总计"])
|
||||
model.eval_cash_assets_ratio(ap_c["货币资金"], ap_c["可供出售金融资产"], ap_c["存出保证金"], ap_c["存入保证金"], ap_c["资产总额"])
|
||||
model.eval_current_ratio(ba_c["流动资产合计"], ba_c["流动负债合计"])
|
||||
model.eval_compensation_reserve_ratio(ap_c["当期代偿金额"], ap_c["未到期责任准备金"], ap_c["担保赔偿准备金"])
|
||||
model.eval_compensation_rate(ba_c["货币资金"], ba_c["可供出售金融资产"], ap_c["存出保证金"], ap_c["存入保证金"], ap_c["最大被担保企业融资担保责任余额"])
|
||||
model.eval_risk_reserve_adequacy_ratio(ap_c["融资担保责任余额"], ap_c["担保赔偿准备金"], ap_c["未到期责任准备金"], ap_c["一般风险准备金"])
|
||||
model.eval_single_customer_concentration(ap_c["最大被担保企业融资担保责任余额"], ap_c["融资担保责任余额"])
|
||||
model.eval_current_guarantee_compensation_rate(ap_c["当期代偿金额"], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_current_compensation_recovery_rate(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_financing_guarantee_magnification(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_industry_concentration(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_return_total_assets(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_operating_margin(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_roe(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_actual_asset_liability_ratio(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_capital_adequacy_ratio(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_paid_capital(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_guarantee_business_income(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_cumulative_guarantee_compensation_rate(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_cumulative_compensation_recovery_rate(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_risk_coverage_ratio(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_cash_asset_compensation_rate(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_margin_ratio(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_proportion_investment_business_income(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_investment_income_growth_rate(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_customer_concentration(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_proportion_income_guarantee_business(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_one_proportion_class_assets(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_two_proportion_class_assets(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.eval_three_proportion_class_assets(ap_c[""], ap_c[""], ap_c[""], ap_c[""], ap_c[""])
|
||||
model.rid = rid
|
||||
model.cid = cid
|
||||
model.report_date = report_date
|
||||
|
||||
model.fields_toggle()
|
||||
model.eval_guaranteed_insured_balance_growth_rate(
|
||||
ap_c["担保在保余额"],
|
||||
ap_l["担保在保余额"]
|
||||
)
|
||||
model.eval_guaranteed_revenue_growth_rate(
|
||||
ap_c["当期担保业务收入"],
|
||||
ap_c["上期担保业务收入"]
|
||||
)
|
||||
model.eval_growth_rate_of_total_assets(
|
||||
ba_c["非流动资产"]["资产总计"],
|
||||
ba_c["非流动资产"]["资产总计"]
|
||||
)
|
||||
model.eval_cash_assets_ratio(
|
||||
ba_c["流动资产"]["货币资金"],
|
||||
ba_c["非流动资产"]["可供出售金融资产"],
|
||||
ap_c["存出保证金"],
|
||||
ap_c["存入保证金"],
|
||||
ba_c["非流动资产"]["资产总计"]
|
||||
)
|
||||
model.eval_current_ratio(
|
||||
ba_c["流动资产"]["流动资产合计"],
|
||||
ba_c["流动负债"]["流动负债合计"]
|
||||
)
|
||||
model.eval_compensation_reserve_ratio(
|
||||
ap_c["当期代偿金额"],
|
||||
ap_c["未到期责任准备金"],
|
||||
ap_c["担保赔偿准备金"]
|
||||
)
|
||||
model.eval_compensation_rate(
|
||||
ba_c["流动资产"]["货币资金"],
|
||||
ba_c["非流动资产"]["可供出售金融资产"],
|
||||
ap_c["存出保证金"],
|
||||
ap_c["存入保证金"],
|
||||
ap_c["最大被担保企业融资担保责任余额"]
|
||||
)
|
||||
model.eval_risk_reserve_adequacy_ratio(
|
||||
ap_c["融资担保责任余额"],
|
||||
ap_c["担保赔偿准备金"],
|
||||
ap_c["未到期责任准备金"],
|
||||
ba_c["所有者权益"]["一般风险准备金"]
|
||||
)
|
||||
model.eval_single_customer_concentration(
|
||||
ap_c["最大被担保企业融资担保责任余额"],
|
||||
ap_c["融资担保责任余额"]
|
||||
)
|
||||
model.eval_current_guarantee_compensation_rate(
|
||||
ap_c["当期代偿金额"],
|
||||
ap_c["当期解除担保责任余额"]
|
||||
)
|
||||
model.eval_current_compensation_recovery_rate(
|
||||
ap_c["当期代偿回收金额"],
|
||||
ap_c["当期代偿金额"]
|
||||
)
|
||||
model.eval_financing_guarantee_magnification(
|
||||
ap_c["融资担保责任余额"],
|
||||
ba_c["所有者权益"]["所有者权益合计"]
|
||||
)
|
||||
model.eval_industry_concentration(
|
||||
ap_c["最大单一行业融资担保责任余额"],
|
||||
ap_c["融资担保责任余额"]
|
||||
)
|
||||
model.eval_return_total_assets(
|
||||
pr_c["净利润"],
|
||||
ba_l["非流动资产"]["资产总计"],
|
||||
ba_c["非流动资产"]["资产总计"]
|
||||
)
|
||||
model.eval_operating_margin(
|
||||
pr_c["营业利润"],
|
||||
pr_c["投资收益"],
|
||||
pr_c["公允价值变动收益"],
|
||||
pr_c["营业总收入"]
|
||||
)
|
||||
model.eval_roe(
|
||||
pr_c["净利润"],
|
||||
ba_c["所有者权益"]["所有者权益合计"],
|
||||
ba_l["所有者权益"]["所有者权益合计"]
|
||||
)
|
||||
model.eval_actual_asset_liability_ratio(
|
||||
ba_c["非流动负债"]["负债合计"],
|
||||
ap_c["未到期责任准备金"],
|
||||
ap_c["担保赔偿准备金"],
|
||||
ba_c["非流动资产"]["资产总计"]
|
||||
)
|
||||
model.eval_capital_adequacy_ratio(
|
||||
ba_c["所有者权益"]["所有者权益合计"],
|
||||
ap_c["风险加权资产"]
|
||||
)
|
||||
model.eval_paid_capital(
|
||||
paid_capital
|
||||
)
|
||||
model.eval_guarantee_business_income(
|
||||
ap_c["当期担保业务收入"]
|
||||
)
|
||||
model.eval_cumulative_guarantee_compensation_rate(
|
||||
ap_c["近三年累计代偿金额"],
|
||||
ap_c["近三年累计解除担保责任金额"]
|
||||
)
|
||||
model.eval_cumulative_compensation_recovery_rate(
|
||||
ap_c["近三年累计代偿回收金额"],
|
||||
ap_c["近三年累计代偿金额"]
|
||||
)
|
||||
model.eval_risk_coverage_ratio(
|
||||
ap_c["担保赔偿准备金"],
|
||||
ap_c["近三年累计代偿金额"]
|
||||
)
|
||||
model.eval_cash_asset_compensation_rate(
|
||||
ba_c["流动资产"]["货币资金"],
|
||||
ba_c["非流动资产"]["可供出售金融资产"],
|
||||
ap_c["存出保证金"],
|
||||
ap_c["存入保证金"],
|
||||
ap_c["融资担保责任余额"]
|
||||
)
|
||||
model.eval_margin_ratio(
|
||||
ap_c["存入保证金"],
|
||||
ap_c["存出保证金"]
|
||||
)
|
||||
model.eval_proportion_investment_business_income(
|
||||
pr_c["投资收益"],
|
||||
pr_c["营业总收入"]
|
||||
)
|
||||
model.eval_investment_income_growth_rate(
|
||||
pr_l["投资收益"],
|
||||
pr_c["投资收益"]
|
||||
)
|
||||
model.eval_customer_concentration(
|
||||
ap_c["前五大被担保企业融资担保责任余额"],
|
||||
ap_c["融资担保责任余额"]
|
||||
)
|
||||
model.eval_proportion_income_guarantee_business(
|
||||
ap_c["当期担保业务收入"],
|
||||
pr_c["营业总收入"]
|
||||
)
|
||||
model.eval_one_proportion_class_assets(
|
||||
ap_c["I类资产"],
|
||||
ba_c["非流动资产"]["资产总计"],
|
||||
ba_c["流动资产"]["应收代偿款"]
|
||||
)
|
||||
model.eval_two_proportion_class_assets(
|
||||
ap_c["II类资产"],
|
||||
ba_c["非流动资产"]["资产总计"],
|
||||
ba_c["流动资产"]["应收代偿款"]
|
||||
)
|
||||
model.eval_three_proportion_class_assets(
|
||||
ap_c["III类资产"],
|
||||
ba_c["非流动资产"]["资产总计"],
|
||||
ba_c["流动资产"]["应收代偿款"]
|
||||
)
|
||||
|
||||
financial_indicators = model.fields_toggle()
|
||||
|
||||
DB_GUA.upsert_single_data(
|
||||
"评级数据",
|
||||
"财务分析",
|
||||
{"评级ID": rid},
|
||||
financial_indicators
|
||||
)
|
||||
|
||||
return_data = {
|
||||
"代偿能力": CommonUtil.sub_dict(
|
||||
financial_indicators,
|
||||
[
|
||||
"代偿保障率(%)",
|
||||
"代偿准备金比率(%)",
|
||||
"现金类资产比率(%)",
|
||||
"风险准备金充足率(%)",
|
||||
"流动比率(%)",
|
||||
"现金类资产代偿保障率(%)",
|
||||
"保证金比率(%)"
|
||||
]
|
||||
),
|
||||
"成长能力": CommonUtil.sub_dict(
|
||||
financial_indicators,
|
||||
[
|
||||
"担保在保余额增长率(%)",
|
||||
"担保收入增长率(%)",
|
||||
"资产总额增长率(%)"
|
||||
]
|
||||
),
|
||||
"担保资产质量": CommonUtil.sub_dict(
|
||||
financial_indicators,
|
||||
[
|
||||
"客户集中度(%)",
|
||||
"单一客户集中度(%)",
|
||||
"当期担保代偿率(%)",
|
||||
"融资担保放大倍数(倍)",
|
||||
"行业集中度(%)",
|
||||
"当期代偿回收率(%)",
|
||||
"近三年累计担保代偿率(%)",
|
||||
"近三年累计代偿回收率(%)",
|
||||
"风险覆盖率(%)"
|
||||
]
|
||||
),
|
||||
"企业规模": CommonUtil.sub_dict(
|
||||
financial_indicators,
|
||||
[
|
||||
"实收资本(亿元)",
|
||||
"担保业务收入(万元)"
|
||||
]
|
||||
),
|
||||
"盈利能力": CommonUtil.sub_dict(
|
||||
financial_indicators,
|
||||
[
|
||||
"总资产收益率(%)",
|
||||
"营业利润率(%)",
|
||||
"净资产收益率(%)",
|
||||
"投资业务收入占比(%)",
|
||||
"投资收益增长率(%)",
|
||||
"担保业务收入占比(%)"
|
||||
]
|
||||
),
|
||||
"资本结构": CommonUtil.sub_dict(
|
||||
financial_indicators,
|
||||
[
|
||||
"实际资产负债率(%)",
|
||||
"资本充足率(%)",
|
||||
"I类资产占比(%)",
|
||||
"II类资产占比(%)",
|
||||
"III类资产占比(%)"
|
||||
]
|
||||
)
|
||||
}
|
||||
|
||||
return return_data
|
||||
|
||||
@staticmethod
|
||||
def risk_analysis(**kwargs):
|
||||
|
|
|
@ -57,16 +57,16 @@ def financial_analysis_routes(**kwargs):
|
|||
"""财务分析"""
|
||||
|
||||
try:
|
||||
RouteParamsCheck(req=request.args, params=['rid', 'cid', 'mode', 'report_date']).required()
|
||||
RouteParamsCheck(req=request.args, params=['rid', 'cid', 'report_date']).required()
|
||||
|
||||
rid = request.args['rid']
|
||||
cid = request.args['cid']
|
||||
report_date = request.args['report_date']
|
||||
|
||||
impl = RatingImpl()
|
||||
impl.financial_analysis(rid=rid, cid=cid, report_date=report_date)
|
||||
result = impl.financial_analysis(rid=rid, cid=cid, report_date=report_date)
|
||||
|
||||
return "111"
|
||||
return {"info": "财务分析", "result": result}
|
||||
except AssertionError as e:
|
||||
return {"info": e.__str__()}, 200
|
||||
except AttrCheckError as e:
|
||||
|
|
Loading…
Reference in New Issue