Фильтр донастроил

This commit is contained in:
2025-09-08 15:49:37 +03:00
parent 3ffe547208
commit 802cf5ffba
4 changed files with 32 additions and 7 deletions

View File

@@ -18,6 +18,7 @@ logger = logging.getLogger(__name__)
from adapters.storage import MinIOStorageAdapter
from adapters.parsers import SvodkaPMParser, SvodkaCAParser, MonitoringFuelParser, MonitoringTarParser, SvodkaRepairCAParser, StatusesRepairCAParser, OperSpravkaTechPosParser
from adapters.pconfig import SINGLE_OGS, OG_IDS
from core.models import UploadRequest, DataRequest
from core.services import ReportService, PARSERS
@@ -1538,6 +1539,17 @@ async def async_upload_svodka_pm_zip(
)
# ====== СИСТЕМНЫЕ ЭНДПОИНТЫ (НЕ ОТОБРАЖАЮТСЯ В SWAGGER) ======
@app.get("/system/ogs", include_in_schema=False)
async def get_system_ogs():
"""Системный эндпоинт для получения списка ОГ из pconfig"""
return {
"single_ogs": SINGLE_OGS,
"og_ids": OG_IDS
}
@app.post("/async/svodka_ca/upload", tags=[SvodkaCAParser.name],
summary="Асинхронная загрузка файла отчета сводки СА",
response_model=UploadResponse,

View File

@@ -37,6 +37,17 @@ def get_server_info() -> Dict[str, Any]:
return {}
def get_system_ogs() -> Dict[str, Any]:
"""Получение системного списка ОГ из pconfig"""
try:
response = requests.get(f"{API_BASE_URL}/system/ogs")
if response.status_code == 200:
return response.json()
return {"single_ogs": [], "og_ids": {}}
except:
return {"single_ogs": [], "og_ids": {}}
def upload_file_to_api(endpoint: str, file_data: bytes, filename: str) -> Tuple[Dict[str, Any], int]:
"""Загрузка файла на API"""
try:

View File

@@ -3,7 +3,7 @@ UI модуль для статусов ремонта СА
"""
import streamlit as st
import pandas as pd
from api_client import upload_file_to_api, make_api_request, get_available_ogs
from api_client import upload_file_to_api, make_api_request, get_available_ogs, get_system_ogs
def render_statuses_repair_ca_tab():
@@ -33,13 +33,14 @@ def render_statuses_repair_ca_tab():
# Секция получения данных
st.subheader("📊 Получение данных")
# Получаем доступные ОГ динамически
available_ogs = get_available_ogs("statuses_repair_ca")
# Получаем доступные ОГ из системного API
system_ogs = get_system_ogs()
available_ogs = system_ogs.get("single_ogs", [])
# Фильтр по ОГ
og_ids = st.multiselect(
"Выберите ОГ (оставьте пустым для всех)",
available_ogs if available_ogs else ["KNPZ", "ANHK", "SNPZ", "BASH", "UNH", "NOV"], # fallback
available_ogs if available_ogs else get_available_ogs(), # fallback
key="statuses_repair_ca_og_ids"
)

View File

@@ -3,7 +3,7 @@ UI модуль для ремонта СА
"""
import streamlit as st
import pandas as pd
from api_client import upload_file_to_api, make_api_request, get_available_ogs
from api_client import upload_file_to_api, make_api_request, get_system_ogs, get_available_ogs
from config import REPAIR_TYPES
@@ -42,8 +42,9 @@ def render_svodka_repair_ca_tab():
with col1:
st.subheader("Фильтры")
# Получаем доступные ОГ динамически
available_ogs = get_available_ogs("svodka_repair_ca")
# Получаем доступные ОГ из системного API
system_ogs = get_system_ogs()
available_ogs = system_ogs.get("single_ogs", [])
# Фильтр по ОГ
og_ids = st.multiselect(