diff --git a/app/models/models.py b/app/models/models.py index abb063a..c454fa6 100644 --- a/app/models/models.py +++ b/app/models/models.py @@ -63,6 +63,7 @@ class Event(Base): images = relationship("Image", back_populates="event", cascade="all, delete", passive_deletes=True) temperatures = relationship("Temperature", back_populates="event", cascade="all, delete", passive_deletes=True) process_logs = relationship("ProcessLog", back_populates="event", cascade="all, delete", passive_deletes=True) + messages = relationship("Message", back_populates="event", cascade="all, delete", passive_deletes=True) class Image(Base): @@ -119,4 +120,29 @@ class ProcessLog(Base): __table_args__ = ( Index('idx_log_event_id', 'eventId'), Index('idx_log_create_time', 'createTime'), - ) \ No newline at end of file + ) + +class Message(Base): + __tablename__ = "message" + + messageId = Column(BigInteger, primary_key=True, autoincrement=True, comment='消息ID') + eventId = Column(String(50), ForeignKey('event.eventId', ondelete="CASCADE"), nullable=False, comment='关联事件ID') + messageType = Column(String(5), comment='消息类型') + eventType = Column(String(5), comment='事件类型') + handle = Column(String(5), default='0', comment='是否处理' ) + remark = Column(String(500), comment='备注') + createTime = Column(DateTime, default=datetime.now, nullable=False, comment='创建时间') + updateTime = Column(DateTime, default=datetime.now, nullable=False, comment='更新时间') + + event = relationship("Event", back_populates="messages") + + __table_args__ = ( + Index('idx_message_event_id', 'eventId'), + Index('idx_message_create_time', 'createTime'), + Index('idx_message_update_time', 'updateTime'), + ) + + + + + \ No newline at end of file diff --git a/app/services/event_sync_service.py b/app/services/event_sync_service.py index a8d4242..91ad5bd 100644 --- a/app/services/event_sync_service.py +++ b/app/services/event_sync_service.py @@ -4,7 +4,7 @@ from typing import List, Dict, Any from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession from app.core.database import async_session -from app.models.models import Event, Image, Temperature +from app.models.models import Event, Image, Temperature, Message from app.util.kangda import Kangda from app.util.baiduOcr import BadiduOcr @@ -190,6 +190,14 @@ class EventSyncService: status = status.value ) session.add(temperature) + + # 异常消息 + if status.value != 0: + message = Message( + eventId = image.eventId, + messageType = status.value + ) + session.add(message) try: await session.commit() except Exception as e: diff --git a/run_sync.py b/run_sync.py index a942af3..0829e80 100644 --- a/run_sync.py +++ b/run_sync.py @@ -8,4 +8,4 @@ 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("07a9da561cd643328d5d43a33cce89bb")) \ No newline at end of file + asyncio.run(run_sync_event("3d685e6927724b9db47e52b544bf6103")) \ No newline at end of file diff --git a/test_db.py b/test_db.py index ea55493..de85559 100644 --- a/test_db.py +++ b/test_db.py @@ -13,7 +13,7 @@ async def init_db(): async with engine.begin() as conn: # 删除已注册的表 - await conn.run_sync(Base.metadata.drop_all) + # await conn.run_sync(Base.metadata.drop_all) # 创建表 await conn.run_sync(Base.metadata.create_all) @@ -187,25 +187,25 @@ async def main(): await init_db() print("数据库初始化完成") - # 测试创建 - event_id = await test_create() + # # 测试创建 + # event_id = await test_create() - # 测试读取 - await test_read(event_id) + # # 测试读取 + # await test_read(event_id) - # 测试更新 - await test_update(event_id) + # # 测试更新 + # await test_update(event_id) - # 测试读取更新后的数据 - await test_read(event_id) + # # 测试读取更新后的数据 + # await test_read(event_id) - # 测试事务 - await test_transaction() + # # 测试事务 + # await test_transaction() - # 测试删除 - await test_delete(event_id) + # # 测试删除 + # await test_delete(event_id) - print("\n数据库测试完成") + # print("\n数据库测试完成") if __name__ == "__main__": asyncio.run(main()) \ No newline at end of file