删除 router 中多余的tags

This commit is contained in:
2026-03-26 16:09:17 +08:00
parent 600ddd329c
commit 621cd9d2f9
4 changed files with 100 additions and 112 deletions
+10 -16
View File
@@ -9,8 +9,7 @@ from .dependencies import get_timescale_connection
router = APIRouter() router = APIRouter()
@router.post("/realtime/links/batch", status_code=201, summary="批量插入实时管道数据", @router.post("/realtime/links/batch", status_code=201, summary="批量插入实时管道数据")
tags=["时间序列-实时数据"])
async def insert_realtime_links( async def insert_realtime_links(
data: List[dict] = Body(..., description="管道数据列表,每项包含管道ID、时间戳等信息"), data: List[dict] = Body(..., description="管道数据列表,每项包含管道ID、时间戳等信息"),
conn: AsyncConnection = Depends(get_timescale_connection) conn: AsyncConnection = Depends(get_timescale_connection)
@@ -30,7 +29,7 @@ async def insert_realtime_links(
return {"message": f"Inserted {len(data)} records"} return {"message": f"Inserted {len(data)} records"}
@router.get("/realtime/links", summary="查询实时管道数据", tags=["时间序列-实时数据"]) @router.get("/realtime/links", summary="查询实时管道数据")
async def get_realtime_links( async def get_realtime_links(
start_time: datetime = Query(..., description="查询开始时间"), start_time: datetime = Query(..., description="查询开始时间"),
end_time: datetime = Query(..., description="查询结束时间"), end_time: datetime = Query(..., description="查询结束时间"),
@@ -51,7 +50,7 @@ async def get_realtime_links(
return await RealtimeRepository.get_links_by_time_range(conn, start_time, end_time) return await RealtimeRepository.get_links_by_time_range(conn, start_time, end_time)
@router.delete("/realtime/links", summary="删除实时管道数据", tags=["时间序列-实时数据"]) @router.delete("/realtime/links", summary="删除实时管道数据")
async def delete_realtime_links( async def delete_realtime_links(
start_time: datetime = Query(..., description="删除开始时间"), start_time: datetime = Query(..., description="删除开始时间"),
end_time: datetime = Query(..., description="删除结束时间"), end_time: datetime = Query(..., description="删除结束时间"),
@@ -73,8 +72,7 @@ async def delete_realtime_links(
return {"message": "Deleted successfully"} return {"message": "Deleted successfully"}
@router.patch("/realtime/links/{link_id}/field", summary="更新实时管道字段", @router.patch("/realtime/links/{link_id}/field", summary="更新实时管道字段")
tags=["时间序列-实时数据"])
async def update_realtime_link_field( async def update_realtime_link_field(
link_id: str = Path(..., description="管道ID"), link_id: str = Path(..., description="管道ID"),
time: datetime = Query(..., description="更新数据的时间戳"), time: datetime = Query(..., description="更新数据的时间戳"),
@@ -106,8 +104,7 @@ async def update_realtime_link_field(
raise HTTPException(status_code=400, detail=str(e)) raise HTTPException(status_code=400, detail=str(e))
@router.post("/realtime/nodes/batch", status_code=201, summary="批量插入实时节点数据", @router.post("/realtime/nodes/batch", status_code=201, summary="批量插入实时节点数据")
tags=["时间序列-实时数据"])
async def insert_realtime_nodes( async def insert_realtime_nodes(
data: List[dict] = Body(..., description="节点数据列表,每项包含节点ID、时间戳等信息"), data: List[dict] = Body(..., description="节点数据列表,每项包含节点ID、时间戳等信息"),
conn: AsyncConnection = Depends(get_timescale_connection) conn: AsyncConnection = Depends(get_timescale_connection)
@@ -127,7 +124,7 @@ async def insert_realtime_nodes(
return {"message": f"Inserted {len(data)} records"} return {"message": f"Inserted {len(data)} records"}
@router.get("/realtime/nodes", summary="查询实时节点数据", tags=["时间序列-实时数据"]) @router.get("/realtime/nodes", summary="查询实时节点数据")
async def get_realtime_nodes( async def get_realtime_nodes(
start_time: datetime = Query(..., description="查询开始时间"), start_time: datetime = Query(..., description="查询开始时间"),
end_time: datetime = Query(..., description="查询结束时间"), end_time: datetime = Query(..., description="查询结束时间"),
@@ -148,7 +145,7 @@ async def get_realtime_nodes(
return await RealtimeRepository.get_nodes_by_time_range(conn, start_time, end_time) return await RealtimeRepository.get_nodes_by_time_range(conn, start_time, end_time)
@router.delete("/realtime/nodes", summary="删除实时节点数据", tags=["时间序列-实时数据"]) @router.delete("/realtime/nodes", summary="删除实时节点数据")
async def delete_realtime_nodes( async def delete_realtime_nodes(
start_time: datetime = Query(..., description="删除开始时间"), start_time: datetime = Query(..., description="删除开始时间"),
end_time: datetime = Query(..., description="删除结束时间"), end_time: datetime = Query(..., description="删除结束时间"),
@@ -172,8 +169,7 @@ async def delete_realtime_nodes(
@router.post("/realtime/simulation/store", status_code=201, summary="存储实时模拟结果", @router.post("/realtime/simulation/store", status_code=201, summary="存储实时模拟结果")
tags=["时间序列-实时数据"])
async def store_realtime_simulation_result( async def store_realtime_simulation_result(
node_result_list: List[dict] = Body(..., description="节点模拟结果列表"), node_result_list: List[dict] = Body(..., description="节点模拟结果列表"),
link_result_list: List[dict] = Body(..., description="管道模拟结果列表"), link_result_list: List[dict] = Body(..., description="管道模拟结果列表"),
@@ -199,8 +195,7 @@ async def store_realtime_simulation_result(
return {"message": "Simulation results stored successfully"} return {"message": "Simulation results stored successfully"}
@router.get("/realtime/query/by-time-property", summary="按时间和属性查询实时数据", @router.get("/realtime/query/by-time-property", summary="按时间和属性查询实时数据")
tags=["时间序列-实时数据"])
async def query_realtime_records_by_time_property( async def query_realtime_records_by_time_property(
query_time: str = Query(..., description="查询时间"), query_time: str = Query(..., description="查询时间"),
type: str = Query(..., description="数据类型,pipe(管道)或 junction(节点)"), type: str = Query(..., description="数据类型,pipe(管道)或 junction(节点)"),
@@ -232,8 +227,7 @@ async def query_realtime_records_by_time_property(
raise HTTPException(status_code=400, detail=str(e)) raise HTTPException(status_code=400, detail=str(e))
@router.get("/realtime/query/by-id-time", summary="按ID和时间查询实时模拟数据", @router.get("/realtime/query/by-id-time", summary="按ID和时间查询实时模拟数据")
tags=["时间序列-实时数据"])
async def query_realtime_simulation_by_id_time( async def query_realtime_simulation_by_id_time(
id: str = Query(..., description="元素ID(管道ID或节点ID"), id: str = Query(..., description="元素ID(管道ID或节点ID"),
type: str = Query(..., description="元素类型,pipe(管道)或 junction(节点)"), type: str = Query(..., description="元素类型,pipe(管道)或 junction(节点)"),
+14 -13
View File
@@ -9,11 +9,10 @@ from .dependencies import get_timescale_connection
router = APIRouter() router = APIRouter()
@router.post("/scada/batch", status_code=201, summary="批量插入SCADA监测数据", @router.post("/scada/batch", status_code=201, summary="批量插入SCADA监测数据")
tags=["时间序列-监测数据"])
async def insert_scada_data( async def insert_scada_data(
data: List[dict] = Body(..., description="SCADA设备监测数据列表"), data: List[dict] = Body(..., description="SCADA设备监测数据列表"),
conn: AsyncConnection = Depends(get_timescale_connection) conn: AsyncConnection = Depends(get_timescale_connection),
): ):
""" """
批量插入SCADA监测数据 批量插入SCADA监测数据
@@ -30,12 +29,13 @@ async def insert_scada_data(
return {"message": f"Inserted {len(data)} records"} return {"message": f"Inserted {len(data)} records"}
@router.get("/scada/by-ids-time-range", summary="按设备ID和时间范围查询SCADA数据", @router.get("/scada/by-ids-time-range", summary="按设备ID和时间范围查询SCADA数据")
tags=["时间序列-监测数据"])
async def get_scada_by_ids_time_range( async def get_scada_by_ids_time_range(
start_time: datetime = Query(..., description="查询开始时间"), start_time: datetime = Query(..., description="查询开始时间"),
end_time: datetime = Query(..., description="查询结束时间"), end_time: datetime = Query(..., description="查询结束时间"),
device_ids: str = Query(..., description="设备ID列,逗号分隔,如 'device1,device2,device3'"), device_ids: str = Query(
..., description="设备ID列表,逗号分隔,如 'device1,device2,device3'"
),
conn: AsyncConnection = Depends(get_timescale_connection), conn: AsyncConnection = Depends(get_timescale_connection),
): ):
""" """
@@ -59,13 +59,16 @@ async def get_scada_by_ids_time_range(
) )
@router.get("/scada/by-ids-field-time-range", summary="按设备ID、字段和时间范围查询SCADA数据", @router.get(
tags=["时间序列-监测数据"]) "/scada/by-ids-field-time-range", summary="按设备ID、字段和时间范围查询SCADA数据"
)
async def get_scada_field_by_ids_time_range( async def get_scada_field_by_ids_time_range(
start_time: datetime = Query(..., description="查询开始时间"), start_time: datetime = Query(..., description="查询开始时间"),
end_time: datetime = Query(..., description="查询结束时间"), end_time: datetime = Query(..., description="查询结束时间"),
field: str = Query(..., description="要查询的字段名称"), field: str = Query(..., description="要查询的字段名称"),
device_ids: str = Query(..., description="设备ID列表,逗号分隔,如 'device1,device2,device3'"), device_ids: str = Query(
..., description="设备ID列表,逗号分隔,如 'device1,device2,device3'"
),
conn: AsyncConnection = Depends(get_timescale_connection), conn: AsyncConnection = Depends(get_timescale_connection),
): ):
""" """
@@ -98,8 +101,7 @@ async def get_scada_field_by_ids_time_range(
raise HTTPException(status_code=400, detail=str(e)) raise HTTPException(status_code=400, detail=str(e))
@router.patch("/scada/{device_id}/field", summary="更新SCADA设备字段", @router.patch("/scada/{device_id}/field", summary="更新SCADA设备字段")
tags=["时间序列-监测数据"])
async def update_scada_field( async def update_scada_field(
device_id: str = Path(..., description="设备ID"), device_id: str = Path(..., description="设备ID"),
time: datetime = Query(..., description="更新数据的时间戳"), time: datetime = Query(..., description="更新数据的时间戳"),
@@ -131,8 +133,7 @@ async def update_scada_field(
raise HTTPException(status_code=400, detail=str(e)) raise HTTPException(status_code=400, detail=str(e))
@router.delete("/scada/by-id-time-range", summary="按设备ID和时间范围删除SCADA数据", @router.delete("/scada/by-id-time-range", summary="按设备ID和时间范围删除SCADA数据")
tags=["时间序列-监测数据"])
async def delete_scada_data( async def delete_scada_data(
device_id: str = Query(..., description="设备ID"), device_id: str = Query(..., description="设备ID"),
start_time: datetime = Query(..., description="删除开始时间"), start_time: datetime = Query(..., description="删除开始时间"),
+16 -23
View File
@@ -9,11 +9,10 @@ from .dependencies import get_timescale_connection
router = APIRouter() router = APIRouter()
@router.post("/scheme/links/batch", status_code=201, summary="批量插入方案管道数据", @router.post("/scheme/links/batch", status_code=201, summary="批量插入方案管道数据")
tags=["时间序列-方案数据"])
async def insert_scheme_links( async def insert_scheme_links(
data: List[dict] = Body(..., description="方案管道数据列表"), data: List[dict] = Body(..., description="方案管道数据列表"),
conn: AsyncConnection = Depends(get_timescale_connection) conn: AsyncConnection = Depends(get_timescale_connection),
): ):
""" """
批量插入方案管道数据 批量插入方案管道数据
@@ -30,7 +29,7 @@ async def insert_scheme_links(
return {"message": f"Inserted {len(data)} records"} return {"message": f"Inserted {len(data)} records"}
@router.get("/scheme/links", summary="查询方案管道数据", tags=["时间序列-方案数据"]) @router.get("/scheme/links", summary="查询方案管道数据")
async def get_scheme_links( async def get_scheme_links(
scheme_type: str = Query(..., description="方案类型"), scheme_type: str = Query(..., description="方案类型"),
scheme_name: str = Query(..., description="方案名称"), scheme_name: str = Query(..., description="方案名称"),
@@ -57,8 +56,7 @@ async def get_scheme_links(
) )
@router.get("/scheme/links/{link_id}/field", summary="查询方案管道字段数据", @router.get("/scheme/links/{link_id}/field", summary="查询方案管道字段数据")
tags=["时间序列-方案数据"])
async def get_scheme_link_field( async def get_scheme_link_field(
link_id: str = Path(..., description="管道ID"), link_id: str = Path(..., description="管道ID"),
scheme_type: str = Query(..., description="方案类型"), scheme_type: str = Query(..., description="方案类型"),
@@ -95,8 +93,7 @@ async def get_scheme_link_field(
raise HTTPException(status_code=400, detail=str(e)) raise HTTPException(status_code=400, detail=str(e))
@router.patch("/scheme/links/{link_id}/field", summary="更新方案管道字段", @router.patch("/scheme/links/{link_id}/field", summary="更新方案管道字段")
tags=["时间序列-方案数据"])
async def update_scheme_link_field( async def update_scheme_link_field(
link_id: str = Path(..., description="管道ID"), link_id: str = Path(..., description="管道ID"),
scheme_type: str = Query(..., description="方案类型"), scheme_type: str = Query(..., description="方案类型"),
@@ -134,7 +131,7 @@ async def update_scheme_link_field(
raise HTTPException(status_code=400, detail=str(e)) raise HTTPException(status_code=400, detail=str(e))
@router.delete("/scheme/links", summary="删除方案管道数据", tags=["时间序列-方案数据"]) @router.delete("/scheme/links", summary="删除方案管道数据")
async def delete_scheme_links( async def delete_scheme_links(
scheme_type: str = Query(..., description="方案类型"), scheme_type: str = Query(..., description="方案类型"),
scheme_name: str = Query(..., description="方案名称"), scheme_name: str = Query(..., description="方案名称"),
@@ -162,11 +159,10 @@ async def delete_scheme_links(
return {"message": "Deleted successfully"} return {"message": "Deleted successfully"}
@router.post("/scheme/nodes/batch", status_code=201, summary="批量插入方案节点数据", @router.post("/scheme/nodes/batch", status_code=201, summary="批量插入方案节点数据")
tags=["时间序列-方案数据"])
async def insert_scheme_nodes( async def insert_scheme_nodes(
data: List[dict] = Body(..., description="方案节点数据列表"), data: List[dict] = Body(..., description="方案节点数据列表"),
conn: AsyncConnection = Depends(get_timescale_connection) conn: AsyncConnection = Depends(get_timescale_connection),
): ):
""" """
批量插入方案节点数据 批量插入方案节点数据
@@ -183,8 +179,7 @@ async def insert_scheme_nodes(
return {"message": f"Inserted {len(data)} records"} return {"message": f"Inserted {len(data)} records"}
@router.get("/scheme/nodes/{node_id}/field", summary="查询方案节点字段数据", @router.get("/scheme/nodes/{node_id}/field", summary="查询方案节点字段数据")
tags=["时间序列-方案数据"])
async def get_scheme_node_field( async def get_scheme_node_field(
node_id: str = Path(..., description="节点ID"), node_id: str = Path(..., description="节点ID"),
scheme_type: str = Query(..., description="方案类型"), scheme_type: str = Query(..., description="方案类型"),
@@ -221,8 +216,7 @@ async def get_scheme_node_field(
raise HTTPException(status_code=400, detail=str(e)) raise HTTPException(status_code=400, detail=str(e))
@router.patch("/scheme/nodes/{node_id}/field", summary="更新方案节点字段", @router.patch("/scheme/nodes/{node_id}/field", summary="更新方案节点字段")
tags=["时间序列-方案数据"])
async def update_scheme_node_field( async def update_scheme_node_field(
node_id: str = Path(..., description="节点ID"), node_id: str = Path(..., description="节点ID"),
scheme_type: str = Query(..., description="方案类型"), scheme_type: str = Query(..., description="方案类型"),
@@ -260,7 +254,7 @@ async def update_scheme_node_field(
raise HTTPException(status_code=400, detail=str(e)) raise HTTPException(status_code=400, detail=str(e))
@router.delete("/scheme/nodes", summary="删除方案节点数据", tags=["时间序列-方案数据"]) @router.delete("/scheme/nodes", summary="删除方案节点数据")
async def delete_scheme_nodes( async def delete_scheme_nodes(
scheme_type: str = Query(..., description="方案类型"), scheme_type: str = Query(..., description="方案类型"),
scheme_name: str = Query(..., description="方案名称"), scheme_name: str = Query(..., description="方案名称"),
@@ -288,8 +282,7 @@ async def delete_scheme_nodes(
return {"message": "Deleted successfully"} return {"message": "Deleted successfully"}
@router.post("/scheme/simulation/store", status_code=201, summary="存储方案模拟结果", @router.post("/scheme/simulation/store", status_code=201, summary="存储方案模拟结果")
tags=["时间序列-方案数据"])
async def store_scheme_simulation_result( async def store_scheme_simulation_result(
scheme_type: str = Query(..., description="方案类型"), scheme_type: str = Query(..., description="方案类型"),
scheme_name: str = Query(..., description="方案名称"), scheme_name: str = Query(..., description="方案名称"),
@@ -324,8 +317,9 @@ async def store_scheme_simulation_result(
return {"message": "Scheme simulation results stored successfully"} return {"message": "Scheme simulation results stored successfully"}
@router.get("/scheme/query/by-scheme-time-property", summary="按方案、时间和属性查询数据", @router.get(
tags=["时间序列-方案数据"]) "/scheme/query/by-scheme-time-property", summary="按方案、时间和属性查询数据"
)
async def query_scheme_records_by_scheme_time_property( async def query_scheme_records_by_scheme_time_property(
scheme_type: str = Query(..., description="方案类型"), scheme_type: str = Query(..., description="方案类型"),
scheme_name: str = Query(..., description="方案名称"), scheme_name: str = Query(..., description="方案名称"),
@@ -361,8 +355,7 @@ async def query_scheme_records_by_scheme_time_property(
raise HTTPException(status_code=400, detail=str(e)) raise HTTPException(status_code=400, detail=str(e))
@router.get("/scheme/query/by-id-time", summary="按ID和时间查询方案模拟数据", @router.get("/scheme/query/by-id-time", summary="按ID和时间查询方案模拟数据")
tags=["时间序列-方案数据"])
async def query_scheme_simulation_by_id_time( async def query_scheme_simulation_by_id_time(
scheme_type: str = Query(..., description="方案类型"), scheme_type: str = Query(..., description="方案类型"),
scheme_name: str = Query(..., description="方案名称"), scheme_name: str = Query(..., description="方案名称"),
+1 -1
View File
@@ -29,7 +29,7 @@ app = FastAPI(title="TJWater Copilot Sidecar")
client: Optional[CopilotClient] = None client: Optional[CopilotClient] = None
sessions: dict[str, SessionHolder] = {} sessions: dict[str, SessionHolder] = {}
session_ttl_seconds = int(os.getenv("COPILOT_SESSION_TTL_SECONDS", "1800")) session_ttl_seconds = int(os.getenv("COPILOT_SESSION_TTL_SECONDS", "1800"))
model = os.getenv("COPILOT_MODEL", "gpt-4.1") model = os.getenv("COPILOT_MODEL", "gpt-5.4")
logger = logging.getLogger("copilot_sidecar") logger = logging.getLogger("copilot_sidecar")