135 lines
4.5 KiB
Python
135 lines
4.5 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
|
|
|
|
app.include_router(router) |