1
0
mirror of https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git synced 2025-08-14 00:25:46 +02:00

подствеление отдела авто

This commit is contained in:
MoonTestUse1
2025-01-04 05:03:23 +06:00
parent 1586fdfe26
commit 90cf31d752
2 changed files with 15 additions and 22 deletions

View File

@@ -4,11 +4,17 @@ from sqlalchemy import func
from typing import Optional, Dict
from ..models.request import Request, RequestStatus
from ..schemas.request import RequestCreate
from . import employees
def create_request(db: Session, request: RequestCreate, employee_id: int) -> Request:
"""Create new request"""
# Получаем данные сотрудника
employee = employees.get_employee(db, employee_id)
if not employee:
raise ValueError("Employee not found")
db_request = Request(
department=request.department,
department=employee.department, # Берем отдел из данных сотрудника
request_type=request.request_type,
description=request.description,
priority=request.priority,
@@ -47,26 +53,13 @@ def update_request_status(db: Session, request_id: int, status: RequestStatus) -
def get_statistics(db: Session) -> Dict:
"""Get request statistics"""
total = db.query(func.count(Request.id)).scalar()
# Получаем количество заявок по статусам
status_counts = db.query(
Request.status,
func.count(Request.id)
).group_by(Request.status).all()
# Инициализируем словарь всеми возможными статусами
by_status = {
RequestStatus.NEW: 0,
RequestStatus.IN_PROGRESS: 0,
RequestStatus.COMPLETED: 0,
RequestStatus.REJECTED: 0
}
# Обновляем значения из базы
for status, count in status_counts:
by_status[status] = count
by_status = dict(
db.query(
Request.status,
func.count(Request.id)
).group_by(Request.status).all()
)
return {
"total": total or 0,
"total": total,
"by_status": by_status
}

View File

@@ -5,7 +5,6 @@ from datetime import datetime
from ..models.request import RequestStatus, RequestPriority
class RequestBase(BaseModel):
department: str
request_type: str
description: str
priority: RequestPriority
@@ -24,6 +23,7 @@ class Request(RequestBase):
id: int
status: RequestStatus
employee_id: int
department: str
created_at: datetime
model_config = ConfigDict(from_attributes=True)