yjya_base.py 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. # -*- coding: utf-8 -*-
  2. from sqlalchemy import String, Column, Integer,DateTime,Text,BigInteger,Boolean,PrimaryKeyConstraint,Index,UniqueConstraint,CHAR,LargeBinary,TIMESTAMP,ForeignKey,Numeric
  3. from sqlalchemy.dialects.mysql import TINYINT
  4. from sqlalchemy.orm import relationship
  5. from sqlalchemy.sql import func
  6. from database import Base
  7. from datetime import datetime
  8. class EmergencyPlan(Base):
  9. __tablename__ = 'emergency_plans' # 表名
  10. # 定义字段
  11. id = Column(Integer, autoincrement=True, primary_key=True) # 主键
  12. plan_id = Column(String(50),comment='预案uid')
  13. plan_number = Column(String(15), comment='预案编号')
  14. plan_name = Column(String(255), nullable=False, comment='预案名称')
  15. plan_type = Column(String(100), nullable=False, comment='预案类型')
  16. plan_type_desc = Column(String(100), comment='预案类型(中文名称)')
  17. publish_date = Column(DateTime, default=datetime.now, comment='发布日期')
  18. organizing_unit = Column(String(255), comment='编制单位')
  19. document_number = Column(String(100), comment='发文字号')
  20. create_time = Column(DateTime, default=datetime.now, comment='数据创建时间')
  21. update_time = Column(DateTime, default=datetime.now, onupdate=datetime.now, comment='数据更新时间')
  22. create_dept = Column(BigInteger, default=None, comment='创建部门')
  23. create_by = Column(BigInteger, default=None, comment='创建者')
  24. del_flag = Column(String(1), default='0', comment='删除标志(0代表存在 2代表删除)')
  25. response_level = Column(String(2), comment='响应级别')
  26. event_type = Column(String(10), comment='对应事件类型')
  27. class Config:
  28. orm_mode = True
  29. # def create_new_plan_with_number(session, name):
  30. # new_plan = EmergencyPlan(
  31. # name=name
  32. # )
  33. # session.add(new_plan)
  34. # session.commit()
  35. # session.refresh(new_plan) # 刷新实例以获取数据库分配的 id
  36. # new_plan.plan_number = f'YJYA{str(new_plan.id).zfill(10)}'
  37. # session.commit()
  38. # return new_plan
  39. class EmergencyFile(Base):
  40. __tablename__ = 'emergency_file'
  41. id = Column(Integer, autoincrement=True, primary_key=True)
  42. file_id = Column(String(50), nullable=False, comment='文件id')
  43. file_name = Column(String(255), nullable=False, comment='文件名称')
  44. file_name_desc = Column(String(255), nullable=False, comment='文件名称原名')
  45. file_path = Column(String(255), comment='文件存储路径')
  46. file_size = Column(String(50), comment='文件大小')
  47. status = Column(String(50), comment='文件状态')
  48. foreign_key = Column(String(50), comment='文件外键 --技术字段')
  49. from_scenario = Column(String(50), comment='对应标识 --技术字段')
  50. create_time = Column(DateTime, default=datetime.now, comment='数据创建时间')
  51. update_time = Column(DateTime, default=datetime.now, onupdate=datetime.now, comment='数据更新时间')
  52. create_dept = Column(BigInteger, default=None, comment='创建部门')
  53. create_by = Column(BigInteger, default=None, comment='创建者')
  54. del_flag = Column(String(1), default='0', comment='删除标志(0代表存在 2代表删除)') #更新预案信息的时候 先将原有的进行备注删除
  55. # 关联到 EmergencyPlan 实例
  56. class Config:
  57. orm_mode = True
  58. class EmergencyDrill(Base):
  59. __tablename__ = 'emergency_drills'
  60. id = Column(Integer, autoincrement=True, primary_key=True)
  61. drill_id = Column(String(50), comment='演练uid' )
  62. drill_name = Column(String(255), nullable=False, comment='演练名称')
  63. organizing_unit = Column(String(255), nullable=False, comment='演练单位')
  64. plan_number = Column(String(50), nullable=False,comment='预案编号')
  65. # 前端确认传输什么数据
  66. drill_location = Column(String(255), comment='演练地点')
  67. drillProject = Column(String(255), comment='演练方案')
  68. drill_lon = Column(Numeric(9, 6), comment='演练经度')
  69. drill_lat = Column(Numeric(9, 6), comment='演练纬度')
  70. planned_annual = Column(Integer, comment='计划年度')
  71. planned_time = Column(DateTime, comment='计划演练时间')
  72. create_time = Column(DateTime, default=datetime.now, comment='数据创建时间')
  73. update_time = Column(DateTime, default=datetime.now, onupdate=datetime.now, comment='数据更新时间')
  74. create_dept = Column(BigInteger, default=None, comment='创建部门')
  75. create_by = Column(BigInteger, default=None, comment='创建者')
  76. del_flag = Column(String(1), default='0', comment='删除标志(0代表存在 2代表删除)')
  77. class Config:
  78. orm_mode = True
  79. class EmergencyTrainingSession(Base):
  80. __tablename__ = 'emergency_training_sessions'
  81. id = Column(Integer, autoincrement=True, primary_key=True)
  82. training_id = Column(String(50), nullable=False,comment='培训uid')
  83. training_theme = Column(String(100), nullable=False,comment='培训主题')
  84. training_unit = Column(String(255), nullable=False, comment='培训单位')
  85. participant_count = Column(Integer, comment='参与人数')
  86. training_method = Column(String(255), comment='培训方式')
  87. start_time = Column(DateTime, comment='培训开始时间')
  88. end_time = Column(DateTime, comment='培训结束时间')
  89. training_location = Column(String(255), comment='培训地点')
  90. training_content = Column(Text, nullable=False, comment='培训内容')
  91. training_lon = Column(Numeric(9, 6), comment='培训经度')
  92. training_lat = Column(Numeric(9, 6), comment='培训纬度')
  93. plan_number = Column(String(50), nullable=False,comment='预案编号')
  94. create_time = Column(DateTime, default=datetime.now, comment='数据创建时间')
  95. update_time = Column(DateTime, default=datetime.now, onupdate=datetime.now, comment='数据更新时间')
  96. create_dept = Column(BigInteger, default=None, comment='创建部门')
  97. create_by = Column(BigInteger, default=None, comment='创建者')
  98. del_flag = Column(String(1), default='0', comment='删除标志(0代表存在 2代表删除)')
  99. class Config:
  100. orm_mode = True
  101. class EmergencyResponse(Base):
  102. __tablename__ = 'emergency_responses'
  103. id = Column(Integer, autoincrement=True, primary_key=True)
  104. plan_id = Column(String(50), nullable=False,comment='预案id')
  105. response_id = Column(String(50), nullable=False, comment='响应编号')
  106. event_name = Column(String(255), nullable=False, comment='事件名称')
  107. event_type = Column(String(100), nullable=False, comment='事件类型')
  108. response_unit = Column(String(255), comment='响应单位')
  109. event_address = Column(String(255), comment='事件地点')
  110. response_level = Column(String(100), comment='响应级别')
  111. response_start_time = Column(DateTime, comment='响应开始时间')
  112. response_end_time = Column(DateTime, comment='响应结束时间')
  113. create_time = Column(DateTime, default=datetime.now, comment='数据创建时间')
  114. update_time = Column(DateTime, default=datetime.now, onupdate=datetime.now, comment='数据更新时间')
  115. create_dept = Column(BigInteger, default=None, comment='创建部门')
  116. create_by = Column(BigInteger, default=None, comment='创建者')
  117. del_flag = Column(String(1), default='0', comment='删除标志(0代表存在 2代表删除)')
  118. class Config:
  119. orm_mode = True
  120. class EmergencyUnit(Base):
  121. __tablename__ = 'emergency_unit'
  122. id = Column(Integer, autoincrement=True, primary_key=True)
  123. plan_id = Column(String(50), nullable=False,comment='预案id')
  124. dept_id = Column(Integer, nullable=False,comment='部门id')
  125. dept_name = Column(String(100), nullable=False,comment='部门名称')
  126. content = Column(String(255), nullable=False,comment='单位职责')
  127. dept_order = Column(Integer, comment='排序')
  128. class Config:
  129. orm_mode = True
  130. class EmergencyDoc(Base):
  131. __tablename__ = 'emergency_doc'
  132. id = Column(Integer, autoincrement=True, primary_key=True)
  133. title = Column(String, nullable=False,comment='标题')
  134. value = Column(String, nullable=False,comment='内容')
  135. pid = Column(Integer, comment='父级ID')
  136. plan_id = Column(String, nullable=False,comment='预案id')
  137. class Config:
  138. orm_mode = True
  139. '''
  140. 应急预案人员信息
  141. '''
  142. class EmergencyContactInfo(Base):
  143. __tablename__ = 'emergency_contact_info'
  144. id = Column(Integer, autoincrement=True, primary_key=True)
  145. unit_id = Column(Integer, nullable=False, comment='单位ID')
  146. unit_name = Column(String, nullable=False, default='', comment='单位名称')
  147. contact_name = Column(String, nullable=False, default='', comment='联系人')
  148. position = Column(String, default='', comment='职务')
  149. yue_gov_ease_phone = Column(String, default='', comment='粤政易手机号码')
  150. create_time = Column(DateTime, default=datetime.now, comment='数据创建时间')
  151. update_time = Column(DateTime, default=datetime.now, onupdate=datetime.now, comment='数据更新时间')
  152. create_dept = Column(BigInteger, default=None, comment='创建部门')
  153. create_by = Column(BigInteger, default=None, comment='创建者')
  154. del_flag = Column(String, default='0', comment='删除标志(0代表存在 2代表删除)')
  155. sign = Column(String, server_default='', default='', comment='HMACSM3数值')
  156. class Config:
  157. orm_mode = True