修改--获取已/未处理告警消息列表添加可选的查询参数etypeName

This commit is contained in:
haotian 2025-06-09 11:31:16 +08:00
parent 83e099051f
commit 56abbb0ee8
4 changed files with 32 additions and 10 deletions

View File

@ -8,7 +8,7 @@ from app.crud.event import event
from app.models.models import Robot, Message, RobotInfo,Group, GroupRobot, Event
from app.schemas.event import EventList, EventDetail, EventUpdate, EventQuery, BackStageEvent, BackStageEventDto, BackStageEventDetail, EditTemperatureDto, OcrAlertMessage, OcrAlertMessageDto, GetRobotDto, CommonAlertMessage, GetAllMessageDto
from app.util.httpResponse import BaseResponse
from app.util.status import EventType
from app.util.status import EventType, etypeNameDict
from sqlalchemy import select
from app.services.robot_sync_service import robot_sync_service
@ -223,6 +223,7 @@ async def refresh_robot_list(
)
async def get_messages_unhandle(
number: Optional[str]=None,
etypeName: Optional[str] = None,
db: AsyncSession = Depends(get_db),
skip: int = Query(0, ge=0),
limit: int = Query(100, ge=1, le=1000)
@ -231,7 +232,7 @@ async def get_messages_unhandle(
获取告警消息列表
"""
data = await get_message_by_event_type(db, "0", skip, limit, number)
data = await get_message_by_event_type(db, "0", skip, limit, number, etypeName)
return BaseResponse(code=200, msg="success", data=data)
@ -242,11 +243,12 @@ async def get_messages_unhandle(
)
async def get_messages_handle_robot(
number: Optional[str]=None,
etypeName: Optional[str] = None,
db: AsyncSession = Depends(get_db),
skip: int = Query(0, ge=0),
limit: int = Query(100, ge=1, le=1000)
):
data = await get_message_by_event_type(db, "1", skip, limit, number)
data = await get_message_by_event_type(db, "1", skip, limit, number, etypeName)
return BaseResponse(code=200, msg="success", data=data)
@ -434,11 +436,26 @@ async def get_message_by_event_type(
handle: str ,
skip: int ,
limit: int,
number: Optional[str]=None
number: Optional[str]=None,
etypeName: Optional[str] = None
):
condition_robotId = []
if number and len(number) > 0:
condition_robotId.append( Event.number== number)
if etypeName and len(etypeName) > 0:
if etypeName in etypeNameDict:
print(etypeName, etypeNameDict[etypeName])
query_message = await event.get_messages(db,
skip=skip,
limit=limit,
condition=[Message.handle==handle, Message.eventType==etypeNameDict[etypeName]] + condition_robotId)
return {
"query_message": query_message
}
else:
return {}
# 高温报警消息
high_temperature_message = await event.get_messages(db,

View File

@ -298,6 +298,7 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]):
.select_from(Message)
.outerjoin(Event, Message.eventId==Event.eventId)
.where(Event.number == number)
.order_by(Message.createTime.desc())
.offset(offset)
.limit(limit)
)
@ -313,7 +314,9 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]):
.where(Image.eventId == result.eventId)
)
image_list = await db.execute(query_image_stmt)
t.imageList = image_list.scalars().all()
image_list = image_list.scalars().all()
t.imageList = image_list
t.imagePreview = image_list[0]
data.append(t)
return data

View File

@ -210,9 +210,10 @@ class AllMessageDto(BaseModel):
messageId : int
eventId: str
imageList : Optional[list] = None
number: Optional[str]
name: Optional[str]
etypeName: Optional[str]
handle: Optional[str]
remark: Optional[str]
imagePreview: Optional[str] = None
number: Optional[str] = None
name: Optional[str] = None
etypeName: Optional[str] = None
handle: Optional[str] = None
remark: Optional[str] = None

View File

@ -21,3 +21,4 @@
- 修改/events/alertCount 接口, 添加总告警消息数量字段
- 添加 /events/getAllAlertMessage/{number} 接口, 查看全部--获取所有输入该机器人的所有告警消息.
- 修改 /events/messagesHandled, /api/v1/events/messagesUnhandled, 添加可选的查询参数 etypeName