diff --git a/app/api/v1/endpoints/events.py b/app/api/v1/endpoints/events.py index ad509bf..cde34e8 100644 --- a/app/api/v1/endpoints/events.py +++ b/app/api/v1/endpoints/events.py @@ -114,7 +114,7 @@ async def get_messages( message = await event.get_messages(db) return BaseResponse(code=200, msg="success", data=message) -# 批量处理告警数据 +# 批量处理告警数据--传递messageId List @router.post("/events/handleOcrAlerts", response_model=BaseResponse) async def handle_ocr_alerts( db: AsyncSession = Depends(get_db), @@ -129,6 +129,24 @@ async def handle_ocr_alerts( return BaseResponse(code=200, msg="success") return BaseResponse(code=500, msg="fail to update data") +# 批量处理告警数据--直接将 handle=0的置为1 +@router.get("/events/handleOcrAlerts", response_model=BaseResponse) +async def handle_ocr_alerts_get( + db: AsyncSession = Depends(get_db) +): + """_summary_ + 一键处理告警 + Args: + db (AsyncSession, optional): _description_. Defaults to Depends(get_db). + + Returns: + _type_: _description_ + """ + flag = await event.handle_ocr_alerts_get(db) + if flag: + return BaseResponse(code=200, msg="success") + return BaseResponse(code=500, msg="fail to update data") + # 处理单个告警数据 @router.post("/events/handleOcrAlert", response_model=BaseResponse) async def handle_ocr_alert( diff --git a/app/crud/event.py b/app/crud/event.py index 9e95b75..a7d86eb 100644 --- a/app/crud/event.py +++ b/app/crud/event.py @@ -248,6 +248,32 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]): await db.rollback() return False + async def handle_ocr_alerts_get( + self, + db: AsyncSession + ): + try: + update_stmt = ( + update(Message) + .where(Message.handle == "0") + .values( + handle = "1", + updateTime=datetime.now() + ) + ) + + # 执行更新 + await db.execute( + update_stmt, + execution_options={"synchronize_session": False} + ) + await db.commit() + return True + + except Exception as e: + print(f"更新OCR告警消息失败: {str(e)}") + await db.rollback() + return False async def handle_ocr_alert( self, db: AsyncSession, diff --git a/app/services/event_sync_service.py b/app/services/event_sync_service.py index ec8d79d..236a663 100644 --- a/app/services/event_sync_service.py +++ b/app/services/event_sync_service.py @@ -156,7 +156,7 @@ class EventSyncService: if not existing_image: # 下载图片 - local_path = self.kangda._download_image(image_url) + local_path = self.kangda._download_image(image_url, save_image=False) # 创建图片记录 image = Image( diff --git a/app/services/websocket_service.py b/app/services/websocket_service.py index 3ad799f..038429d 100644 --- a/app/services/websocket_service.py +++ b/app/services/websocket_service.py @@ -56,9 +56,9 @@ class WebSocketClient: # 添加新消息 messages.append(message_data) - # 保存更新后的内容 - async with aiofiles.open(filename, 'w', encoding='utf-8') as f: - await f.write(json.dumps(messages, ensure_ascii=False, indent=2)) + # 保存更新后的内容, 不用保存消息 + # async with aiofiles.open(filename, 'w', encoding='utf-8') as f: + # await f.write(json.dumps(messages, ensure_ascii=False, indent=2)) print(f"消息已保存到文件: {filename}")