Commit 6015a4ca by 赵宇

fix

parent 904b82da
......@@ -3,7 +3,7 @@ from flask import Blueprint
# 创建蓝图对象
api_atlas = Blueprint("api_atlas", __name__)
from . import view #
from . import view
from . import view_detail # 产业发展图谱下详情页
from . import view_es # 政策
from . import view_graph # 产业发展图谱业图谱
......
......@@ -3,20 +3,17 @@ from apps.atlas import api_atlas
from apps.util import login_required
from apps.utils.response_code import RET
from apps.models import *
from apps.utils.neo4j_conn import conn_neo4j,neo4j_dict
from apps.utils.neo4j_conn import conn_neo4j, neo4j_dict
from apps import redis_store
import json
graph = conn_neo4j()
'''行业名转换ptp字典两个 neo4j_dict line 164/177'''
def deleteDuplicate(li):
'''
列表[字典]去重
:param li:
:return:
'''
'''列表[字典]去重'''
temp_list = list(set([str(i) for i in li]))
li = [eval(i) for i in temp_list]
return li
......@@ -115,3 +112,537 @@ def industry_chain():
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据异常")
return jsonify(code=RET.OK, msg="获取成功", data=result)
# 点击产业联动显示企业
@api_atlas.route('/industry/enterprise', methods=['POST'])
# @login_required
def industry_enterprise():
'''骨干企业数据'''
req_dict = request.get_json()
inid = req_dict.get("inid") # 行业id
cate = req_dict.get("cate") # 行业等级,(高端设备等五个为"1",子行业为"2")
page = req_dict.get("page") # 分页页码
perpage = req_dict.get("perpage") # 分页大小
# entype = req_dict.get("entype") # 企业类型id
# qualificat = req_dict.get("qualificat") # 企业资质id
# capital = req_dict.get("capital") # 注册资本id
# quoted = req_dict.get("quoted") # 上市板块
# district = req_dict.get("district") # 太原市下区县
# yearid = req_dict.get("yearid") # 成立时间年限id
# roundid = req_dict.get("roundid") # 融资轮次id(天使/种子,1)(PreA/A+,2)(PreB/B+,3)(C轮以上,4)(收并购,5)(战略投资,6)(其他,7)
# product = req_dict.get("product") # 产业产品选择
# company_name = req_dict.get("company_name") # 产业产品名称筛选
sorts = req_dict.get("sorts") # 排序 sorts "1"按时间降序 ,“2”按热度降序
# 校验参数完整性
if not all([inid, cate, page, perpage]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
if cate == "1":
company = Company.query.filter_by(f_type=inid, city="晋城市")
else:
company = Company.query.filter_by(c_type=inid, city="晋城市")
# # 企业类型
# if entype:
# company = company.filter_by(entypeid=entype)
# # 企业资质
# if qualificat:
# if qualificat == 1:
# company = company.filter_by(high_new=1)
# if qualificat == 2:
# company = company.filter_by(tbe=1)
# if qualificat == 3:
# company = company.filter_by(quoted_company=1)
# if qualificat == 4:
# company = company.filter_by(sxonhun=1)
# if qualificat == 5:
# company = company.filter_by(isfive=1)
# if qualificat == 6:
# company = company.filter_by(unicorn=1)
# if qualificat == 7:
# company = company.filter_by(dengl=1)
# if qualificat == 8:
# company = company.filter_by(zjtg=1)
# if qualificat == 9:
# company = company.filter_by(scale=1)
# if qualificat == 10:
# company = company.filter_by(serve=1)
# # 注册资本
# if capital:
# company = company.filter_by(capital_id=capital)
# # 上市板块
# if quoted:
# company = company.filter_by(public_id=quoted)
# # 区域选择
# if district:
# company = company.filter_by(district=district)
# # 成立时间id
# if yearid:
# company = company.filter_by(yearid=yearid)
# # 融资轮次
# if roundid:
# company = company.filter_by(roundid=roundid)
# if company_name:
# company = company.filter(Company.company_name.like("%{}%".format(company_name)))
# if product:
# company = Company.query.filter(Company.product_all.like("%{}%".format(product)))
size = company.count()
if sorts == "1":
companys = company.order_by(Company.build_date.desc()).paginate(page, perpage).items # 企业热度倒序
else:
companys = company.order_by(Company.hots.desc()).paginate(page, perpage).items # 企业热度倒序
df = [{"id": i.id,
"company_name": i.company_name,
"hots": i.hots} for i in companys]
data = {"size": size, "df": df}
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
return jsonify(code=RET.OK, msg="获取成功", data=data)
# 点击产业创新资源联动显示 innovation resource
@api_atlas.route('/innovate/resource', methods=['POST'])
def industry_resource():
'''创新资源机构列表'''
req_dict = request.get_json()
inid = req_dict.get("inid") # 行业id
industry_level = req_dict.get("industry_level") # 行业等级,(父行业高端设备等五个为"1",子行业为"2")
select_flag = req_dict.get("select_flag") # 机构类型id. 高等院校1,科研机构2,创新平台3,产业服务平台4
page = req_dict.get("page") # 分页页码
perpage = req_dict.get("perpage") # 分页大小
# 校验参数完整性
if not all([inid, industry_level, select_flag, page, perpage]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
name = Industry.query.filter_by(nid=inid).first().oname
if select_flag == 1: # 高等院校
try:
if industry_level == "1":
college = College.query.filter(College.navigator.like("%{}%".format(name)))
else:
college = College.query.filter(College.navigat.like("%{}%".format(name)))
size = college.count()
college = college.paginate(page, perpage).items
data = {"df": [{"id": i.id,
"name": i.name,
"admin": i.admin,
"buildate": i.buildate,
"charge": i.charge,
"cate": i.category,
"nature": i.nature,
"ccode": i.ccode,
"address": i.address,
} for i in college],
"size": size}
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DATAERR, msg="参数错误")
elif select_flag == 2: # 科研机构
if industry_level == "1":
scientific = Scientific.query.filter(Scientific.navigator.like("%{}%".format(name)))
else:
scientific = Scientific.query.filter(Scientific.navigat.like("%{}%".format(name)))
size = scientific.count()
scientific = scientific.paginate(page, perpage).items
data = {"df": [{"id": i.id,
"name": i.name,
"admin": i.admin,
"telephone": i.telephone,
"fax": i.fax,
"postcode": i.postcode,
"address": i.address} for i in scientific],
"size": size}
return jsonify(code=RET.OK, msg="查询成功", data=data)
elif select_flag == 3: # 创新平台3
if industry_level == "1":
lab = Lab.query.filter(Lab.navigator.like("%{}%".format(name)))
else:
lab = Lab.query.filter(Lab.navigat.like("%{}%".format(name)))
size = lab.count()
lab = lab.paginate(page, perpage).items
data = {"df": [{"id": i.id,
"name": i.name,
"admin": i.admin,
"cate": i.cate,
"fax": i.fax,
"postcode": i.postcode,
"address": i.address} for i in lab],
"size": size}
return jsonify(code=RET.OK, msg="查询成功", data=data)
else:
return jsonify(code=RET.PARAMERR, msg="参数错误")
def get_data(name, industry_level, select_flag, page, perpage):
try:
if select_flag in [1, 2]: # 当选择行政区/园区时
if industry_level == "1": # 当选择的是父产业时
induzone = Induzone.query.filter(Induzone.navigator.like("%{}%".format(name)))
else: # 当选择的是子产业时
induzone = Induzone.query.filter(Induzone.navigat.like("%{}%".format(name)))
size = induzone.count() # 分页总数
induzone = induzone.paginate(page, perpage).items
if select_flag == 1:
# 封装行政区数据
admin_data = {"admin_data": [{
"id": i.id,
"region": i.region,
"area": i.area,
"address": i.address,
"cluster": i.cluster} for i in induzone],
"size": size}
return admin_data
if select_flag == 2:
# 封装园区数据
garden_data = {"garden": [{"id": i.id,
"name": i.name, # 园区名称
"region": i.region, # 所属地区
"phone": i.phone, # 联系电话
"level": i.level, # 园区级别
"cate": i.cate, # 园区类型
"address": i.address, } for i in induzone], # 园区地址
"size": size}
return garden_data
if select_flag == 3: # 当选择载体土地时
if industry_level == "1": # 当选择的是父产业时
land = ZaitiLand.query.filter(ZaitiLand.navigator.like("%{}%".format(name)))
else:
land = ZaitiLand.query.filter(ZaitiLand.navigat.like("%{}%".format(name)))
size = land.count() # 分页总数
land = land.paginate(page, perpage).items
# 封装土地数据
land_data = {"land_data": [{
"id": i.id,
"name": i.name,
"num": i.num,
"nature": i.nature,
"acreage": i.acreage,
"industry_type": i.industry_type,
"telephone": i.telephone
} for i in land], "size": size}
return land_data
if select_flag == 4: # 当选择载体楼宇时
if industry_level == "1": # 当选择的是父产业时
build = ZaitiBuild.query.filter(ZaitiBuild.navigator.like("%{}%".format(name)))
else:
build = ZaitiBuild.query.filter(ZaitiBuild.navigat.like("%{}%".format(name)))
size = build.count() # 分页总数
build = build.paginate(page, perpage).items
# 封装楼宇数据
build_data = {
"build_data": [{
"id": i.id,
"name": i.name,
"acreage": i.acreage,
"buide_type": i.buide_type,
"industry_type": i.industry_type,
"telephone": i.telephone,
"addr": i.addr,
} for i in build], "size": size
}
return build_data
if select_flag == 5: # 当选择载体厂房时
if industry_level == "1": # 当选择的是父产业时
factory = ZaitiFactory.query.filter(ZaitiFactory.navigator.like("%{}%".format(name)))
else:
factory = ZaitiFactory.query.filter(ZaitiFactory.navigat.like("%{}%".format(name)))
size = factory.count() # 分页总数
factory = factory.paginate(page, perpage).items
# 封装楼宇数据
factory_data = {
"factory_data": [{
"id": i.id,
"name": i.name,
"acreage": i.acreage,
"buide_type": i.buide_type,
"industry_type": i.industry_type,
"telephone": i.telephone,
"addr": i.addr,
} for i in factory], "size": size
}
return factory_data
except Exception as e:
print(e)
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 产业载体
@api_atlas.route('/carrier/zaiti', methods=['POST'])
def industry_zaiti():
'''产业载体数据'''
req_dict = request.get_json()
inid = req_dict.get("inid") # 行业id
industry_level = req_dict.get("industry_level") # 行业等级,(父行业高端设备等五个为"1",子行业为"2")
select_flag = req_dict.get("select_flag") # 1为行政区,2为园区,3为产业载体,4为土地,5为楼宇,6为厂房
page = req_dict.get("page") # 分页页码
perpage = req_dict.get("perpage") # 分页大小
# 校验参数完整性
if not all([page, perpage]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
if inid:
name = Industry.query.filter_by(nid=inid).first().oname # 获取导航对应的真名
try:
data = get_data(name, industry_level, select_flag, page, perpage)
return jsonify(code=RET.OK, msg="数据查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
else:
name = '煤层气' # 默认页面为煤层气的数据
try:
data = get_data(name, "1", 1, page, perpage)
return jsonify(code=RET.OK, msg="数据查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
# 产业政策
@api_atlas.route('/industry/indus_policy', methods=['POST'])
def industry_policy():
"""产业政策数据"""
req_dict = request.get_json()
inid = req_dict.get("inid") # 行业id
industry_level = req_dict.get("industry_level") # 行业等级,(父行业高端设备等五个为"1",子行业为"2")
page = req_dict.get("page") # 分页页码
perpage = req_dict.get("perpage") # 分页大小
# 校验参数完整性
if not all([page, perpage]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
indu_policy = ''
size = ''
name = Industry.query.filter_by(nid=inid).first().oname # 获取导航对应的真名
if industry_level == "1":
indu_policy = InduPolicy.query.filter(InduPolicy.navigator.like("%{}%".format(name)))
size = indu_policy.count() # 分页总数
indu_policy = indu_policy.paginate(page, perpage).items
if industry_level == "2":
indu_policy = InduPolicy.query.filter(InduPolicy.navigat.like("%{}%".format(name)))
size = indu_policy.count() # 分页总数
indu_policy = indu_policy.paginate(page, perpage).items
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 封装政策数据
policy_data = {
"policy_data": [{
"id": i.id,
"name": i.name,
"org": i.org,
"pubdate": i.pubdate
} for i in indu_policy],
"size": size
}
return jsonify(code=RET.OK, msg="政策数据查询成功", data=policy_data)
# 创新资源-高等院校详情
@api_atlas.route('/innovate/college_detail', methods=['POST'])
def get_college_detail():
req_dict = request.get_json()
college_id = req_dict.get('id')
try:
college = College.query.filter_by(id=college_id).first()
# 封装院校数据
data = {
"name": college.name, # 校名
"charge": college.charge, # 主管部门
"buildate": college.buildate, # 创办时间
"nature": college.nature, # 办学性质
"clas": college.clas, # 学校类别
"address": college.address, # 校址
"introduct": college.introduct, # 简介
"ccode": college.ccode, # 学校代码
"feature": college.feature, # 学校特色
"research": college.research, # 研究方向
"lng": college.lng, # 经度
"lat": college.lat # 纬度
}
return jsonify(code=RET.OK, msg='院校详情查询成功!', data=data)
except Exception as e:
current_app.logger.error(e)
# 创新资源-科研机构详情
@api_atlas.route('/innovate/scientific_detail', methods=['POST'])
def get_scientific_detail():
req_dict = request.get_json()
scientific_id = req_dict.get('id')
try:
scientific = Scientific.query.filter_by(id=scientific_id).first()
# 封装科研机构数据
data = {
"name": scientific.name, # 名称
"admin": scientific.admin, # 行政区
"telephone": scientific.telephone, # 联系电话
"fax": scientific.fax, # 传真
"postcode": scientific.postcode, # 邮编
"address": scientific.address, # 地址
"introduct": scientific.introduct, # 简介
"lng": scientific.lng, # 经度
"lat": scientific.lat # 纬度
}
return jsonify(code=RET.OK, msg='科研机构详情查询成功!', data=data)
except Exception as e:
current_app.logger.error(e)
# 创新资源-创新平台详情
@api_atlas.route('/innovate/Lab_detail', methods=['POST'])
def get_lab_detail():
req_dict = request.get_json()
lab_id = req_dict.get('id')
try:
lab = Lab.query.filter_by(id=lab_id).first()
# 封装创新平台数据
data = {
"name": lab.name, # 名称
"address": lab.address, # 地址
"introduct": lab.introduct, # 简介
"lng": lab.lng, # 经度
"lat": lab.lat # 纬度
}
return jsonify(code=RET.OK, msg='创新平台详情查询成功!', data=data)
except Exception as e:
current_app.logger.error(e)
# 产业载体-行政区详情信息
@api_atlas.route('/carrier/zaiti_detail', methods=['POST'])
def get_zaiti_detail_data():
req_dict = request.get_json()
id = req_dict.get('id')
cate_id = req_dict.get('cate_id') # 1为行政区,2为园区,3为土地,4为楼宇,5为厂房
print(cate_id)
if cate_id == 1:
try:
induzone = Induzone.query.filter_by(id=id).first()
data = {
"district": induzone.district,
"cate": induzone.cate,
"area": induzone.area,
"address": induzone.address,
"cluster": induzone.cluster
}
return jsonify(code=RET.OK, msg='行政区详情查询成功!', data=data)
except Exception as e:
current_app.logger.error(e)
if cate_id == 2:
try:
induzone = Induzone.query.filter_by(id=id).first()
data = {
"name": induzone.name, # 名称
"district": induzone.district, # 所属地区
"phone": induzone.phone, # 电话
"email": induzone.email,
"address": induzone.address, # 园区地址
"industry_position": induzone.industry_position, # 产业定位
"cate": induzone.cate, # 园区类型
"gdp": induzone.gdp, # GDP
"represent": induzone.represent, # 代表企业
"introduct": induzone.introduct, # 简介
"level": induzone.level, # 等级
"charge": induzone.charge, # 园区负责人
"site": induzone.site, # 园区所在地
"industry_type": induzone.industry_type, # 产业类型
"area": induzone.area, # 面积
"out_power": induzone.out_power, # 产出强度(万元/亩)
"invest_power": induzone.invest_power, # 亩均投资强度(万元/亩)
"value_product": induzone.value_product, # 亩均年产值(万元/亩)
"tax": induzone.tax, # 亩均年税收(万元/亩)
"indu_land": induzone.indu_land, # 工业土地均价(万元/亩)
"comm_land": induzone.comm_land, # 商办土地均价(万元/亩)
"highmag": induzone.highmag, # 高层管理人员(元/月)
"middlemag": induzone.middlemag, # 中级管理人员(元/月)
"worker": induzone.worker, # 普通员工(元/月)
"trans_facility": induzone.trans_facility, # 交通配套
"goods_trans": induzone.goods_trans, # 货物运输
"live_facility": induzone.live_facility, # 园区生活配套
"market": induzone.market, # 百货商场
"hotel_bus": induzone.hotel_bus, # 酒店商务
"medical": induzone.medical, # 医疗机构
"education": induzone.education, # 教育教育
}
return jsonify(code=RET.OK, msg='园区详情查询成功!', data=data)
except Exception as e:
current_app.logger.error(e)
if cate_id == 3:
try:
land = ZaitiLand.query.filter_by(id=id).first()
data = {
"num": land.num, # 编号
"name": land.name, # 地块名称
"addr": land.addr, # 地址
"nature": land.nature, # 土地性质
"acreage": land.acreage, # 面积
"target": land.target, # 规划指标
"age_limit": land.age_limit, # 出让年限
"industry_type": land.industry_type, # 产业类型
"telephone": land.telephone # 电话
}
return jsonify(code=RET.OK, msg='土地详情查询成功!', data=data)
except Exception as e:
current_app.logger.error(e)
if cate_id == 4:
try:
build = ZaitiBuild.query.filter_by(id=id).first()
data = {
"name": build.name, # 楼宇名称
"addr": build.addr, # 地址
"acreage": build.acreage, # 面积
"buide_type": build.buide_type, # 楼宇类型
"industry_type": build.industry_type, # 产业类型
"rate": build.rate, # 出租率
"telephone": build.telephone # 电话
}
return jsonify(code=RET.OK, msg='楼宇详情查询成功!', data=data)
except Exception as e:
current_app.logger.error(e)
if cate_id == 5:
try:
factory = ZaitiFactory.query.filter_by(id=id).first()
data = {
"name": factory.name, # 厂房名称
"addr": factory.addr, # 地址
"acreage": factory.acreage, # 面积
"structure": factory.structure, # 简介
"height": factory.height, # 高度
"bearing": factory.bearing, # 承重
"new_level": factory.new_level, # 新旧程度
"other": factory.other, # 其他
"industry_type": factory.industry_type, # 产业类型
"factory_type": factory.factory_type, # 厂房类型
"telephone": factory.telephone, # 电话
}
return jsonify(code=RET.OK, msg='厂房详情查询成功!', data=data)
except Exception as e:
current_app.logger.error(e)
......@@ -246,6 +246,69 @@ class CompanyCustomer(db.Model):
relation = db.Column(db.String(32), doc='关联关系', comment='关联关系')
# 晋城企业详情股权出质
class CompanyStock(db.Model):
__tablename_ = "company_stock"
__table_args__ = ({'comment': '晋城企业详情股权出质'}) # 添加表注释
id = db.Column(db.Integer, primary_key=True, autoincrement=True, doc='股权出质主键id', comment='股权出质主键id') # 企业
company_id = db.Column(db.Integer, doc='晋城企业id', comment='晋城企业id')
num = db.Column(db.String(32), doc='等级编号', comment='等级编号')
person = db.Column(db.String(10), doc='出质人', comment='出质人')
from_company = db.Column(db.String(25), doc='出质股权的企业', comment='出质股权的企业')
pledgee = db.Column(db.String(10), doc='质权人', comment='质权人')
amount = db.Column(db.Float, doc='出质股权数额(万元)', comment='出质股权数额(万元)')
datatime = db.Column(db.String(20), doc='登记日期', comment='登记日期')
status = db.Column(db.String(10), doc='状态', comment='状态')
# 晋城企业详情股权质押
class CompanyPledge(db.Model):
__tablename_ = "company_pledge"
__table_args__ = ({'comment': '晋城企业详情股权质押'}) # 添加表注释
id = db.Column(db.Integer, primary_key=True, autoincrement=True, doc='股权质押主键id', comment='股权质押主键id') # 企业
company_id = db.Column(db.Integer, doc='晋城企业id', comment='晋城企业id')
person1 = db.Column(db.String(10), doc='质押人', comment='质押人')
jion_company = db.Column(db.String(25), doc='参股企业', comment='参股企业')
person2 = db.Column(db.String(10), doc='质押权人', comment='质押权人')
number = db.Column(db.Float, doc='质押股份总额(股)', comment='质押股份总额(股)')
amount = db.Column(db.Float, doc='质押股份市值(元)', comment='质押股份市值(元)')
status = db.Column(db.String(10), doc='状态', comment='状态')
datatime = db.Column(db.String(20), doc='公告日期', comment='公告日期')
# 晋城企业详情担保信息
class CompanyDanbao(db.Model):
__tablename_ = "company_pledge"
__table_args__ = ({'comment': '晋城企业详情担保信息'}) # 添加表注释
id = db.Column(db.Integer, primary_key=True, autoincrement=True, doc='担保信息主键id', comment='担保信息主键id') # 企业
company_id = db.Column(db.Integer, doc='晋城企业id', comment='晋城企业id')
person1 = db.Column(db.String(10), doc='被担保方', comment='被担保方')
person2 = db.Column(db.String(10), doc='担保方', comment='担保方')
method = db.Column(db.String(10), doc='方式', comment='方式')
amount = db.Column(db.Float, doc='担保金额(万元)', comment='担保金额(万元)')
datatime = db.Column(db.String(20), doc='公告日期', comment='公告日期')
# 晋城企业详情专利信息
class CompanyPatent(db.Model):
__tablename_ = "company_pledge"
__table_args__ = ({'comment': '晋城企业详情专利信息'}) # 添加表注释
id = db.Column(db.Integer, primary_key=True, autoincrement=True, doc='专利信息主键id', comment='专利信息主键id') # 企业
company_id = db.Column(db.Integer, doc='晋城企业id', comment='晋城企业id')
name = db.Column(db.String(50), doc='发明名称', comment='发明名称')
type = db.Column(db.String(20), doc='类型', comment='类型')
status = db.Column(db.String(20), doc='法律状态', comment='法律状态')
num = db.Column(db.String(50), doc='申请号', comment='申请号')
day = db.Column(db.String(20), doc='申请日', comment='申请日')
open_num = db.Column(db.String(20), doc='公开号', comment='公开号')
datatime = db.Column(db.String(20), doc='公开日期', comment='公开日期')
person = db.Column(db.String(20), doc='发明人', comment='发明人')
# 产业导航目录
class Industry(db.Model):
__tablename_ = "industry"
......@@ -262,7 +325,7 @@ class Industry(db.Model):
entities = db.Column(db.Integer, doc='行业所包含细分行业实体数', comment='行业所包含细分行业实体数') # 行业所包含细分行业实体数
# 招商驾驶舱-区县经济指标表
# 招商驾驶舱-区县经济指标表/产业载体-行政区
class City(BaseModel, db.Model):
__tablename__ = "city"
__table_args__ = ({'comment': '招商驾驶舱-区县经济指标表'}) # 添加表注释
......@@ -379,9 +442,6 @@ class InduPolicy(db.Model):
sorts_level = db.Column(db.Integer, doc='发布机构排序', comment='发布机构排序') # 发布机构排序
# 产业现状图谱-园区数据表
class Induzone(db.Model):
__tablename_ = "induzone"
......@@ -391,6 +451,8 @@ class Induzone(db.Model):
name = db.Column(db.String(255), doc='园区名称', comment='园区名称') # 园区姓名
image = db.Column(db.String(255), doc='园区图片', comment='园区图片') # 园区单图链接http://192.168.132.165:5000/static/images/garden.jpg
phone = db.Column(db.String(255), doc='园区联系电话', comment='园区联系电话') # 园区联系电话
email = db.Column(db.String(30)) # 邮箱
address = db.Column(db.String(255), doc='园区地址', comment='园区地址') # 园区地址
industry_position = db.Column(db.String(255), doc='产业定位', comment='产业定位') # 产业定位
gdp = db.Column(db.Float, doc='GDP(亿元)', comment='GDP(亿元)') # GDP(亿元)
......@@ -414,7 +476,7 @@ class Induzone(db.Model):
# acreage = db.Column(db.Float, doc='规划面积(平方公里)', comment='规划面积(平方公里)') # 规划面积(平方公里)
# actarea = db.Column(db.Float, doc='建成面积(平方公里)', comment='建成面积(平方公里)') # 建成面积(平方公里)
# tax = db.Column(db.Float, doc='税收要求(万元/亩)', comment='税收要求(万元/亩)') # 税收要求(万元/亩)
# out_power = db.Column(db.Float, doc='产出强度(万元/亩)', comment='产出强度(万元/亩)') # 产出强度(万元/亩)
out_power = db.Column(db.Float, doc='产出强度(万元/亩)', comment='产出强度(万元/亩)') # 产出强度(万元/亩)
# indu_need = db.Column(db.String(255), doc='行业要求', comment='行业要求') # 行业要求
# fiscal = db.Column(db.Float, doc='财政收入(亿元)', comment='财政收入(亿元)') # 财政收入(亿元)
invest_power = db.Column(db.Float, doc='亩均投资强度(万元/亩)', comment='亩均投资强度(万元/亩)') # 投资强度(万元/亩)
......@@ -485,12 +547,6 @@ class Induzone(db.Model):
policy_point = db.Column(db.Float, doc='政策数的评分', comment='政策数的评分') # 政策数的评分
development_zone = db.Column(db.String(255), doc='所在开发区', comment='所在开发区') # 所在开发区
# 项目列表
# class Item(db.Model):
# __tablename_ = "item"
......@@ -641,157 +697,155 @@ class Induzone(db.Model):
# enterprise_id = db.Column(db.Integer, db.ForeignKey("enterprise.id"), primary_key=True)
#
#
# # 用户
# class User(BaseModel, db.Model):
# __tablename__ = "user"
#
# # 基本信息
# id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 用户编号
# name = db.Column(db.String(32), unique=True) # 用户名
# password_hash = db.Column(db.String(128)) # 加密的密码
# real_name = db.Column(db.String(32)) # 姓名
# age = db.Column(db.Integer) # 年龄
# sex = db.Column(db.Integer) # 性别,男1女2
# mobile = db.Column(db.String(11), unique=True) # 手机号
# email = db.Column(db.String(20)) # 邮箱
# # 个人中心的信息
# function = db.Column(db.Text) # 工作职能 ---个人中心
# flag = db.Column(db.Integer) # 普通1,政府2
# status = db.Column(db.Integer) # 通过1,在审2,驳回3
# # bused = db.Column(db.Integer) # 账户有无组织
# # 政府信息
# position = db.Column(db.String(128)) # 现任职务(职务)
# unit = db.Column(db.String(128)) # 现任工作机构、单位(政府机构,局)
# section = db.Column(db.String(128)) # 所在部门(部门)
# group = db.Column(db.String(128)) # 所在组
# level = db.Column(db.String(128)) # 职级(职级) 跟role_id对应
# leader = db.Column(db.String(32)) # 领导(直属领导)
#
# # 三方登陆唯一标识
# # 微信
# vxopenid = db.Column(db.String(128), unique=True) # 微信openid
# vxunionid = db.Column(db.String(128), unique=True) # 微信unionid
# # 角色(职级配置)
# role_id = db.Column(db.Integer, db.ForeignKey("role.id"))
# role = db.relationship("Role", backref=db.backref("users"))
#
# # # 钉钉
# # ddopenid = db.Column(db.String(128)) # 钉钉openid
# # ddunionid = db.Column(db.String(128)) # 钉钉unionid
# # dddingid = db.Column(db.String(128)) # 钉钉dingid
#
# # 用户关注行业(图谱)
# industry = db.relationship("Industry", secondary="user_industry", backref=db.backref('bindustry'))
# # 用户关注太原企业
# company = db.relationship("Company", secondary="user_company", backref=db.backref("bcompany"))
# # 用户关注全国企业
# enterprise = db.relationship("Enterprise", secondary="user_enterprise", backref=db.backref("benterprise"))
#
# @property
# def password(self):
# # 设置为只写的方式
# # return self.password_hash
# raise AttributeError('这个属性只能设置,不能读取')
#
# @password.setter
# def password(self, value):
# self.password_hash = generate_password_hash(value)
#
# def check_password(self, password):
# '''检验密码的正确性,传入参数为用户登录时填写的密码'''
# return check_password_hash(self.password_hash, password)
#
# # 生成token
# @staticmethod
# def create_token(user_id):
# """
# 生成token,生成方式( 内部配置的私钥+有效期+用户的id )
# :param user_id: 用户id
# :return:
# """
# # 第一个参数是内部的私钥,写在配置里,第二个参数是有效期(秒)
# s = Serializer(Config.SECRET_KEY, expires_in=Config.TOKEN_EXPIRATION)
# # 接收用户id转换与编码
# token = s.dumps({"id": user_id}).decode('ascii')
# print(token)
# return token
#
#
# # 角色(职位,职级)
# class Role(BaseModel, db.Model):
# __tablename__ = "role"
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 企业
# role_name = db.Column(db.String(255), unique=True) # 角色名
# role = db.Column(db.String(10), unique=True) # 权限值 000000 0位位职级123,后面为权限01
# info = db.Column(db.String(255)) # 权限说明
#
#
#
#
#
# 用户
class User(BaseModel, db.Model):
__tablename__ = "user"
__table_args__ = ({'comment': '用户信息表'}) # 添加表注释
# 基本信息
id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 用户编号
name = db.Column(db.String(32), unique=True) # 用户名
password_hash = db.Column(db.String(128)) # 加密的密码
real_name = db.Column(db.String(32)) # 姓名
age = db.Column(db.Integer) # 年龄
sex = db.Column(db.Integer) # 性别,男1女2
mobile = db.Column(db.String(11), unique=True) # 手机号
email = db.Column(db.String(20)) # 邮箱
# 个人中心的信息
function = db.Column(db.Text) # 工作职能 ---个人中心
flag = db.Column(db.Integer) # 普通1,政府2
status = db.Column(db.Integer) # 通过1,在审2,驳回3
# bused = db.Column(db.Integer) # 账户有无组织
# 政府信息
position = db.Column(db.String(128)) # 现任职务(职务)
unit = db.Column(db.String(128)) # 现任工作机构、单位(政府机构,局)
section = db.Column(db.String(128)) # 所在部门(部门)
group = db.Column(db.String(128)) # 所在组
level = db.Column(db.String(128)) # 职级(职级) 跟role_id对应
leader = db.Column(db.String(32)) # 领导(直属领导)
# 三方登陆唯一标识
# 微信
vxopenid = db.Column(db.String(128), unique=True) # 微信openid
vxunionid = db.Column(db.String(128), unique=True) # 微信unionid
# 角色(职级配置)
role_id = db.Column(db.Integer, db.ForeignKey("role.id"))
role = db.relationship("Role", backref=db.backref("users"))
# # 钉钉
# ddopenid = db.Column(db.String(128)) # 钉钉openid
# ddunionid = db.Column(db.String(128)) # 钉钉unionid
# dddingid = db.Column(db.String(128)) # 钉钉dingid
# 用户关注行业(图谱)
# industry = db.relationship("Industry", secondary="user_industry", backref=db.backref('bindustry'))
# 用户关注太原企业
# company = db.relationship("Company", secondary="user_company", backref=db.backref("bcompany"))
# 用户关注全国企业
# enterprise = db.relationship("Enterprise", secondary="user_enterprise", backref=db.backref("benterprise"))
@property
def password(self):
# 设置为只写的方式
# return self.password_hash
raise AttributeError('这个属性只能设置,不能读取')
@password.setter
def password(self, value):
self.password_hash = generate_password_hash(value)
def check_password(self, password):
'''检验密码的正确性,传入参数为用户登录时填写的密码'''
return check_password_hash(self.password_hash, password)
# 生成token
@staticmethod
def create_token(user_id):
"""
生成token,生成方式( 内部配置的私钥+有效期+用户的id )
:param user_id: 用户id
:return:
"""
# 第一个参数是内部的私钥,写在配置里,第二个参数是有效期(秒)
s = Serializer(Config.SECRET_KEY, expires_in=Config.TOKEN_EXPIRATION)
# 接收用户id转换与编码
token = s.dumps({"id": user_id}).decode('ascii')
print(token)
return token
# 角色(职位,职级)
class Role(BaseModel, db.Model):
__tablename__ = "role"
__table_args__ = ({'comment': '用户角色表'}) # 添加表注释
id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 企业
role_name = db.Column(db.String(255), unique=True) # 角色名
role = db.Column(db.String(10), unique=True) # 权限值 000000 0位位职级123,后面为权限01
info = db.Column(db.String(255)) # 权限说明
# 创新资源-高等院校(985,211,本科,高职专高)
class College(db.Model):
__tablename_ = "college"
__table_args__ = ({'comment': '创新资源-高等院校表'}) # 添加表注释
id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 省市区层级分类
category = db.Column(db.String(255)) # 学校类型 211工程院校1,普通本科2,高职专高3
cateid = db.Column(db.Integer) # 学校类型 211工程院校1,普通本科2,高职专高3
name = db.Column(db.String(255)) # 高等院校高职专科等机构名称
ccode = db.Column(db.String(255)) # 院校代码
buildate = db.Column(db.String(255)) # 创建时间
nature = db.Column(db.String(255)) # 办学性质
clas = db.Column(db.String(255)) # 学校类别
feature = db.Column(db.String(255)) # 学校特色
charge = db.Column(db.String(255)) # 主管部门
major = db.Column(db.String(255)) # 专业设置
faculty = db.Column(db.String(255)) # 院系设置
introduct = db.Column(db.Text) # 院校简介
address = db.Column(db.String(255)) # 所在地址
lng = db.Column(db.String(255)) # 经度
lat = db.Column(db.String(255)) # 纬度
# # 高等院校(985,211,本科,高职专高)
# class College(db.Model):
# __tablename_ = "college"
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 省市区层级分类
#
# category = db.Column(db.String(255)) # 学校类型 211工程院校1,普通本科2,高职专高3
# cateid = db.Column(db.Integer) # 学校类型 211工程院校1,普通本科2,高职专高3
# name = db.Column(db.String(255)) # 高等院校高职专科等机构名称
# ccode = db.Column(db.String(255)) # 院校代码
# buildate = db.Column(db.String(255)) # 创建时间
# nature = db.Column(db.String(255)) # 办学性质
# clas = db.Column(db.String(255)) # 学校类别
# feature = db.Column(db.String(255)) # 学校特色
# charge = db.Column(db.String(255)) # 主管部门
# major = db.Column(db.String(255)) # 专业设置
# faculty = db.Column(db.String(255)) # 院系设置
# introduct = db.Column(db.Text) # 院校简介
# address = db.Column(db.String(255)) # 所在地址
# lng = db.Column(db.String(255)) # 经度
# lat = db.Column(db.String(255)) # 纬度
#
# navigator = db.Column(db.String(255)) # 导航一
# navigat = db.Column(db.String(255)) # 导航二
# # navigatorid = db.Column(db.String(32)) # 导航一id
# # navigatid = db.Column(db.String(32)) # 导航二id
#
# research = db.Column(db.String(255)) # 研究方向
# admin = db.Column(db.String(255)) # 所在行政区
# developarea = db.Column(db.String(255)) # 所在开发区
#
#
# # 科研机构
# class Scientific(db.Model):
# __tablename_ = "scientific"
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# # oname = db.Column(db.String(64)) # 机构原名
# name = db.Column(db.String(255)) # 机构现名
# introduct = db.Column(db.Text) # 机构简介
# buildate = db.Column(db.DateTime) # 创建时间
# telephone = db.Column(db.String(255)) # 电话
# fax = db.Column(db.String(255)) # 传真
# postcode = db.Column(db.String(255)) # 邮编
# address = db.Column(db.String(255)) # 所在地址
# lng = db.Column(db.String(255)) # 经度
# lat = db.Column(db.String(255)) # 纬度
#
# research = db.Column(db.String(255)) # 研究方向
# admin = db.Column(db.String(255)) # 所在行政区
# developarea = db.Column(db.String(255)) # 所在开发区
#
# navigator = db.Column(db.String(255)) # 导航一
# navigat = db.Column(db.String(255)) # 导航二
# # navigatorid = db.Column(db.String(32)) # 导航一id
# # navigatid = db.Column(db.String(32)) # 导航二id
navigator = db.Column(db.String(255)) # 导航一
navigat = db.Column(db.String(255)) # 导航二
research = db.Column(db.String(255)) # 研究方向
admin = db.Column(db.String(255)) # 所在行政区
developarea = db.Column(db.String(255)) # 所在开发区
# 创新平台(实验室等)
# 创新资源-科研机构
class Scientific(db.Model):
__tablename_ = "scientific"
__table_args__ = ({'comment': '创新资源-科研机构表'}) # 添加表注释
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(255)) # 机构现名
introduct = db.Column(db.Text) # 机构简介
buildate = db.Column(db.DateTime) # 创建时间
telephone = db.Column(db.String(255)) # 电话
fax = db.Column(db.String(255)) # 传真
postcode = db.Column(db.String(255)) # 邮编
address = db.Column(db.String(255)) # 所在地址
lng = db.Column(db.String(255)) # 经度
lat = db.Column(db.String(255)) # 纬度
research = db.Column(db.String(255)) # 研究方向
admin = db.Column(db.String(255)) # 所在行政区
developarea = db.Column(db.String(255)) # 所在开发区
navigator = db.Column(db.String(255)) # 导航一
navigat = db.Column(db.String(255)) # 导航二
# 创新资源-创新平台(实验室等)
class Lab(db.Model):
__tablename_ = "lab"
__table_args__ = ({'comment': '创新资源-创新平台表'}) # 添加表注释
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
......@@ -800,6 +854,8 @@ class Lab(db.Model):
# 工程技术中心1,国际科技合作基地2,企业技术中心3,双创基地4,院士工作站5,质量检测与测量中心6,重点实验室7
name = db.Column(db.String(255)) # 机构现名
fax = db.Column(db.String(255)) # 传真
postcode = db.Column(db.String(255)) # 邮编
introduct = db.Column(db.Text) # 机构简介
address = db.Column(db.String(255)) # 所在地址
lng = db.Column(db.String(255)) # 经度
......@@ -814,9 +870,63 @@ class Lab(db.Model):
developarea = db.Column(db.String(255)) # 所在开发区
# 公共服务平台
# 产业载体-土地数据
class ZaitiLand(db.Model):
__tablename_ = "zaiti_land"
__table_args__ = ({'comment': '产业载体-土地数据表'}) # 添加表注释
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
num = db.Column(db.String(20))
name = db.Column(db.String(20))
addr = db.Column(db.String(50))
nature = db.Column(db.String(20))
acreage = db.Column(db.String(50))
target = db.Column(db.String(255))
age_limit = db.Column(db.String(20))
industry_type = db.Column(db.String(255))
telephone = db.Column(db.String(20))
navigator = db.Column(db.String(10))
navigat = db.Column(db.String(20))
# 产业载体-楼宇数据
class ZaitiBuild(db.Model):
__tablename_ = "zaiti_build"
__table_args__ = ({'comment': '产业载体-楼宇数据表'}) # 添加表注释
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(20))
addr = db.Column(db.String(50))
acreage = db.Column(db.String(50))
buide_type = db.Column(db.String(20))
industry_type = db.Column(db.String(255))
rate = db.Column(db.String(20))
telephone = db.Column(db.String(20))
navigator = db.Column(db.String(10))
navigat = db.Column(db.String(20))
# 产业载体-楼宇数据
class ZaitiFactory(db.Model):
__tablename_ = "zaiti_factory"
__table_args__ = ({'comment': '产业载体-厂房数据表'}) # 添加表注释
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(20))
addr = db.Column(db.String(50))
acreage = db.Column(db.String(50))
structure = db.Column(db.String(20))
height = db.Column(db.String(20))
bearing = db.Column(db.String(50))
new_level = db.Column(db.String(20))
other = db.Column(db.String(255))
industry_type = db.Column(db.String(20))
factory_type = db.Column(db.String(20))
telephone = db.Column(db.String(20))
navigator = db.Column(db.String(10))
navigat = db.Column(db.String(20))
# # 创新资源-双创平台
# class Platform(db.Model):
# __tablename_ = "platform"
# __table_args__ = ({'comment': '创新资源-双创平台表'}) # 添加表注释
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True)
#
......@@ -835,9 +945,9 @@ class Lab(db.Model):
# research = db.Column(db.String(255)) # 研究方向
# admin = db.Column(db.String(255)) # 所在行政区
# developarea = db.Column(db.String(255)) # 所在开发区
#
#
# # 资源机构的位置信息+research(产品词扩展)
# 资源机构的位置信息+research(产品词扩展)
# class Orgs(db.Model):
# __tablename_ = "orgs"
#
......@@ -851,8 +961,8 @@ class Lab(db.Model):
# research = db.Column(db.String(255)) # research
# navigator = db.Column(db.String(255)) # 导航一
# navigat = db.Column(db.String(255)) # 导航二
#
#
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment