creditrating/BM02_指标计算/偿债能力/经营性现金流净额_总债务_三年加权平均.py

54 lines
2.4 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 = "经营性现金流净额/总债务_三年加权计算%"
router = APIRouter()
class Params(BaseModel):
当期短期借款: float
当期长期借款: float
当期交易性金融负债: float
当期应付票据: float
当期一年内到期的非流动负债: float
当期其他短期有息债务: float
当期应付债券: float
当期其他长期有息债务: float
当期经营活动产生的现金流量净额: float
上期短期借款: 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.当期长期借款 + p.当期应付债券 + p.当期其他长期有息债务) * 100
ratio2 = p.上期经营活动产生的现金流量净额 / (p.上期短期借款 + p.上期交易性金融负债 + p.上期应付票据 + p.上期一年内到期的非流动负债 + p.上期其他短期有息债务 + p.上期长期借款 + p.上期应付债券 + p.上期其他长期有息债务) * 100
ratio3 = p.上二期经营活动产生的现金流量净额 / (p.上二期短期借款 + 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 "算式无意义"
except Exception:
return "计算错误"