Incident_base.py 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. from sqlalchemy import Column, Integer, String, DateTime, Float, Boolean,Text
  2. from database import Base
  3. from datetime import datetime
  4. class Incident(Base):
  5. __tablename__ = 'incidents'
  6. id = Column(Integer, autoincrement=True, primary_key=True)
  7. code = Column(String(50), nullable=False, comment='事件编号')
  8. title = Column(String(255), nullable=False, comment='事件标题')
  9. incident_type = Column(String(100), nullable=False, comment='事件类型')
  10. incident_level = Column(String(50), comment='事件等级')
  11. status = Column(String(50), default='active', comment='事件状态')
  12. occurrence_time = Column(DateTime, comment='事发时间')
  13. report_time = Column(DateTime, default=datetime.now, comment='上报时间')
  14. fatalities = Column(Integer, default=0, comment='死亡人数')
  15. injuries = Column(Integer, default=0, comment='受伤人数')
  16. missing = Column(Integer, default=0, comment='失联人数')
  17. source = Column(String(255), comment='事件来源')
  18. location = Column(String(255), comment='事发地点')
  19. longitude = Column(Float, comment='经度')
  20. latitude = Column(Float, comment='纬度')
  21. summary = Column(Text, comment='事件概要')
  22. recorded_by = Column(String(50), comment='记录用户ID')
  23. del_flag = Column(String(1), default='0', comment='删除标志(0代表存在 2代表删除)')
  24. contact = Column(String(50), comment='联系人')
  25. class Config:
  26. orm_mode = True
  27. class IncidentTracking(Base):
  28. __tablename__ = 'incident_tracking'
  29. id = Column(Integer, autoincrement=True, primary_key=True)
  30. incident_id = Column(Integer, nullable=False, comment='事件ID')
  31. tracking_status = Column(String(100), nullable=False, comment='事件跟踪状态')
  32. tracking_time = Column(DateTime, default=datetime.now, comment='事件跟踪时间')
  33. notes = Column(String(500), default='', comment='备注')
  34. recorded_by = Column(Integer, nullable=False, comment='记录用户ID')
  35. del_flag = Column(String(1), default='0', comment='删除标志(0代表存在 2代表删除)')
  36. class Config:
  37. orm_mode = True
  38. class IncidentFile(Base):
  39. __tablename__ = 'incident_file'
  40. id = Column(Integer, autoincrement=True, primary_key=True)
  41. file_name = Column(String(255), nullable=False, comment='文件名称')
  42. file_name_desc = Column(String(255), nullable=False, comment='文件名称原名')
  43. file_path = Column(String(255), nullable=False, comment='文件存储路径')
  44. file_size = Column(String(50), comment='文件大小')
  45. foreign_key = Column(String(50), comment='文件外键 --技术字段')
  46. from_scenario = Column(String(50), comment='对应标识 --技术字段')
  47. create_time = Column(DateTime, default=datetime.now, comment='数据创建时间')
  48. update_time = Column(DateTime, default=datetime.now, onupdate=datetime.now, comment='数据更新时间')
  49. del_flag = Column(String(1), default='0', comment='删除标志(0代表存在 2代表删除)') # 更新预案信息的时候 先将原有的进行备注删除
  50. class Config:
  51. orm_mode = True