修改--修改返回告警消息格式
This commit is contained in:
parent
c33a04e74a
commit
ed8c24d40b
@ -183,9 +183,10 @@ async def get_alert_detail(
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
|
||||
alert_message = await event.get_alert_detail(db, messageId=messageId)
|
||||
# alert_message = await event.get_alert_detail(db, messageId=messageId)
|
||||
alert_message = await event.get_messages(db, skip=0, limit=1, condition=[Message.messageId==messageId])
|
||||
|
||||
return BaseResponse(code=200, msg="success", data=alert_message)
|
||||
return BaseResponse(code=200, msg="success", data=alert_message[0])
|
||||
|
||||
# 获取未处理告警消息数量
|
||||
@router.get("/events/alertCount", response_model=BaseResponse)
|
||||
|
||||
@ -197,11 +197,11 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]):
|
||||
query_stmt = (
|
||||
select(Message.messageId,Message.eventId ,Message.messageType, Message.eventType, Message.handle, Message.remark, Message.createTime,
|
||||
Event.number,Event.name,
|
||||
Image.imageUrl, Image.localPath,
|
||||
# Image.imageUrl, Image.localPath,
|
||||
Temperature.temperature)
|
||||
.select_from(Message)
|
||||
.outerjoin(Event, Message.eventId == Event.eventId)
|
||||
.outerjoin(Image, Message.eventId == Image.eventId)
|
||||
# .outerjoin(Image, Message.eventId == Image.eventId)
|
||||
.outerjoin(Temperature, Message.eventId == Temperature.eventId)
|
||||
.where(*condition)
|
||||
.order_by(Message.createTime.desc())
|
||||
@ -211,7 +211,27 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]):
|
||||
|
||||
messages = await db.execute(query_stmt)
|
||||
messages = messages.mappings().all()
|
||||
return [OcrAlertMessage(**t) for t in messages]
|
||||
|
||||
back = list()
|
||||
for message in messages:
|
||||
# 获取图片URL列表
|
||||
query_image_stmt = (
|
||||
select(Image.imageUrl)
|
||||
.where(Image.eventId == message.get("eventId"))
|
||||
)
|
||||
images = await db.execute(query_image_stmt)
|
||||
images = images.mappings().all()
|
||||
|
||||
# 将RowMapping转换为字典
|
||||
message_dict = dict(message)
|
||||
# 将图片URL列表转换为普通列表
|
||||
image_urls = [dict(img)["imageUrl"] for img in images]
|
||||
message_dict["imageUrl"] = image_urls
|
||||
|
||||
ocrAlertMessage = OcrAlertMessage(**message_dict)
|
||||
back.append(ocrAlertMessage)
|
||||
|
||||
return back
|
||||
|
||||
async def handle_ocr_alerts(
|
||||
self,
|
||||
@ -323,10 +343,28 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]):
|
||||
)
|
||||
|
||||
result = await db.execute(select_stmt)
|
||||
return result.mappings().first()
|
||||
message = result.mappings().first()
|
||||
|
||||
if message:
|
||||
# 获取图片URL列表
|
||||
query_image_stmt = (
|
||||
select(Image.imageUrl)
|
||||
.where(Image.eventId == message.get("eventId"))
|
||||
)
|
||||
images = await db.execute(query_image_stmt)
|
||||
images = images.mappings().all()
|
||||
|
||||
# 将RowMapping转换为字典
|
||||
message_dict = dict(message)
|
||||
# 添加图片URL列表
|
||||
message_dict["imageUrl"] = images
|
||||
|
||||
return OcrAlertMessage(**message_dict)
|
||||
return None
|
||||
|
||||
except Exception as e:
|
||||
print(f"获取告警详情失败: {e}")
|
||||
|
||||
return None
|
||||
|
||||
async def get_alert_count(
|
||||
self,
|
||||
|
||||
@ -146,8 +146,9 @@ class BackStageEventDetail(BaseModel):
|
||||
reason: Optional[str] = None
|
||||
remark: Optional[str] = None
|
||||
|
||||
# 获取报警信息列表
|
||||
class OcrAlertMessage(BaseModel):
|
||||
|
||||
# 通常告警消息列表
|
||||
class CommonAlertMessage(BaseModel):
|
||||
messageId: int
|
||||
eventId: str
|
||||
messageType: Optional[str] = None
|
||||
@ -157,12 +158,29 @@ class OcrAlertMessage(BaseModel):
|
||||
remark: Optional[str] = None
|
||||
number: Optional[str] = None
|
||||
name: Optional[str] = None
|
||||
imageUrl : Optional[str] = None
|
||||
localPath: Optional[str] = None
|
||||
temperature : Optional[str] = None
|
||||
imageUrl : Optional[List[str]] = None
|
||||
# localPath: Optional[List[str]] = None
|
||||
# temperature : Optional[str] = None
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
# 报警消息列表
|
||||
class OcrAlertMessage(CommonAlertMessage):
|
||||
# messageId: int
|
||||
# eventId: str
|
||||
# messageType: Optional[str] = None
|
||||
# eventType: Optional[str] = None
|
||||
# createTime: Optional[datetime] = None
|
||||
# handle: Optional[str] = None
|
||||
# remark: Optional[str] = None
|
||||
# number: Optional[str] = None
|
||||
# name: Optional[str] = None
|
||||
# imageUrl : Optional[str] = None
|
||||
# localPath: Optional[str] = None
|
||||
temperature : Optional[str] = None
|
||||
|
||||
# model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
# 处理消息DTO
|
||||
class OcrAlertMessageDto(BaseModel):
|
||||
messageId: int
|
||||
|
||||
Loading…
Reference in New Issue
Block a user