Files
sakhteman/app/urls/report.py
T

142 lines
4.7 KiB
Python

import uuid
from fastapi import Body
from app.models.report import StatusReport, ReportCountry, DonutList, DelayDonutDetail, PhysicalMonth
from app.repositories.report import ReportRepository
from core.app import app
from core.utils.router import generate_router, shrink
router_base_url = 'report'
_tag_base = [router_base_url]
router = generate_router(router_base_url, auth_dependencies=False, version='v2')
repo = ReportRepository()
#نقشه:وضعیت های طراحی
@router.post('/design/sts', tags=_tag_base)
@shrink(repo.project_status_design)
def project_status_design(_inp: StatusReport):
pass
#نقشه:وضعیت های نظارت
@router.post('/monitor/sts', tags=_tag_base)
@shrink(repo.project_status_monitor)
def project_status_monitor(_inp: StatusReport = Body(...)):
pass
@router.post('/country', tags=_tag_base)
@shrink(repo.report_country)
def report_country(_inp: ReportCountry = Body(...)):
pass
# نمایش تعداد پروژه ها در هر شهر بر اساس فیلترهای انتخاب شده
@router.post('/exist_state', tags=_tag_base)
@shrink(repo.exist_project_state)
def exist_project_state(_inp: StatusReport = Body(...)):
pass
#وقتی روی نمودار تاخیرات کلیک کرد جزئیات را بهش نمایش بده
@router.post('/donut/delay/detail', tags=_tag_base)
@shrink(repo.delay_donut_detail)
def delay_donut_detail(_inp: DelayDonutDetail = Body(...)):
pass
#نمودار پیشرفت فعالیت ها
@router.get('/progress_activity/{project_id}', tags=_tag_base)
@shrink(repo.progress_activity)
def progress_activity(project_id:uuid.UUID):
pass
# درصد انحراف و برنامه زمان بندی
@router.get('/deviation', tags=_tag_base)
@shrink(repo.categorize_deviation)
def categorize_deviation():
pass
# درصد افزایش زمان پروژه های خاتمه یافته
@router.get('/donut/add/time', tags=_tag_base)
@shrink(repo.sum_add_time_end_project)
def sum_add_time_end_project():
pass
@router.get('/donut/delay/all', tags=_tag_base)
@shrink(repo.delay_donut_all)
def delay_donut_all():
pass
#لیست پروژه ها را نمایش میده
@router.get('/donut/delay/{_select}', tags=_tag_base)
@shrink(repo.list_delay_donut)
def list_delay_donut(_select):
pass
#تفکیک پروژه ها بر حسب زیربنا و تفکیک ماهیت پروژه و تفکیک بر حسب نوع پروژه
@router.get('/donut/{_select}', tags=_tag_base)
@shrink(repo.donut)
def donut(_select:int):
pass
@router.post('/list-donut', tags=_tag_base)
@shrink(repo.list_donut)
def list_donut(_inp: DonutList = Body(...)):
pass
#نمودار تاخیرات بر اساس پروژه انتخاب شده
@router.get('/donut/delay/project/{project_id}', tags=_tag_base)
@shrink(repo.delay_donut)
def delay_donut(project_id:uuid.UUID):
pass
#درصد میانگین افزایش هزینه پروژه های خاتمه یافته
@router.get('/add_cost', tags=_tag_base)
@shrink(repo.add_cost)
def add_cost():
pass
# تفکیک درصد پیشرفت ماهیانه پروژه ها
@router.get('/progress_phisical', tags=_tag_base)
@shrink(repo.progress_report)
def progress_report():
pass
# تفکیک درصد پیشرفت میانگین ماهیانه پروژه ها
@router.get('/progress_phisica/avg', tags=_tag_base)
@shrink(repo.progress_avg_report)
def progress_avg_report():
pass
# میانگین پیشرفت ماهیانه پروژه ها نمودار میله ای-بدون وزن
@router.post('/progress_phisica/avg/month', tags=_tag_base)
@shrink(repo.progress_month_report)
def progress_month_report(_inp:PhysicalMonth = Body(...)):
pass
# وضعیت پروژه های در دست طراحی
@router.get('/design_progress/status', tags=_tag_base)
@shrink(repo.design_progress_status)
def design_progress_status():
pass
@router.get('/design_progress/status/state', tags=_tag_base)
@shrink(repo.design_progress_status_state)
def design_progress_status_state():
pass
@router.get('/design_progress/status/progress', tags=_tag_base)
@shrink(repo.design_progress_status_progress)
def design_progress_status_progress():
pass
# وضعیت دارا بودن موافقت نامه
@router.get('/status_agreement/donut', tags=_tag_base)
@shrink(repo.status_agreement)
def status_agreement():
pass
#روند وضعیت موافقت نامه ها
@router.get('/status_agreement/progress', tags=_tag_base)
@shrink(repo.status_agreement_progress)
def status_agreement_progress():
pass
#extra information in map
# مورد 18
@router.get('/extra/map/{project_id}', tags=_tag_base)
@shrink(repo.get_extra_project)
def get_extra_project(project_id: uuid.UUID):
pass
app.include_router(router)