This commit is contained in:
王思川 2022-06-13 15:36:49 +08:00
parent 90d26a8fb7
commit b93dbc80dd
2 changed files with 70 additions and 189 deletions

View File

@ -130,153 +130,38 @@ class RatingImpl(object):
model.cid = cid
model.report_date = report_date
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_l["资产总计"]
)
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["流动资产"]["应收代偿款"]
)
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_l["资产总计"])
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()
@ -358,40 +243,27 @@ class RatingImpl(object):
def risk_analysis(**kwargs):
"""风险分析"""
demo = [
{
"风险因素": "失信人",
"数量(近三年)": 10,
"详情": "-"
},
{
"风险因素": "限制消费令",
"数量(近三年)": 10,
"详情": "-"
},
{
"风险因素": "终本案件",
"数量(近三年)": 10,
"详情": "-"
},
{
"风险因素": "行政处罚",
"数量(近三年)": 10,
"详情": "-"
},
{
"风险因素": "被执行人",
"数量(近三年)": 10,
"详情": "-"
},
{
"风险因素": "法律诉讼(被告)",
"数量(近三年)": 10,
"详情": "-"
},
]
cid = kwargs["cid"]
report_date = kwargs["report_date"]
return demo
item = DB_GUA.find_single_data(
"企业数据",
"风险信息",
{"企业ID": cid, "报告期": report_date},
["失信被执行人", "被执行人", "终本案件", "限制消费令", "行政处罚", "法律诉讼(被告)"]
)
result = list()
if item:
for key in item:
data = {
"风险因素": key,
"数量(近三年)": item[key],
"详情": "-"
}
result.append(data)
return result
@staticmethod
def score_and_rank(**kwargs):

View File

@ -79,10 +79,17 @@ def financial_analysis_routes(**kwargs):
@verify_token
def risk_analysis_route(**kwargs):
"""风险分析"""
try:
RouteParamsCheck(req=request.args, params=['cid', 'report_date']).required()
impl = RatingImpl()
result = impl.risk_analysis()
return {"info": "风险分析", "result": result}
cid = request.args["cid"]
report_date = request.args["report_date"]
impl = RatingImpl()
result = impl.risk_analysis(cid=cid, report_date=report_date)
return {"info": "风险分析", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@rating_route.route('/score_and_rank', methods=['GET'])
@ -90,12 +97,14 @@ def risk_analysis_route(**kwargs):
def score_and_rank_route(**kwargs):
"""得分级别"""
rid = request.args['rid']
impl = RatingImpl()
result = impl.score_and_rank(rid=rid)
return {"info": "得分级别", "result": result}
try:
RouteParamsCheck(req=request.args, params=['rid']).required()
rid = request.args['rid']
impl = RatingImpl()
result = impl.score_and_rank(rid=rid)
return {"info": "得分级别", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@rating_route.route('/rank_report', methods=['GET'])