添加, websocket同步消息时添加message告警消息

This commit is contained in:
haotian 2025-06-03 16:14:18 +08:00
parent d9de1df556
commit c33a04e74a
4 changed files with 48 additions and 16 deletions

View File

@ -2,12 +2,12 @@ from pydantic_settings import BaseSettings
class Settings(BaseSettings):
# 数据库配置
DB_HOST: str = "14.103.162.172"
# DB_HOST: str = "10.0.0.17"
# DB_HOST: str = "14.103.162.172"
DB_HOST: str = "10.0.0.17"
DB_PORT: int = 3306
DB_USER: str = "root"
DB_PASSWORD: str = "dnxxkj"
# DB_PASSWORD: str = "root"
# DB_PASSWORD: str = "dnxxkj"
DB_PASSWORD: str = "root"
DB_NAME: str = "kangda"
# DB_NAME: str = "kangda_test" # 测试数据库

View File

@ -9,7 +9,7 @@ from app.core.database import async_session
from app.models.models import Event, Image, Temperature, Message, Robot
from app.util.kangda import Kangda
from app.util.baiduOcr import BadiduOcr
from app.util.status import EventType
from app.util.status import EventType, etypeNameDict
class EventSyncService:
@ -140,13 +140,32 @@ class EventSyncService:
# 保存ocr温度信息
await self._ocr_images(session, image_list)
# 保存告警消息
await self._save_message(session, detail)
except Exception as e:
session.rollback()
print(f"事件: {eventId} 同步失败: {str(e)}")
print(f"事件: {eventId} 同步完成")
# 保存告警消息
async def _save_message(self, session: AsyncSession, detail: Dict[str, Any]):
if not detail.get("etypeName"):
return
message = Message(
eventId = detail.get("eventId")
)
if detail.get("etypeName") not in etypeNameDict:
print("未知消息类型")
message.eventType = EventType.ERRORTYPE.value
else:
message.eventType = etypeNameDict[detail.get("etypeName")]
session.add(message)
await session.commit()
# pass
async def _get_new_events(self, event_list: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
"""获取新事件列表"""
@ -269,15 +288,15 @@ class EventSyncService:
)
session.add(temperature)
# 异常消息
if status.value != 0:
print("发送异常消息")
message = Message(
eventId = image.eventId,
messageType = status.value,
eventType = EventType.HOT.value
)
session.add(message)
# # 异常消息.--- 现改为统一发送消息
# if status.value != 0:
# print("发送异常消息")
# message = Message(
# eventId = image.eventId,
# messageType = status.value,
# eventType = EventType.HOT.value
# )
# session.add(message)
try:
await session.commit()
except Exception as e:

View File

@ -18,6 +18,19 @@ class EventType(Enum):
AIRQUALITY = 4 # 空气质量报警
STOPEMERGENCY = 5 # 急停按下
VOICENOTCONNECT = 6 #语音未接通
DAILYINSPECT = 7 # 日常巡检
ERRORTYPE = 9 # 异常告警信息
etypeNameDict = {
"高温感知报警": EventType.HightTemperature.value,
"吸烟报警(新)": EventType.SMOKE.value,
"长时间滞留报警": EventType.LONGSTAY.value,
"空气质量报警": EventType.AIRQUALITY.value,
"急停按下" : EventType.STOPEMERGENCY.value,
"语音未接通": EventType.VOICENOTCONNECT.value,
"日常巡检": EventType.DAILYINSPECT.value
}

View File

@ -7,5 +7,5 @@ from app.services.event_sync_service import run_sync, run_sync_event
if __name__ == "__main__":
print("启动事件同步服务...")
asyncio.run(run_sync())
# asyncio.run(run_sync_event("6c1cc5c6a4c74af0ba8932f5db7023f4"))
# asyncio.run(run_sync())
asyncio.run(run_sync_event("f3a4951618334c7dafef03ad5345a3c1"))