diff --git a/app/repositories/report.py b/app/repositories/report.py index 35bc9d2..4a11dc1 100644 --- a/app/repositories/report.py +++ b/app/repositories/report.py @@ -1,6 +1,7 @@ import uuid from app.config import TaskEnv +from app.models.project import ProjectPriceReport from app.models.report import StatusReport, ReportCountry, DonutList, DelayDonutDetail from core.service.mongo_db import use_collection @@ -298,3 +299,28 @@ class ReportRepository(): else: result['upper_than_200'].append(i["_id"]) return result + + #درصد میانگین افزایش هزینه پروژه های خاتمه یافته + async def add_cost(self): + result = {} + result['less_than_20'] = [] + result['bet_20_50'] = [] + result['bet_50_100'] = [] + result['bet_100_200'] = [] + result['upper_than_200'] = [] + report = await use_collection(TaskEnv.CLN_PROJECT_PRICE_REPORT).find({}).to_list(None) + if report: + for i in report: + _model = ProjectPriceReport(**i) + cal = (_model.first_amount-_model.amount_status +_model.amount_adjust)/_model.first_amount + if cal < 20: + result['less_than_20'].append(_model.project_id) + elif cal < 50: + result['bet_20_50'].append(_model.project_id) + elif cal < 100: + result['bet_50_100'].append(_model.project_id) + elif cal < 200: + result['bet_100_200'].append(_model.project_id) + else: + result['upper_than_200'].append(_model.project_id) + return result \ No newline at end of file diff --git a/app/urls/report.py b/app/urls/report.py index 5c219af..135ee60 100644 --- a/app/urls/report.py +++ b/app/urls/report.py @@ -84,6 +84,12 @@ def list_donut(_inp: DonutList = Body(...)): def delay_donut(project_id:uuid.UUID): pass +#درصد میانگین افزایش هزینه پروژه های خاتمه یافته +@router.get('/add_cost', tags=_tag_base) +@shrink(repo.add_cost) +def add_cost(): + pass + app.include_router(router) \ No newline at end of file