Compare commits
5 Commits
fix-servic
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| f600b7b4af | |||
| b01320acde | |||
| db3788ac69 | |||
| 31fad98133 | |||
| 88294de506 |
@@ -268,6 +268,7 @@ async def get_monitoring_fuel_series_by_id_and_columns(
|
|||||||
@router.post("/async/monitoring_fuel/upload-zip", tags=[MonitoringFuelParser.name],
|
@router.post("/async/monitoring_fuel/upload-zip", tags=[MonitoringFuelParser.name],
|
||||||
summary="Асинхронная загрузка файлов сводок мониторинга топлива одним ZIP-архивом",
|
summary="Асинхронная загрузка файлов сводок мониторинга топлива одним ZIP-архивом",
|
||||||
response_model=UploadResponse,
|
response_model=UploadResponse,
|
||||||
|
include_in_schema=False,
|
||||||
responses={
|
responses={
|
||||||
400: {"model": UploadErrorResponse, "description": "Неверный формат архива или файлов"},
|
400: {"model": UploadErrorResponse, "description": "Неверный формат архива или файлов"},
|
||||||
500: {"model": UploadErrorResponse, "description": "Внутренняя ошибка сервера"}
|
500: {"model": UploadErrorResponse, "description": "Внутренняя ошибка сервера"}
|
||||||
|
|||||||
@@ -161,6 +161,7 @@ async def get_monitoring_tar_full_data(
|
|||||||
@router.post("/async/monitoring_tar/upload", tags=[MonitoringTarParser.name],
|
@router.post("/async/monitoring_tar/upload", tags=[MonitoringTarParser.name],
|
||||||
summary="Асинхронная загрузка файла отчета мониторинга ТАР",
|
summary="Асинхронная загрузка файла отчета мониторинга ТАР",
|
||||||
response_model=UploadResponse,
|
response_model=UploadResponse,
|
||||||
|
include_in_schema=False,
|
||||||
responses={
|
responses={
|
||||||
400: {"model": UploadErrorResponse, "description": "Неверный формат файла"},
|
400: {"model": UploadErrorResponse, "description": "Неверный формат файла"},
|
||||||
500: {"model": UploadErrorResponse, "description": "Внутренняя ошибка сервера"}
|
500: {"model": UploadErrorResponse, "description": "Внутренняя ошибка сервера"}
|
||||||
|
|||||||
@@ -41,20 +41,20 @@ def get_async_report_service() -> AsyncReportService:
|
|||||||
500: {"model": UploadErrorResponse, "description": "Внутренняя ошибка сервера"}
|
500: {"model": UploadErrorResponse, "description": "Внутренняя ошибка сервера"}
|
||||||
},)
|
},)
|
||||||
async def upload_oper_spravka_tech_pos(
|
async def upload_oper_spravka_tech_pos(
|
||||||
file: UploadFile = File(..., description="Excel файл оперативной справки техпос (.xlsx, .xlsm, .xls)")
|
file: UploadFile = File(..., description="ZIP архив с файлами оперативной справки техпос (.zip)")
|
||||||
):
|
):
|
||||||
"""Загрузка и обработка отчета оперативной справки техпос"""
|
"""Загрузка и обработка отчета оперативной справки техпос"""
|
||||||
report_service = get_report_service()
|
report_service = get_report_service()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if not file.filename.endswith(('.xlsx', '.xlsm', '.xls')):
|
if not file.filename.endswith('.zip'):
|
||||||
return JSONResponse(
|
return JSONResponse(
|
||||||
status_code=status.HTTP_400_BAD_REQUEST,
|
status_code=status.HTTP_400_BAD_REQUEST,
|
||||||
content=UploadErrorResponse(
|
content=UploadErrorResponse(
|
||||||
message="Поддерживаются только Excel файлы (.xlsx, .xlsm, .xls)",
|
message="Поддерживаются только ZIP архивы (.zip)",
|
||||||
error_code="INVALID_FILE_TYPE",
|
error_code="INVALID_FILE_TYPE",
|
||||||
details={
|
details={
|
||||||
"expected_formats": [".xlsx", ".xlsm", ".xls"],
|
"expected_formats": [".zip"],
|
||||||
"received_format": file.filename.split('.')[-1] if '.' in file.filename else "unknown"
|
"received_format": file.filename.split('.')[-1] if '.' in file.filename else "unknown"
|
||||||
}
|
}
|
||||||
).model_dump()
|
).model_dump()
|
||||||
@@ -115,9 +115,11 @@ async def get_oper_spravka_tech_pos_data(
|
|||||||
result = report_service.get_data(request)
|
result = report_service.get_data(request)
|
||||||
|
|
||||||
if result.success:
|
if result.success:
|
||||||
|
# Извлекаем данные из result.data["value"]
|
||||||
|
data = result.data.get("value", []) if isinstance(result.data, dict) else result.data
|
||||||
return OperSpravkaTechPosResponse(
|
return OperSpravkaTechPosResponse(
|
||||||
success=True,
|
success=True,
|
||||||
data=result.data
|
data=data
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
raise HTTPException(status_code=404, detail=result.message)
|
raise HTTPException(status_code=404, detail=result.message)
|
||||||
@@ -131,25 +133,26 @@ async def get_oper_spravka_tech_pos_data(
|
|||||||
@router.post("/async/oper_spravka_tech_pos/upload", tags=[OperSpravkaTechPosParser.name],
|
@router.post("/async/oper_spravka_tech_pos/upload", tags=[OperSpravkaTechPosParser.name],
|
||||||
summary="Асинхронная загрузка файла отчета оперативной справки техпос",
|
summary="Асинхронная загрузка файла отчета оперативной справки техпос",
|
||||||
response_model=UploadResponse,
|
response_model=UploadResponse,
|
||||||
|
include_in_schema=False,
|
||||||
responses={
|
responses={
|
||||||
400: {"model": UploadErrorResponse, "description": "Неверный формат файла"},
|
400: {"model": UploadErrorResponse, "description": "Неверный формат файла"},
|
||||||
500: {"model": UploadErrorResponse, "description": "Внутренняя ошибка сервера"}
|
500: {"model": UploadErrorResponse, "description": "Внутренняя ошибка сервера"}
|
||||||
},)
|
},)
|
||||||
async def async_upload_oper_spravka_tech_pos(
|
async def async_upload_oper_spravka_tech_pos(
|
||||||
file: UploadFile = File(..., description="Excel файл оперативной справки техпос (.xlsx, .xlsm, .xls)")
|
file: UploadFile = File(..., description="ZIP архив с файлами оперативной справки техпос (.zip)")
|
||||||
):
|
):
|
||||||
"""Асинхронная загрузка и обработка отчета оперативной справки техпос"""
|
"""Асинхронная загрузка и обработка отчета оперативной справки техпос"""
|
||||||
async_service = get_async_report_service()
|
async_service = get_async_report_service()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if not file.filename.endswith(('.xlsx', '.xlsm', '.xls')):
|
if not file.filename.endswith('.zip'):
|
||||||
return JSONResponse(
|
return JSONResponse(
|
||||||
status_code=status.HTTP_400_BAD_REQUEST,
|
status_code=status.HTTP_400_BAD_REQUEST,
|
||||||
content=UploadErrorResponse(
|
content=UploadErrorResponse(
|
||||||
message="Поддерживаются только Excel файлы (.xlsx, .xlsm, .xls)",
|
message="Поддерживаются только ZIP архивы (.zip)",
|
||||||
error_code="INVALID_FILE_TYPE",
|
error_code="INVALID_FILE_TYPE",
|
||||||
details={
|
details={
|
||||||
"expected_formats": [".xlsx", ".xlsm", ".xls"],
|
"expected_formats": [".zip"],
|
||||||
"received_format": file.filename.split('.')[-1] if '.' in file.filename else "unknown"
|
"received_format": file.filename.split('.')[-1] if '.' in file.filename else "unknown"
|
||||||
}
|
}
|
||||||
).model_dump()
|
).model_dump()
|
||||||
|
|||||||
@@ -130,6 +130,7 @@ async def get_statuses_repair_ca_data(
|
|||||||
@router.post("/async/statuses_repair_ca/upload", tags=[StatusesRepairCAParser.name],
|
@router.post("/async/statuses_repair_ca/upload", tags=[StatusesRepairCAParser.name],
|
||||||
summary="Асинхронная загрузка файла отчета статусов ремонта СА",
|
summary="Асинхронная загрузка файла отчета статусов ремонта СА",
|
||||||
response_model=UploadResponse,
|
response_model=UploadResponse,
|
||||||
|
include_in_schema=False,
|
||||||
responses={
|
responses={
|
||||||
400: {"model": UploadErrorResponse, "description": "Неверный формат файла"},
|
400: {"model": UploadErrorResponse, "description": "Неверный формат файла"},
|
||||||
500: {"model": UploadErrorResponse, "description": "Внутренняя ошибка сервера"}
|
500: {"model": UploadErrorResponse, "description": "Внутренняя ошибка сервера"}
|
||||||
|
|||||||
@@ -163,6 +163,7 @@ async def get_svodka_ca_data(
|
|||||||
@router.post("/async/svodka_ca/upload", tags=[SvodkaCAParser.name],
|
@router.post("/async/svodka_ca/upload", tags=[SvodkaCAParser.name],
|
||||||
summary="Асинхронная загрузка файла отчета сводки СА",
|
summary="Асинхронная загрузка файла отчета сводки СА",
|
||||||
response_model=UploadResponse,
|
response_model=UploadResponse,
|
||||||
|
include_in_schema=False,
|
||||||
responses={
|
responses={
|
||||||
400: {"model": UploadErrorResponse, "description": "Неверный формат файла"},
|
400: {"model": UploadErrorResponse, "description": "Неверный формат файла"},
|
||||||
500: {"model": UploadErrorResponse, "description": "Внутренняя ошибка сервера"}
|
500: {"model": UploadErrorResponse, "description": "Внутренняя ошибка сервера"}
|
||||||
|
|||||||
@@ -262,6 +262,7 @@ async def get_svodka_pm_data(
|
|||||||
@router.post("/async/svodka_pm/upload-zip", tags=[SvodkaPMParser.name],
|
@router.post("/async/svodka_pm/upload-zip", tags=[SvodkaPMParser.name],
|
||||||
summary="Асинхронная загрузка файлов сводок ПМ одним ZIP-архивом",
|
summary="Асинхронная загрузка файлов сводок ПМ одним ZIP-архивом",
|
||||||
response_model=UploadResponse,
|
response_model=UploadResponse,
|
||||||
|
include_in_schema=False,
|
||||||
responses={
|
responses={
|
||||||
400: {"model": UploadErrorResponse, "description": "Неверный формат архива или файлов"},
|
400: {"model": UploadErrorResponse, "description": "Неверный формат архива или файлов"},
|
||||||
500: {"model": UploadErrorResponse, "description": "Внутренняя ошибка сервера"}
|
500: {"model": UploadErrorResponse, "description": "Внутренняя ошибка сервера"}
|
||||||
|
|||||||
@@ -130,6 +130,7 @@ async def get_svodka_repair_ca_data(
|
|||||||
@router.post("/async/svodka_repair_ca/upload", tags=[SvodkaRepairCAParser.name],
|
@router.post("/async/svodka_repair_ca/upload", tags=[SvodkaRepairCAParser.name],
|
||||||
summary="Асинхронная загрузка файла отчета сводки ремонта СА",
|
summary="Асинхронная загрузка файла отчета сводки ремонта СА",
|
||||||
response_model=UploadResponse,
|
response_model=UploadResponse,
|
||||||
|
include_in_schema=False,
|
||||||
responses={
|
responses={
|
||||||
400: {"model": UploadErrorResponse, "description": "Неверный формат файла"},
|
400: {"model": UploadErrorResponse, "description": "Неверный формат файла"},
|
||||||
500: {"model": UploadErrorResponse, "description": "Внутренняя ошибка сервера"}
|
500: {"model": UploadErrorResponse, "description": "Внутренняя ошибка сервера"}
|
||||||
|
|||||||
Reference in New Issue
Block a user