31 lines
838 B
Python
31 lines
838 B
Python
|
from fastapi import APIRouter
|
|||
|
from pydantic import BaseModel
|
|||
|
|
|||
|
INDEX = "营业利润率_三年加权计算(%)"
|
|||
|
|
|||
|
router = APIRouter()
|
|||
|
|
|||
|
|
|||
|
class Params(BaseModel):
|
|||
|
当期营业利润: float
|
|||
|
当期营业收入: float
|
|||
|
上期营业利润: float
|
|||
|
上期营业收入: float
|
|||
|
上二期营业利润: float
|
|||
|
上二期营业收入: float
|
|||
|
|
|||
|
|
|||
|
@router.post("/{}".format(INDEX))
|
|||
|
def func(p: Params):
|
|||
|
try:
|
|||
|
ratio1 = p.当期营业利润 / p.当期营业收入 * 100
|
|||
|
ratio2 = p.上期营业利润 / p.上期营业收入 * 100
|
|||
|
ratio3 = p.上二期营业利润 / p.上二期营业收入 * 100
|
|||
|
result = (ratio1 * 0.5 + ratio2 * 0.3 + ratio3 * 0.2) * 100
|
|||
|
return round(result, 2)
|
|||
|
|
|||
|
except ZeroDivisionError:
|
|||
|
return "算式无意义"
|
|||
|
except Exception:
|
|||
|
return "计算错误"
|