From 56abbb0ee8f8c8c6d2ca1294546021bea9faae75 Mon Sep 17 00:00:00 2001 From: haotian <2421912570@qq.com> Date: Mon, 9 Jun 2025 11:31:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9--=E8=8E=B7=E5=8F=96=E5=B7=B2?= =?UTF-8?q?/=E6=9C=AA=E5=A4=84=E7=90=86=E5=91=8A=E8=AD=A6=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E5=88=97=E8=A1=A8=E6=B7=BB=E5=8A=A0=E5=8F=AF=E9=80=89?= =?UTF-8?q?=E7=9A=84=E6=9F=A5=E8=AF=A2=E5=8F=82=E6=95=B0etypeName?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/v1/endpoints/events.py | 25 +++++++++++++++++++++---- app/crud/event.py | 5 ++++- app/schemas/event.py | 11 ++++++----- change_log.md | 1 + 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/app/api/v1/endpoints/events.py b/app/api/v1/endpoints/events.py index 3cf6145..fa3a26f 100644 --- a/app/api/v1/endpoints/events.py +++ b/app/api/v1/endpoints/events.py @@ -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, diff --git a/app/crud/event.py b/app/crud/event.py index 9f1559b..af8f17a 100644 --- a/app/crud/event.py +++ b/app/crud/event.py @@ -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 diff --git a/app/schemas/event.py b/app/schemas/event.py index 51d9bf8..212edfe 100644 --- a/app/schemas/event.py +++ b/app/schemas/event.py @@ -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 \ No newline at end of file diff --git a/change_log.md b/change_log.md index ff2ce99..89626a6 100644 --- a/change_log.md +++ b/change_log.md @@ -21,3 +21,4 @@ - 修改/events/alertCount 接口, 添加总告警消息数量字段 - 添加 /events/getAllAlertMessage/{number} 接口, 查看全部--获取所有输入该机器人的所有告警消息. +- 修改 /events/messagesHandled, /api/v1/events/messagesUnhandled, 添加可选的查询参数 etypeName