# -*- coding: utf-8 -*- from sqlalchemy import String, Column, Integer, DateTime,Text,BigInteger,Float,Date,TIMESTAMP from sqlalchemy.dialects.mysql import TINYINT from sqlalchemy.sql import func from database import Base from datetime import datetime # 危化企业信息表 class ChemicalCompany(Base): __tablename__ = 'chemical_company' id = Column(BigInteger, primary_key=True,autoincrement=True, comment='主键') province = Column(String, default='', comment='省') city = Column(String, default='', comment='地市') area = Column(String, default='', comment='区县') company_name = Column(String, default='', comment='企业名称') company_code = Column(String, default='', comment='企业编码') company_type = Column(String, default='', comment='企业类型') is_import = Column(String, default='', comment='是否涉及进口') is_manage = Column(String, default='', comment='是否涉及经营') registration_date = Column(String, default='', comment='工商注册时间') registration_address = Column(String, default='', comment='工商注册地址') credit_code = Column(String, default='', comment='统一社会信用代码') industry_classification = Column(String, default='', comment='行业分类') production_scale = Column(Text, default='', comment='主要产品及生产规模') chemical_park_location = Column(String, default='', comment='所在化工园区') emergency_contact_number = Column(String, default='', comment='安全值班电话') emergency_response_hotline = Column(String, default='', comment='应急咨询服务电话') qyagjgfzr_phone = Column(String, default='', comment='企业安管机构负责人手机号') qyfgaqfzr_phone = Column(String, default='', comment='企业分管安全负责人手机号') sfqdwxhxpaqscxkz = Column(String, default='', comment='是否取得危险化学品安全生产许可证') xkzbh = Column(String, default='', comment='许可证编号') sfqdwxhxpjyxkz = Column(String, default='', comment='是否取得危险化学品经营许可证') sfqdwxhxpsyxkz = Column(String, default='', comment='是否取得危险化学品使用许可证') factory_address = Column(String, default='', comment='厂区地址') hazard_source = Column(Text, default='', comment='重大危险源') hazardous_chemical_process = Column(Text, default='', comment='危险化工工艺') issuance_date = Column(String, default='', comment='发证日期') certificate_expiry_date = Column(String, default='', comment='证书有效期') company_registration_number = Column(String, default='', comment='企业登记证编码') number_of_employees = Column(Integer, default='0', comment='职工人数') deregistration_date = Column(String, default='', comment='注销时间') scale_of_enterprise = Column(String, default='', comment='企业规模') chemical_industry_classification = Column(String, default='', comment='化工行业分类') safe_level = Column(String, default='', comment='安全标准化等级') priority = Column(String, default='', comment='重点行业') longitude = Column(Float, comment='经度') latitude = Column(Float, comment='纬度') formatted_address = Column(String, default='', comment='地址') s_last_updatetime = Column(DateTime, comment='更新时间') sign = Column(String, server_default='', default='', comment='HMACSM3数值') class Config: orm_mode = True # 建筑工程信息表 class BuildingProjectInfo(Base): __tablename__ = 'building_project_info' id = Column(BigInteger, primary_key=True,autoincrement=True, comment='主键') prjcode = Column(String, default='', comment='项目编号') prjname = Column(String, default='', comment='项目名称') prjnum = Column(String, default='', comment='投资项目在线审批监管平台统一项目代码') letternum = Column(String, default='', comment='立项文号') prjlevel = Column(String, default='', comment='立项级别') issueby = Column(String, default='', comment='立项批复机关') dtissue = Column(DateTime, comment='立项批复时间') prjtypename = Column(String, default='', comment='项目类型') cityid = Column(String, default='', comment='项目所在地区编码(地市)') cityname = Column(String, default='', comment='项目所在地区名称(地市)') countyid = Column(Integer, comment='项目所在地区编码(县区)') countyname = Column(String, default='', comment='项目所在地区名称(县区)') address = Column(String, default='', comment='项目地址') longitude = Column(Float, comment='经度') latitude = Column(String, comment='纬度') prjsizedes = Column(String, default='', comment='建设规模') allinvest = Column(Float, default='', comment='总投资(万元)') allarea = Column(Float, comment='总面积(平方米)') alllength = Column(Float, comment='总长度(米)') allspan = Column(Float, comment='总跨度(米)') prjpropertyname = Column(String, default='', comment='建设性质') prjusefor = Column(String, default='', comment='工程用途') dtplans = Column(DateTime, comment='计划开工日期') dtplane = Column(DateTime, comment='计划竣工日期') ownername = Column(String, default='', comment='建设单位') ownerid = Column(String, default='', comment='建设单位统一信用代码(或个人身份证号码)') zjlygjzfczzjtz = Column(Float, comment='资金来源-各级政府财政资金投资') zjlygyqyzjtz = Column(Float, comment='资金来源-国有企业资金投资') zjlygjrz = Column(Float, comment='资金来源-国家融资') zjlysygjzzhzwgzfzj = Column(Float, comment='资金来源-使用国际组织或外国政府资金') zjlyjtjjzztz = Column(Float, comment='资金来源-集体经济组织投资') zjlywstz = Column(Float, comment='资金来源-外商(国)投资') zjlyggttz = Column(Float, comment='资金来源-港澳台投资') zjlysytz = Column(Float, comment='资金来源-私(民)营投资') zjlyqtzjly = Column(Float, comment='资金来源-其他资金来源') add_time = Column(DateTime, comment='新增时间') cd_time = Column(DateTime, comment='增量时间') cd_operation = Column(String, default='', comment='增量标识') cd_batch = Column(String, default='', comment='批次号') sign = Column(String, server_default='', default='', comment='HMACSM3数值') class Config: orm_mode = True class EmergencyExpertInfo(Base): __tablename__ = 'emergency_expert_info' id = Column(Integer, primary_key=True, autoincrement=True, comment='序号') name = Column(String(255), nullable=False, comment='姓名') county = Column(String(255), comment='所属区县') expert_type = Column(String(255), comment='专家类型') honorary_title = Column(String(255), comment='荣誉称号') unit = Column(String(255), comment='单位') position = Column(String(255), comment='职位') professional_title = Column(String(255), comment='职称') specialty = Column(String(255), comment='擅长事故类型') rescue_experience = Column(Text, comment='救援经历') birth_date = Column(Date, comment='出生日期') work_start_date = Column(Date, comment='工作时间') certificate_issue_date = Column(Date, comment='发证日期') professional_group = Column(String(255), comment='专业分组') professional_field = Column(String(255), comment='专业领域') work_phone = Column(String(20), comment='工作电话') home_phone = Column(String(20), comment='住宅电话') mobile_phone = Column(String(20), comment='移动电话') email = Column(String(255), comment='电子邮箱') contact_address = Column(String(255), comment='联系地址') longitude = Column(Float, comment='经度') latitude = Column(Float, comment='纬度') class RescueTeams(Base): __tablename__ = 'rescue_teams' id = Column(Integer, primary_key=True, autoincrement=True, comment='ID') name = Column(String(255), nullable=False, comment='名称') team_type = Column(String(100), comment='救援单位类型') professional_category = Column(String(1000), comment='队伍专业类别') team_category = Column(String(100), comment='队伍类别') team_attribute = Column(String(100), comment='队伍属性') team_level = Column(String(100), comment='队伍层级') affiliated_unit = Column(String(255), comment='所属单位') leader_name = Column(String(100), comment='负责人姓名') leader_phone = Column(String(255), comment='负责人联系电话') city = Column(String(100), comment='地市') district = Column(String(100), comment='区县') main_equipment = Column(String(500), comment='主要装备') number_of_people = Column(Integer, comment='人数') address = Column(String(255), comment='地址') description = Column(Text, comment='描述') longitude = Column(Float, comment='经度') latitude = Column(Float, comment='纬度') s_last_updatetime = Column(DateTime, comment='最后更新时间') del_flag = Column(String(2), comment='删除标识,0未删除,2删除') create_by = Column(String(255), comment='创建者') create_time = Column(DateTime, comment='创建时间') update_by = Column(String(255), comment='更新者') class YzyMsgQueueSk(Base): """ 粤政易消息队列(数科) """ __tablename__ = "yzy_msg_queue_sk" id = Column(Integer, primary_key=True, autoincrement=True) request_id = Column(String, default='', server_default='', comment='消息ID') yzy_userid = Column(String, default='', server_default='', comment='粤政易用户ID') title = Column(String, default='', server_default='', comment='标题') content = Column(Text, default='', server_default='', comment='消息体') detail_url = Column(String, default='', server_default='', comment='跳转URL') create_time = Column(DateTime, server_default=func.now(), comment='数据创建时间') sent_time = Column(String, comment='发送时间') sent_status = Column(Integer, default=0, server_default='0', comment='发送状态 0 待发 1发送中 2 发送成功 9 发送失败') errcode = Column(Integer, default=0, server_default='0', comment='错误代码') errmsg = Column(String, default='', server_default='', comment='错误提示') class Config: orm_mode = True class MiningCompany(Base): __tablename__ = 'mining_company' id = Column(Integer, primary_key=True, comment='id') company_name = Column(String(255), comment='矿山企业名称') usci = Column(String(18), comment='企业统一社会信用代码') province = Column(String(50), comment='省') city = Column(String(50), comment='市') area = Column(String(50), comment='县') production_status = Column(String(50), comment='生产状态') primary_mineral_types = Column(String(50), comment='主要矿种') mining_method = Column(String(50), comment='开采方式') development_method = Column(String(50), comment='开拓方式') scale = Column(String(50), comment='矿山规模') name = Column(String(50), comment='姓名') phone = Column(String(20), comment='联系方式') longitude = Column(Float, comment='经度') latitude = Column(Float, comment='纬度') formatted_address = Column(String(255), comment='地址') safety_mgmt_headcount = Column(Integer, comment='安全管理人数') mining_license_start = Column(Date, comment='采矿证起始日期') mining_license_end = Column(Date, comment='采矿证失效日期') production_capacity = Column(String(100), comment='生产规模') mining_area = Column(Float, comment='矿区面积(km²)') safety_license_start = Column(Date, comment='安全生产许可证起始日期') safety_license_end = Column(Date, comment='安全生产许可证失效日期') safety_license_no = Column(String(50), comment='安全生产许可证证号') license_scope = Column(Text, comment='许可范围') issuing_authority = Column(String(100), comment='发证单位') economic_type = Column(String(50), comment='企业经济类型') business_scope = Column(Text, comment='生产经营范围') seismic_intensity = Column(String(10), comment='地震烈度') net_fixed_assets = Column(Float, comment='固定资产净值(万元)') max_underground_headcount = Column(Integer, comment='设计最大单班下井人数') safety_staff_count = Column(Integer, comment='安全管理人员数量') daily_production_staff = Column(Integer, comment='日常生产人员数量') special_operation_staff = Column(Integer, comment='特种作业人员数量') hydrogeological_condition = Column(String(50), comment='水文地质条件') safety_risk_level = Column(String(20), comment='安全风险等级') remark = Column(Text, comment='备注') s_last_updatetime = Column(TIMESTAMP, server_default=func.current_timestamp(), comment='最后更新时间') class MiningAccidentDetail(Base): __tablename__ = 'mining_accident_detail' id = Column(BigInteger, primary_key=True, comment='主键') accident_name = Column(String(200), comment='事故名称') company_name = Column(String(200), comment='事发企业') district = Column(String(100), comment='区县') longitude = Column(Float, comment='经度') # 9位小数,可按需调整 latitude = Column(Float, comment='纬度') accident_type = Column(String(50), comment='事故类别') mgmt_category = Column(String(50), comment='管理分类') sector = Column(String(50), comment='门类') major_category = Column(String(50), comment='大类') accident_summary = Column(Text, comment='事故概况') accident_level = Column(String(20), comment='事故等级') accident_time = Column(DateTime, comment='事发时间') accident_cause = Column(Text, comment='事发原因') secondary_accident = Column(String(50), default='0', comment='次生衍生事故') accident_location = Column(String(255), comment='事发地点') injured_count = Column(Integer, default=0, comment='受伤人数') missing_count = Column(Integer, default=0, comment='失踪人数') death_count = Column(Integer, default=0, comment='死亡人数') direct_economic_loss = Column(Float, default=0.00, comment='直接经济损失(万元)') disposal_process = Column(Text, comment='处置过程') remark = Column(Text, comment='备注') s_last_updatetime = Column(DateTime, server_default=func.current_timestamp(), comment='最后更新时间')