diff --git a/app/api/v1/endpoints/events.py b/app/api/v1/endpoints/events.py index 6864062..402a34f 100644 --- a/app/api/v1/endpoints/events.py +++ b/app/api/v1/endpoints/events.py @@ -6,6 +6,7 @@ from app.crud.event import event 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 +from app.util.status import EventType # import datetime @@ -106,7 +107,9 @@ async def delete_event( return BaseResponse(code=200, msg="success", data=EventDetail.model_validate(event_obj)) # 获取未处理告警消息列表 -@router.get("/events/messagesUnhandled", response_model=BaseResponse[List[OcrAlertMessage]]) +@router.get("/events/messagesUnhandled", + # response_model=BaseResponse[dict] + ) async def get_messages_unhandle( db: AsyncSession = Depends(get_db), skip: int = Query(0, ge=0), @@ -114,19 +117,23 @@ async def get_messages_unhandle( ): """_summary_ 获取告警消息列表 + """ - message = await event.get_messages(db, skip=skip, limit=limit, condition=[Message.handle=="0"]) - return BaseResponse(code=200, msg="success", data=message) + data = await get_message_by_event_type(db, "0", skip, limit) + + return BaseResponse(code=200, msg="success", data=data) # 获取已处理告警消息列表 -@router.get("/events/messagesHandled", response_model=BaseResponse[List[OcrAlertMessage]]) +@router.get("/events/messagesHandled", + # response_model=BaseResponse[dict] + ) 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) + data = await get_message_by_event_type(db, "1", skip, limit) + return BaseResponse(code=200, msg="success", data=data) # 批量处理告警数据--传递messageId List @router.post("/events/handleOcrAlerts", response_model=BaseResponse) @@ -218,6 +225,54 @@ async def get_robot_st( "disable_count": disable_count }) +async def get_message_by_event_type( + db:AsyncSession , + handle: str , + skip: int , + limit: int +): + # 高温报警消息 + high_temperature_message = await event.get_messages(db, + skip=skip, + limit=limit, + condition=[Message.handle==handle, Message.eventType==EventType.HightTemperature.value]) + smoke_message = await event.get_messages(db, + skip=skip, + limit=limit, + condition=[Message.handle==handle, Message.eventType==EventType.SMOKE.value]) + long_staty_message = await event.get_messages(db, + skip=skip, + limit=limit, + condition=[Message.handle==handle, Message.eventType==EventType.LONGSTAY.value]) + air_quality_message = await event.get_messages(db, + skip=skip, + limit=limit, + condition=[Message.handle==handle, Message.eventType==EventType.AIRQUALITY.value]) + + stop_emergency_message = await event.get_messages(db, + skip=skip, + limit=limit, + condition=[Message.handle==handle, Message.eventType==EventType.STOPEMERGENCY.value]) + voice_connect_message = await event.get_messages(db, + skip=skip, + limit=limit, + condition=[Message.handle==handle, Message.eventType==EventType.VOICENOTCONNECT.value]) + daily_inspect_message = await event.get_messages(db, + skip=skip, + limit=limit, + condition=[Message.handle==handle, Message.eventType==EventType.DAILYINSPECT.value]) + + return { + "high_temperature_message": high_temperature_message, + "smoke_message": smoke_message, + "long_staty_message": long_staty_message, + "air_quality_message": air_quality_message, + "stop_emergency_message": stop_emergency_message, + "voice_connect_message": voice_connect_message, + "daily_inspect_message": daily_inspect_message, + } + + diff --git a/app/core/config.py b/app/core/config.py index c45f1ce..e6813de 100644 --- a/app/core/config.py +++ b/app/core/config.py @@ -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" # 测试数据库