creditrating-wcq/IndexCalculation/基本信用评级指标/偿债能力/EBITDA利息保障倍数_三年加权计算.py

45 lines
1.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from fastapi import APIRouter
from pydantic import BaseModel
INDEX = "EBITDA利息保障倍数_三年加权计算"
router = APIRouter()
class Params(BaseModel):
当期利润总额: float
当期计入财务费用的利息支出: float
当期固定资产: float
当期无形资产: float
当期长期待摊费用: float
当期资本化利息支出: float
上期利润总额: float
上期计入财务费用的利息支出: float
上期固定资产: float
上期无形资产: float
上期长期待摊费用: float
上期资本化利息支出: float
上二期利润总额: float
上二期计入财务费用的利息支出: float
上二期固定资产: float
上二期无形资产: float
上二期长期待摊费用: float
上二期资本化利息支出: float
@router.post("/{}".format(INDEX))
def func(p: Params):
try:
ratio1 = (p.当期利润总额 + p.当期计入财务费用的利息支出 + p.当期固定资产 + p.当期无形资产 + p.当期长期待摊费用) / (p.当期计入财务费用的利息支出 + p.当期资本化利息支出) * 100
ratio2 = (p.上期利润总额 + p.上期计入财务费用的利息支出 + p.上期固定资产 + p.上期无形资产 + p.上期长期待摊费用) / (p.上期计入财务费用的利息支出 + p.上期资本化利息支出) * 100
ratio3 = (p.上二期利润总额 + p.上二期计入财务费用的利息支出 + p.上二期固定资产 + p.上二期无形资产 + p.上二期长期待摊费用) / (p.上二期计入财务费用的利息支出 + p.上二期资本化利息支出) * 100
result = ratio1*0.5 + ratio2*0.3 + ratio3*0.2
return round(result, 2)
except ZeroDivisionError:
return "+inf" # 此处本应为算式无意义,特殊处理为正无穷大
except Exception:
return "计算错误"