resource_provision_base.py 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. from sqlalchemy import Column, String, Numeric, DateTime, Integer,Float,Boolean,BigInteger
  2. # from sqlalchemy.orm import declarative_base
  3. from sqlalchemy.ext.declarative import declarative_base
  4. from datetime import datetime
  5. import uuid
  6. Base = declarative_base()
  7. class WaterResourceProject(Base):
  8. __tablename__ = 'water_resource_projects'
  9. id = Column(Integer, primary_key=True, autoincrement=True, comment='数据自增键')
  10. jsdwzjlx = Column(String(50), comment='建设单位证件类型')
  11. lxfs = Column(String(50), comment='联系方式')
  12. sjtgbmtyshxydm = Column(String(18), comment='数据提供部门统一社会信用代码')
  13. jdgljgbm = Column(String(50), comment='监督管理机关编码')
  14. cd_time = Column(DateTime, comment='插入时间')
  15. sjtgbmmc = Column(String(400), comment='数据提供部门名称')
  16. ggmj = Column(String(50), comment='灌溉面积')
  17. sjtgbmxzqhdm = Column(String(12), comment='数据提供部门行政区划代码')
  18. jsdwzjhm = Column(String(50), comment='建设单位证件号码')
  19. xzqhdm = Column(String(50), comment='水利设施和水利工程所在地行政区划代码')
  20. cd_operation = Column(String(10), comment='新增数据类型 I-INSERT, U_UPDATE, D-DELETE')
  21. zdmj = Column(String(50), comment='占地面积')
  22. d_bmmc = Column(String(500), comment='前置机归属数源部门名称源')
  23. etl_time = Column(DateTime, comment='ETL时间')
  24. jssj = Column(String(50), comment='建设时间')
  25. jsdwmc = Column(String(400), comment='建设单位名称')
  26. slsshslgcmc = Column(String(400), comment='水利设施和水利工程名称')
  27. cd_batch = Column(String(200), comment='数据批次号')
  28. slsshslgcdd = Column(String(400), comment='水利设施和水利工程地点')
  29. jdgljg = Column(String(400), comment='监督管理机关')
  30. jingdu = Column(String(50), comment='经度')
  31. weidu = Column(String(50), comment='维度')
  32. is_delete = Column(Integer, comment='删除标识')
  33. class Config:
  34. allow_population_by_field_name = True
  35. orm_mode = True
  36. def to_dict(self):
  37. return {
  38. "id": self.id,
  39. "jsdwzjlx": self.jsdwzjlx,
  40. "lxfs": self.lxfs,
  41. "sjtgbmtyshxydm": self.sjtgbmtyshxydm,
  42. "jdgljgbm": self.jdgljgbm,
  43. "cd_time": self.cd_time,
  44. "sjtgbmmc": self.sjtgbmmc,
  45. "ggmj": self.ggmj,
  46. "sjtgbmxzqhdm": self.sjtgbmxzqhdm,
  47. "jsdwzjhm": self.jsdwzjhm,
  48. "xzqhdm": self.xzqhdm,
  49. "cd_operation": self.cd_operation,
  50. "zdmj": self.zdmj,
  51. "d_bmmc": self.d_bmmc,
  52. "etl_time": self.etl_time,
  53. "jssj": self.jssj,
  54. "jsdwmc": self.jsdwmc,
  55. "slsshslgcmc": self.slsshslgcmc,
  56. "cd_batch": self.cd_batch,
  57. "slsshslgcdd": self.slsshslgcdd,
  58. "jdgljg": self.jdgljg,
  59. "jingdu": self.jingdu,
  60. "weidu": self.weidu,
  61. # "is_delete": self.is_delete
  62. }
  63. class Unit(Base):
  64. __tablename__ = 'rescue_units'
  65. id = Column(Integer, autoincrement=True, primary_key=True)
  66. name = Column(String(255), nullable=False, comment='单位名称')
  67. category = Column(String(100), nullable=False, comment='类别')
  68. address = Column(String(255), nullable=False, comment='地址')
  69. equipment = Column(String(255), comment='装备')
  70. training = Column(String(255), comment='训练')
  71. responsible_person = Column(String(100), comment='负责人')
  72. contact_number = Column(String(20), comment='联系电话')
  73. longitude = Column(Float, comment='经度')
  74. latitude = Column(Float, comment='纬度')
  75. is_delete = Column(Integer, comment='删除标识')
  76. def to_dict(self):
  77. return {
  78. "id": self.id,
  79. "name": self.name,
  80. "category": self.category,
  81. "address": self.address,
  82. "equipment": self.equipment,
  83. "training": self.training,
  84. "responsible_person": self.responsible_person,
  85. "contact_number": self.contact_number,
  86. "longitude": self.longitude,
  87. "latitude": self.latitude,
  88. # "is_delete": self.is_delete
  89. }
  90. class Config:
  91. allow_population_by_field_name = True
  92. orm_mode = True
  93. class RescuePersonnel(Base):
  94. __tablename__ = 'rescue_personnel'
  95. id = Column(Integer, primary_key=True, autoincrement=True)
  96. name = Column(String(255), nullable=False, comment='姓名')
  97. contact_number = Column(String(20), nullable=False, comment='联系电话')
  98. gender = Column(String(10), nullable=False, comment='性别')
  99. current_address = Column(String(255), nullable=False, comment='现在地址')
  100. position = Column(String(100), comment='职务')
  101. unit_id = Column(Integer, comment='所属救援人员单位ID')
  102. unit_name = Column(Integer, comment='所属救援人员单位')
  103. is_delete = Column(Integer, default=0, comment='删除标识')
  104. modified_time = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, comment='修改时间')
  105. created_time = Column(DateTime, default=datetime.utcnow, comment='创建时间')
  106. def to_dict(self):
  107. return {
  108. "id": self.id,
  109. "name": self.name,
  110. "contact_number": self.contact_number,
  111. "gender": self.gender,
  112. "current_address": self.current_address,
  113. "position": self.position,
  114. "unit_id": self.unit_id,
  115. # "is_delete": self.is_delete,
  116. "unit_name": self.unit_name,
  117. "modified_time": self.modified_time.isoformat() if self.modified_time else None,
  118. "created_time": self.created_time.isoformat() if self.created_time else None
  119. }
  120. class RescueStation(Base):
  121. __tablename__ = 'rescue_stations'
  122. id = Column(Integer, primary_key=True, autoincrement=True, comment='数字自增ID')
  123. data_id = Column(String(255), primary_key=True, default=uuid.uuid4, comment='uuid主键')
  124. fwdx = Column(String(100), comment='服务对象姓名')
  125. zj = Column(String(20), comment='所属镇街')
  126. lng = Column(String(30), comment='救助站经度')
  127. cd_time = Column(DateTime, comment='更新时间')
  128. fwdmc = Column(String(50), comment='救助站名称')
  129. fwnr = Column(String(500), comment='服务内容')
  130. add_time = Column(DateTime, comment='新增时间')
  131. cd_operation = Column(String(1), comment='操作方式')
  132. fwdlx = Column(String(2), comment='救助站类型')
  133. lxdh = Column(String(30), comment='联系电话')
  134. kfsj = Column(String(100), comment='开放时间')
  135. lat = Column(String(30), comment='救助站纬度')
  136. fwdjj = Column(String(1000), comment='救助站简介')
  137. lxr = Column(String(30), comment='联系人')
  138. fid = Column(String(36), comment='主键')
  139. fwdzt = Column(String(1), comment='服务点状态')
  140. fwdaddr = Column(String(80), comment='服务点地址')
  141. is_delete = Column(Boolean, default=False, comment='删除标识')
  142. def to_dict(self):
  143. return {
  144. "id": self.id,
  145. "data_id": self.data_id,
  146. "fwdx": self.fwdx,
  147. "zj": self.zj,
  148. "lng": self.lng,
  149. "cd_time": self.cd_time.isoformat() if self.cd_time else None,
  150. "fwdmc": self.fwdmc,
  151. "fwnr": self.fwnr,
  152. "add_time": self.add_time.isoformat() if self.add_time else None,
  153. "cd_operation": self.cd_operation,
  154. "fwdlx": self.fwdlx,
  155. "lxdh": self.lxdh,
  156. "kfsj": self.kfsj,
  157. "lat": self.lat,
  158. "fwdjj": self.fwdjj,
  159. "lxr": self.lxr,
  160. "fid": self.fid,
  161. "fwdzt": self.fwdzt,
  162. "fwdaddr": self.fwdaddr,
  163. # "is_delete": self.is_delete
  164. }
  165. class DefenseProject(Base):
  166. __tablename__ = 'defense_projects'
  167. data_id = Column(String(255), primary_key=True, default=uuid.uuid4, comment='uuid主键')
  168. id = Column(BigInteger, primary_key=True, autoincrement=True, comment='数字自增ID')
  169. gcmc = Column(String(200), comment='工程名称')
  170. jsdw = Column(String(100), comment='建设单位')
  171. whdw = Column(String(100), comment='维护单位')
  172. rfzyjlgcs = Column(String(100), comment='人防专业监理工程师')
  173. jsdd = Column(String(100), comment='建设地点')
  174. cd_operation = Column(String(1), comment='操作方式')
  175. yjdxsmj = Column(Numeric(12), comment='应建人防地下室面积(㎡)')
  176. sjdxsmj = Column(Numeric(12), comment='实建人防地下室面积(㎡)')
  177. cd_time = Column(DateTime, default=datetime.utcnow, comment='更新时间')
  178. add_time = Column(DateTime, default=datetime.utcnow, comment='新增时间')
  179. jldw = Column(String(100), comment='监理单位')
  180. jsdwdm = Column(String(100), comment='建设单位统一社会信用代码')
  181. kgsj = Column(DateTime, comment='开工时间')
  182. stdw = Column(String(100), comment='审图单位')
  183. rfsjdwdm = Column(String(100), comment='人防设计单位单位统一社会信用代码')
  184. rfsjdw = Column(String(100), comment='人防设计单位单位')
  185. ybrs = Column(Numeric, comment='掩蔽人数')
  186. stdwdm = Column(String(100), comment='审图单位统一社会信用代码')
  187. whdwdm = Column(String(100), comment='维护单位统一社会信用代码')
  188. jldwdm = Column(String(100), comment='监理单位统一社会信用代码')
  189. rfzjlgcs = Column(String(100), comment='人防总监理工程师')
  190. gcid = Column(String(50), comment='主键')
  191. extend2 = Column(String(200), comment='扩展2')
  192. data_area = Column(String(12), comment='数据区域')
  193. extend1 = Column(String(200), comment='扩展1')
  194. jgsj = Column(DateTime, comment='竣工时间')
  195. is_delete = Column(Boolean, default=False, comment='删除标识')
  196. def to_dict(self):
  197. return {
  198. "id": self.id,
  199. "data_id": str(self.data_id), # 确保UUID转换为字符串
  200. "gcmc": self.gcmc,
  201. "jsdw": self.jsdw,
  202. "whdw": self.whdw,
  203. "rfzyjlgcs": self.rfzyjlgcs,
  204. "jsdd": self.jsdd,
  205. "cd_operation": self.cd_operation,
  206. "yjdxsmj": self.yjdxsmj,
  207. "sjdxsmj": self.sjdxsmj,
  208. "cd_time": self.cd_time.isoformat() if self.cd_time else None,
  209. "add_time": self.add_time.isoformat() if self.add_time else None,
  210. "jldw": self.jldw,
  211. "jsdwdm": self.jsdwdm,
  212. "kgsj": self.kgsj.isoformat() if self.kgsj else None,
  213. "stdw": self.stdw,
  214. "rfsjdwdm": self.rfsjdwdm,
  215. "rfsjdw": self.rfsjdw,
  216. "ybrs": self.ybrs,
  217. "stdwdm": self.stdwdm,
  218. "whdwdm": self.whdwdm,
  219. "jldwdm": self.jldwdm,
  220. "rfzjlgcs": self.rfzjlgcs,
  221. "gcid": self.gcid,
  222. "extend2": self.extend2,
  223. "data_area": self.data_area,
  224. "extend1": self.extend1,
  225. "jgsj": self.jgsj.isoformat() if self.jgsj else None,
  226. # "is_delete": self.is_delete,
  227. }
  228. class Shelter(Base):
  229. __tablename__ = 'shelters'
  230. data_id = Column(String(255), primary_key=True, default=uuid.uuid4, comment='uuid主键')
  231. id = Column(Integer, primary_key=True, autoincrement=True, comment='数字自增ID')
  232. admin_area = Column(String(100), comment='行政区域')
  233. full_name = Column(String(200), comment='应急避难场所全称')
  234. address = Column(String(255), comment='应急避难场所地址')
  235. incident_type = Column(String(100), comment='按突发事件类型分类')
  236. shelter_type = Column(String(100), comment='避难种类')
  237. total_area = Column(Numeric, comment='应急避难场所占地总面积(平方米)')
  238. indoor_area = Column(Numeric, comment='应急避难场所室内面积(平方米)')
  239. capacity = Column(Numeric, comment='避难场所容纳人数(人)')
  240. supplies = Column(String(500), comment='物资储备')
  241. facilities = Column(String(500), comment='应急设施')
  242. is_delete = Column(Boolean, default=False, comment='删除标识')
  243. modified_time = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, comment='修改时间')
  244. created_time = Column(DateTime, default=datetime.utcnow, comment='创建时间')
  245. def to_dict(self):
  246. return {
  247. "id": self.id,
  248. "data_id": str(self.data_id),
  249. "admin_area": self.admin_area,
  250. "full_name": self.full_name,
  251. "address": self.address,
  252. "incident_type": self.incident_type,
  253. "shelter_type": self.shelter_type,
  254. "total_area": self.total_area,
  255. "indoor_area": self.indoor_area,
  256. "capacity": self.capacity,
  257. "supplies": self.supplies,
  258. "facilities": self.facilities,
  259. # "is_delete": self.is_delete,
  260. "modified_time": self.modified_time.isoformat() if self.modified_time else None,
  261. "created_time": self.created_time.isoformat() if self.created_time else None,
  262. }