45 lines
1.9 KiB
Python
45 lines
1.9 KiB
Python
|
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 "计算错误"
|