fault_map.py 929 B

12345678910111213141516171819202122232425262728293031
  1. """故障 → 3D 部件对照表,以及故障场景位置的记录。"""
  2. from typing import Any
  3. from fastapi import APIRouter
  4. from pydantic import BaseModel, Field
  5. from services import fault_map_service
  6. router = APIRouter()
  7. class FaultSceneInput(BaseModel):
  8. model: str = Field(min_length=1)
  9. alarm_type: str = Field(min_length=1)
  10. device_point: str = ""
  11. camera: list[float] = Field(min_length=3, max_length=3)
  12. target: list[float] = Field(min_length=3, max_length=3)
  13. @router.get("/api/fault-part-map")
  14. def list_fault_part_map() -> list[dict[str, Any]]:
  15. return fault_map_service.list_rows()
  16. @router.post("/api/fault-part-map/scene")
  17. def set_fault_scene(payload: FaultSceneInput) -> dict[str, Any]:
  18. changed = fault_map_service.set_scene_position(
  19. payload.model, payload.alarm_type, payload.device_point, payload.camera, payload.target,
  20. )
  21. return {"ok": True, "updated": changed}