添加--修改获取告警消息列表接口, 区分已处理和未处理

This commit is contained in:
haotian 2025-06-03 15:21:36 +08:00
parent 7f69977215
commit d9de1df556
2 changed files with 19 additions and 6 deletions

View File

@ -3,7 +3,7 @@ from fastapi import APIRouter, Depends, HTTPException, Query, Body
from sqlalchemy.ext.asyncio import AsyncSession
from app.core.database import get_db
from app.crud.event import event
from app.models.models import Robot
from app.models.models import Robot, Message
from app.schemas.event import EventList, EventDetail, EventUpdate, EventQuery, BackStageEvent, BackStageEventDto, BackStageEventDetail, EditTemperatureDto, OcrAlertMessage, OcrAlertMessageDto
from app.util.httpResponse import BaseResponse
@ -105,9 +105,9 @@ async def delete_event(
return BaseResponse(code=404,msg="事件不存在")
return BaseResponse(code=200, msg="success", data=EventDetail.model_validate(event_obj))
# 获取告警消息列表
@router.get("/events/messages", response_model=BaseResponse[List[OcrAlertMessage]])
async def get_messages(
# 获取未处理告警消息列表
@router.get("/events/messagesUnhandled", response_model=BaseResponse[List[OcrAlertMessage]])
async def get_messages_unhandle(
db: AsyncSession = Depends(get_db),
skip: int = Query(0, ge=0),
limit: int = Query(100, ge=1, le=1000)
@ -115,9 +115,19 @@ async def get_messages(
"""_summary_
获取告警消息列表
"""
message = await event.get_messages(db, skip=skip, limit=limit)
message = await event.get_messages(db, skip=skip, limit=limit, condition=[Message.handle=="0"])
return BaseResponse(code=200, msg="success", data=message)
# 获取已处理告警消息列表
@router.get("/events/messagesHandled", response_model=BaseResponse[List[OcrAlertMessage]])
async def get_messages_handle(
db: AsyncSession = Depends(get_db),
skip: int = Query(0, ge=0),
limit: int = Query(100, ge=1, le=1000)
):
message = await event.get_messages(db, skip=skip, limit=limit, condition=[Message.handle=="1"])
return BaseResponse(code=200, msg="success", data=message)
# 批量处理告警数据--传递messageId List
@router.post("/events/handleOcrAlerts", response_model=BaseResponse)
async def handle_ocr_alerts(

View File

@ -191,7 +191,8 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]):
self,
db: AsyncSession,
skip:int,
limit:int
limit:int,
condition: list = []
) -> Optional[List[OcrAlertMessage]]:
query_stmt = (
select(Message.messageId,Message.eventId ,Message.messageType, Message.eventType, Message.handle, Message.remark, Message.createTime,
@ -202,6 +203,8 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]):
.outerjoin(Event, Message.eventId == Event.eventId)
.outerjoin(Image, Message.eventId == Image.eventId)
.outerjoin(Temperature, Message.eventId == Temperature.eventId)
.where(*condition)
.order_by(Message.createTime.desc())
.offset(skip)
.limit(limit)
)