Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mancheng
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
mancheng
Commits
2370d495
Commit
2370d495
authored
Feb 22, 2023
by
dong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix20230220
parent
3a387437
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
918 additions
and
240 deletions
+918
-240
apps/__init__.py
+2
-0
apps/models.py
+205
-55
apps/view_choose/choose_view.py
+2
-1
apps/view_index/view.py
+106
-38
apps/view_map/view.py
+151
-146
apps/view_xiaocx/__init__.py
+6
-0
apps/view_xiaocx/view.py
+446
-0
No files found.
apps/__init__.py
View file @
2370d495
...
...
@@ -98,6 +98,7 @@ def creat_app(config_name):
from
apps.manage
import
api_power
from
apps.inves_manage
import
api_manage
# from apps.view_mobile import api_mobile
from
apps.view_xiaocx
import
api_xiaocx
app
.
register_blueprint
(
api_user
,
url_prefix
=
'/api/user'
)
app
.
register_blueprint
(
api_radar
,
url_prefix
=
'/api/radar'
)
# 产业招商雷达
...
...
@@ -110,5 +111,6 @@ def creat_app(config_name):
app
.
register_blueprint
(
api_power
,
url_prefix
=
"/api/power"
)
app
.
register_blueprint
(
api_manage
,
url_prefix
=
"/api/manage"
)
# app.register_blueprint(api_mobile, url_prefix="/api/mobile")
app
.
register_blueprint
(
api_xiaocx
,
url_prefix
=
"/api/xiaocx"
)
return
app
apps/models.py
View file @
2370d495
...
...
@@ -152,6 +152,7 @@ class Company(db.Model):
__tablename__
=
"company"
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
doc
=
'企业主键id'
,
comment
=
'企业主键id'
)
# 企业
company_name
=
db
.
Column
(
db
.
String
(
255
),
doc
=
'企业名'
,
comment
=
'企业名'
)
# 企业名
chain_master
=
db
.
Column
(
db
.
String
(
20
),
doc
=
'链主企业'
,
comment
=
'链主企业'
)
status
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'经营状态'
,
comment
=
'经营状态'
)
# 经营状态
legal
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'法定代表人'
,
comment
=
'法定代表人'
)
# 法定代表人
capital
=
db
.
Column
(
db
.
String
(
255
),
doc
=
'注册资本,22万美元'
,
comment
=
'注册资本,22万美元'
)
# 注册资本,22万美元
...
...
@@ -611,8 +612,9 @@ class Project(BaseModel, db.Model):
project_stage_id
=
db
.
Column
(
db
.
Integer
,
doc
=
'项目阶段id:落地项目为1,招商项目为2'
,
comment
=
'项目阶段id:落地项目为1,招商项目为2'
)
name
=
db
.
Column
(
db
.
String
(
255
),
doc
=
'工程名'
,
comment
=
'工程名'
)
# 一.工程名
district
=
db
.
Column
(
db
.
String
(
255
),
doc
=
'区县名称'
,
comment
=
'区县名称'
)
# 二.县区
type
=
db
.
Column
(
db
.
String
(
255
),
doc
=
'工程类型'
,
comment
=
'工程类型'
)
# 三.(1)工程类型
money
=
db
.
Column
(
db
.
String
(
255
),
doc
=
'项目投资金额'
,
comment
=
'项目投资金额'
)
# 三.(2)项目投资金额
attract_industry
=
db
.
Column
(
db
.
String
(
255
),
doc
=
'招引业态'
,
comment
=
'招引业态'
)
# 三.(2)项目投资金额
type
=
db
.
Column
(
db
.
String
(
255
),
doc
=
'工程类型'
,
comment
=
'工程类型'
)
# 三.(1)工程类型
background
=
db
.
Column
(
db
.
Text
,
doc
=
'项目背景'
,
comment
=
'项目背景'
)
# 三.(3)项目背景
content
=
db
.
Column
(
db
.
Text
,
doc
=
'项目的具体内容'
,
comment
=
'项目的具体内容'
)
# 三.(4)项目的具体内容
way
=
db
.
Column
(
db
.
Text
,
doc
=
'拟引资方式及内容'
,
comment
=
'拟引资方式及内容'
)
# 四.拟引资方式及内容
...
...
@@ -916,103 +918,209 @@ 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
ZaitiLand
(
db
.
Model
):
__tablename_
=
"zaiti_land"
__table_args__
=
({
'comment'
:
'产业载体-土地数据表'
})
# 添加表注释
__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
))
name
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'土地名称'
)
lng
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'经度'
)
lat
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'维度'
)
code
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'土地编码'
)
district
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'所属县区'
)
development_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'所属开发区'
)
location
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'土地位置'
)
land_use
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'用地四至'
)
nature
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'用地性质(工业用地/商服用地/物流仓储用地/科研用地/居住用地)(包括用地性质类别代码)'
)
area
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'用地面积(净用地面积)(公顷)'
)
surface_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'地上控制建面(㎡)'
)
plot_ratio
=
db
.
Column
(
db
.
String
(
10
),
comment
=
'容积率'
)
greening_rate
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'绿化率'
)
density
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'建筑密度'
)
height_permitted
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'限高(㎡)'
)
transfer_year
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'出让年限'
)
develop_degree
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'用地开发程度(请详细描述几通一平)'
)
investment_intensity
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'投资强度(万元/亩)'
)
output_intensity
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'产出强度(万元/亩)'
)
tax
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'地均税收(万元/亩)'
)
linkman
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'联系人'
)
telephone
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'联系方式'
)
red_line_map
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'用地红线图'
)
other_requirements
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'其他要求'
)
# 产业载体-楼宇数据
class
ZaitiBuild
(
db
.
Model
):
__tablename_
=
"zaiti_build"
__table_args__
=
({
'comment'
:
'产业载体-楼宇数据表'
})
# 添加表注释
__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
))
name
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'楼宇名称'
)
lng
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'经度'
)
lat
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'维度'
)
district
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'所属县区'
)
development_area
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'所属开发区'
)
buide_type
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'楼宇类型(商铺/写字楼/其他)'
)
level
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'写字楼等级(甲/乙/其他)'
)
address
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'详细地址(地址需填写准确、详细、精准)'
)
build_time
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'建成时间(年)'
)
land_area
=
db
.
Column
(
db
.
String
(
10
),
comment
=
'总占地面积(㎡)'
)
build_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'总建筑面积(㎡)'
)
single_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'单层面积(㎡)'
)
empty_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'闲置面积(㎡)'
)
layer_num
=
db
.
Column
(
db
.
Integer
,
comment
=
'总层数'
)
carport
=
db
.
Column
(
db
.
Integer
,
comment
=
'车位(个)'
)
elevator
=
db
.
Column
(
db
.
Integer
,
comment
=
'电梯(部)'
)
is_water
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'是否已通水(是/否)'
)
is_electric
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'是否已通电(是/否)'
)
is_warm
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'是否已通暖(是/否)'
)
is_gas
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'是否已通燃气(是/否)'
)
is_internet
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'是否已通网络(是/否)'
)
is_divide
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'是否可以分割(是/否)'
)
attract_industry
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'拟招引产业'
)
cooperation_model
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'合作模式(出租/出售/转让)'
)
rent
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'租金(元/平米/天)'
)
property_fee
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'物业费(元/平米/月)'
)
linkman
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'联系人'
)
telephone
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'联系方式'
)
build_pic
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'楼宇图片'
)
# 产业载体-
楼宇
数据
# 产业载体-
厂房
数据
class
ZaitiFactory
(
db
.
Model
):
__tablename_
=
"zaiti_factory"
__table_args__
=
({
'comment'
:
'产业载体-厂房数据表'
})
# 添加表注释
__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
))
name
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'厂房名称'
)
lng
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'经度'
)
lat
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'维度'
)
district
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'所属县区'
)
development_area
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'所属开发区'
)
buide_type
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'厂房类型(单层/多层/混合层)'
)
is_standard
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'是否标准化厂房(是/否)'
)
address
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'详细地址(地址需填写准确、详细、精准)'
)
build_time
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'建成时间(年)'
)
land_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'总占地面积(㎡)'
)
build_area
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'总建筑面积(㎡)'
)
empty_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'闲置面积(㎡)'
)
layer_num
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'总层数'
)
factory_structure
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'建筑结构(混凝土框架、钢结构、砖混、砖混钢筋、钢筋混凝土、轻钢)'
)
width
=
db
.
Column
(
db
.
String
(
10
),
comment
=
'跨度(m)'
)
high
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'层高(m)'
)
bearing
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'承重(kg/㎡)'
)
is_water
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'是否已通水(是/否)'
)
is_electric
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'是否已通电(是/否)'
)
is_warm
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'是否已通暖(是/否)'
)
is_gas
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'是否已通燃气(是/否)'
)
is_internet
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'是否已通网络(是/否)'
)
is_car
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'是否可安装天车'
)
elevator
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'电梯(部)'
)
attract_industry
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'拟招引产业(下拉筛选)'
)
settled_enterprise
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'已入驻企业(企业全称,使用面积)'
)
cooperation_model
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'合作模式(出租/出售/转让)'
)
rent
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'租金(元/平米/天)'
)
linkman
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'联系人'
)
telephone
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'联系方式'
)
factory_pic
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'厂房图片'
)
# 雷达评估页行业在不同地区的测评分数
class
EvaluationNodeData
(
db
.
Model
):
__tablename_
=
"evaluation_data"
__table_args__
=
({
'comment'
:
'产业招商雷达-产业评估'
})
# 添加表注释
__table_args__
=
({
'comment'
:
'产业招商雷达-产业评估'
})
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
doc
=
'主键id'
,
comment
=
'主键id'
)
c_type
=
db
.
Column
(
db
.
Integer
,
index
=
True
,
doc
=
'行业id'
,
comment
=
'行业id'
)
# 行业id
c_type
=
db
.
Column
(
db
.
Integer
,
index
=
True
,
doc
=
'行业id'
,
comment
=
'行业id'
)
province
=
db
.
Column
(
db
.
String
(
32
),
index
=
True
,
doc
=
'省份'
,
comment
=
'省份'
)
# 省份
city
=
db
.
Column
(
db
.
String
(
32
),
index
=
True
,
doc
=
'城市'
,
comment
=
'城市'
)
# 城市
district
=
db
.
Column
(
db
.
String
(
32
),
index
=
True
,
doc
=
'区域'
,
comment
=
'区域'
)
# 区域
province
=
db
.
Column
(
db
.
String
(
32
),
index
=
True
,
doc
=
'省份'
,
comment
=
'省份'
)
city
=
db
.
Column
(
db
.
String
(
32
),
index
=
True
,
doc
=
'城市'
,
comment
=
'城市'
)
district
=
db
.
Column
(
db
.
String
(
32
),
index
=
True
,
doc
=
'区域'
,
comment
=
'区域'
)
product
=
db
.
Column
(
db
.
String
(
32
),
index
=
True
,
doc
=
'产品名'
,
comment
=
'产品名'
)
# 产品名
score
=
db
.
Column
(
db
.
Integer
,
doc
=
'综合分'
,
comment
=
'综合分'
)
# 综合分
product
=
db
.
Column
(
db
.
String
(
32
),
index
=
True
,
doc
=
'产品名'
,
comment
=
'产品名'
)
score
=
db
.
Column
(
db
.
Integer
,
doc
=
'综合分'
,
comment
=
'综合分'
)
# 选址评分部分--企业聚合度
class
CompanyIndustryPoint
(
db
.
Model
):
__tablename_
=
"company_industry_point"
__table_args__
=
({
'comment'
:
'选址评分部分--企业聚合度数据表'
})
# 添加表注释
__table_args__
=
({
'comment'
:
'选址评分部分--企业聚合度数据表'
})
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
doc
=
'主键id'
,
comment
=
'主键id'
)
district
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'区县园区名'
,
comment
=
'区县园区名'
)
# 区县园区名
point
=
db
.
Column
(
db
.
Float
,
doc
=
'分数'
,
comment
=
'分数'
)
# 分数
f_type
=
db
.
Column
(
db
.
Integer
,
doc
=
'类型,对应产业导航nid'
,
comment
=
'类型,对应产业导航nid'
)
# 类型,对应产业导航nid
district
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'区县园区名'
,
comment
=
'区县园区名'
)
point
=
db
.
Column
(
db
.
Float
,
doc
=
'分数'
,
comment
=
'分数'
)
f_type
=
db
.
Column
(
db
.
Integer
,
doc
=
'类型,对应产业导航nid'
,
comment
=
'类型,对应产业导航nid'
)
# 360企业画像--下拉框内容数据表(企业类型,资质,上市状态,融资轮次)
class
Property
(
db
.
Model
):
__tablename_
=
"property"
__table_args__
=
({
'comment'
:
'360企业画像--下拉框内容数据表'
})
# 添加表注释
__table_args__
=
({
'comment'
:
'360企业画像--下拉框内容数据表'
})
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
doc
=
'主键id'
,
comment
=
'主键id'
)
name
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'字段名'
,
comment
=
'字段名'
)
# 字段名
nid
=
db
.
Column
(
db
.
Integer
,
doc
=
'字段id'
,
comment
=
'字段id'
)
# 字段id
sid
=
db
.
Column
(
db
.
Integer
,
doc
=
'字段类型id'
,
comment
=
'字段类型id'
)
# 字段类型id 1企业类型,2企业资质,3上市状态,4融资轮次
statu
=
db
.
Column
(
db
.
Integer
,
doc
=
'状态:1启动,2禁用'
,
comment
=
'状态:1启动,2禁用'
)
# 状态 1启动,2禁用
name
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'字段名'
,
comment
=
'字段名'
)
nid
=
db
.
Column
(
db
.
Integer
,
doc
=
'字段id'
,
comment
=
'字段id'
)
sid
=
db
.
Column
(
db
.
Integer
,
doc
=
'字段类型id'
,
comment
=
'字段类型id'
)
statu
=
db
.
Column
(
db
.
Integer
,
doc
=
'状态:1启动,2禁用'
,
comment
=
'状态:1启动,2禁用'
)
# 查找历史表
# class SearchList(BaseModel, db.Model):
# __tablename__ = "search_list"
# __table_args__ = ({'comment': '360企业画像--查找历史数据表'})
# 添加表注释
# __table_args__ = ({'comment': '360企业画像--查找历史数据表'})
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True, doc='主键id', comment='主键id')
# history = db.Column(db.String(128), doc='用户搜索历史', comment='用户搜索历史') # 用户搜索历史
...
...
@@ -1831,3 +1939,45 @@ class OperationLog(db.Model):
action
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'记录"导入"的动作用于备注(每月十五号前是否进行提报导入)的是和否'
)
read_type
=
db
.
Column
(
db
.
Integer
,
comment
=
'消息类型(用于消息提醒) 0未读,1已读,3已读状态一天后转为历史消息'
)
time
=
db
.
Column
(
db
.
DateTime
,
default
=
''
,
comment
=
'转为已读状态的时间(用于消息提醒)'
)
# [小程序]推介会
class
IntroductionMeet
(
db
.
Model
):
__tablename_
=
"introduction_meet"
__table_args__
=
({
'comment'
:
'小程序-推介会数据表'
})
# 添加表注释
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
comment
=
'主键id'
)
name
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'推介会名字'
)
time
=
db
.
Column
(
db
.
String
(
100
),
default
=
''
,
comment
=
'时间段'
)
organizer
=
db
.
Column
(
db
.
String
(
20
),
default
=
''
,
comment
=
'举办方'
)
img_url
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'推介会封面'
)
video_url
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'推介会介绍'
)
info
=
db
.
Column
(
db
.
Text
,
comment
=
'推介会介绍'
)
# [小程序]招商资讯--数据通报、工作动态
class
InvestmentInformation
(
db
.
Model
):
__tablename__
=
"investment_information"
__table_args__
=
({
'comment'
:
'小程序-招商资讯数据表'
})
# 添加表注释
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
comment
=
'主键id'
)
name
=
db
.
Column
(
db
.
String
(
200
),
comment
=
'招商资讯名字'
)
flag
=
db
.
Column
(
db
.
Integer
,
comment
=
'类型 1数据通报, 2工作动态'
)
time
=
db
.
Column
(
db
.
String
(
100
),
default
=
''
,
comment
=
'时间段'
)
source
=
db
.
Column
(
db
.
String
(
20
),
default
=
''
,
comment
=
'来源'
)
content
=
db
.
Column
(
db
.
Text
,
comment
=
'正文'
)
# [小程序]客户咨询信息表
class
CustomerConsultation
(
db
.
Model
):
__tablename__
=
"customer_consultation"
__table_args__
=
({
'comment'
:
'小程序-客户咨询信息表'
})
# 添加表注释
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
comment
=
'主键id'
)
project_name
=
db
.
Column
(
db
.
String
(
200
),
comment
=
'项目名称'
)
investor
=
db
.
Column
(
db
.
Integer
,
comment
=
'投资方名称'
)
investor_place
=
db
.
Column
(
db
.
String
(
100
),
default
=
''
,
comment
=
'投资方所在地'
)
project_type
=
db
.
Column
(
db
.
String
(
200
),
default
=
''
,
comment
=
'项目类型'
)
investment_volume
=
db
.
Column
(
db
.
Text
,
comment
=
'总投资额'
)
basic_information
=
db
.
Column
(
db
.
Text
,
comment
=
'项目方基本情况'
)
land_area
=
db
.
Column
(
db
.
Text
,
comment
=
'拟落地区域'
)
flag
=
db
.
Column
(
db
.
Integer
,
comment
=
'是否已回复 0否1是'
)
reply_content
=
db
.
Column
(
db
.
Text
,
comment
=
'回复内容'
)
apps/view_choose/choose_view.py
View file @
2370d495
...
...
@@ -9,7 +9,7 @@ from apps.models import *
from
apps.utils.response_code
import
RET
# from apps.utils.es_language import *
# from apps.view_carrier import api_carrier
from
apps.util
import
verify_identity
,
verify_token
from
apps.util
import
verify_identity
,
verify_token
,
login_required
from
apps.view_choose
import
api_address
"""选址评估页面"""
...
...
@@ -342,6 +342,7 @@ def search_build():
# 全部搜索功能
@api_address.route
(
"/SearchAll"
,
methods
=
[
"POST"
])
@login_required
def
search_all
():
req_dict
=
request
.
get_json
()
key_words
=
req_dict
[
'key_words'
]
# 关键字
...
...
apps/view_index/view.py
View file @
2370d495
...
...
@@ -68,52 +68,120 @@ def data_notification():
"index_5.shtml"
,
# 第6页
"index_6.shtml"
,
# 第7页
]
data_list1
=
[]
headers
=
{
'User-Agent'
:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54'
}
data_list
=
[]
for
page_index
in
page_html_list
:
url
=
"http://zsj.jcgov.gov.cn/sjtb/sjtb/{}"
.
format
(
page_index
)
headers
=
{
'User-Agent'
:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54'
}
try
:
respose
=
requests
.
get
(
url
,
headers
=
headers
)
respose
.
encoding
=
'utf-8'
if
respose
.
status_code
==
200
:
html_etree
=
etree
.
HTML
(
respose
.
text
)
# handeled_html_str = etree.tostring(html_etree).decode()
# print(handeled_html_str)
data_list
=
[]
content_name_list
=
html_etree
.
xpath
(
'//div[@class="newslist newslistdixx"]//span[@class="list_newstitle"]/a/text()'
)
content_url_list
=
html_etree
.
xpath
(
'//div[@class="newslist newslistdixx"]//span[@class="list_newstitle"]/a/@href'
)
i
=
0
for
content_name
in
content_name_list
:
data_dic
=
{
"content_name"
:
content_name
,
"content_url"
:
content_url_list
[
i
]
.
replace
(
'./'
,
'http://zsj.jcgov.gov.cn/sjtb/sjtb/'
)}
data_list
.
append
(
data_dic
)
i
+=
1
data_list1
=
data_list
+
data_list1
try
:
respose
=
requests
.
get
(
url
,
headers
=
headers
)
respose
.
encoding
=
'utf-8'
if
respose
.
status_code
==
200
:
html_etree
=
etree
.
HTML
(
respose
.
text
)
handeled_html_str
=
etree
.
tostring
(
html_etree
)
.
decode
()
print
(
handeled_html_str
)
content_name_list
=
html_etree
.
xpath
(
'//div[@class="newslist newslistdixx"]//span[@class="list_newstitle"]/a/text()'
)
content_url_list
=
html_etree
.
xpath
(
'//div[@class="newslist newslistdixx"]//span[@class="list_newstitle"]/a/@href'
)
time_list
=
html_etree
.
xpath
(
'//div[@class="newslist newslistdixx"]//span[2]/text()'
)
i
=
0
for
content_name
in
content_name_list
:
data_dic
=
{
"content_name"
:
content_name
,
"content_url"
:
content_url_list
[
i
]
.
replace
(
'./'
,
'http://zsj.jcgov.gov.cn/sjtb/sjtb/'
),
"time"
:
time_list
[
i
]
}
data_list
.
append
(
data_dic
)
i
+=
1
continue
continue
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"获取成功"
,
data
=
data_list1
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
# # 存入数据库
# inform_obj = InvestmentInformation()
# for data in data_list:
# inform_obj.name = data['content_name']
# inform_obj.flag = 1
# inform_obj.time = data['time']
# inform_obj.source = data['']
# inform_obj.info = data['']
# db.session.add(inform_obj)
# db.session.commit()
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"获取成功"
,
data
=
data_list
)
# 工作动态
@api_attract.route
(
"/WorkTrend"
,
methods
=
[
"GET"
])
def
work_trend
():
page_html_list
=
[
"index.shtml"
]
for
i
in
range
(
1
,
25
):
html_index
=
'index_{}.shtml'
.
format
(
i
)
page_html_list
.
append
(
html_index
)
headers
=
{
'User-Agent'
:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54'
}
data_list
=
[]
for
page_index
in
page_html_list
:
url
=
"http://zsj.jcgov.gov.cn/xwdt/zhxx/{}"
.
format
(
page_index
)
try
:
respose
=
requests
.
get
(
url
,
headers
=
headers
)
respose
.
encoding
=
'utf-8'
if
respose
.
status_code
==
200
:
html_etree
=
etree
.
HTML
(
respose
.
text
)
# handeled_html_str = etree.tostring(html_etree).decode()
# print(handeled_html_str)
content_name_list
=
html_etree
.
xpath
(
'//div[@class="newslist newslistdixx"]//span[@class="list_newstitle"]/a/text()'
)
content_url_list
=
html_etree
.
xpath
(
'//div[@class="newslist newslistdixx"]//span[@class="list_newstitle"]/a/@href'
)
time_list
=
html_etree
.
xpath
(
'//div[@class="newslist newslistdixx"]//span[2]/text()'
)
i
=
0
for
content_name
in
content_name_list
:
content_url
=
content_url_list
[
i
]
.
replace
(
'./'
,
'http://zsj.jcgov.gov.cn/xwdt/zhxx/'
)
content_html
=
requests
.
get
(
content_url
,
headers
=
headers
)
content_html
.
encoding
=
'utf-8'
if
content_html
.
status_code
==
200
:
html_etree1
=
etree
.
HTML
(
content_html
.
text
)
# handeled_html_str = etree.tostring(html_etree1).decode()
# print(handeled_html_str)
content_info_list
=
html_etree1
.
xpath
(
'//div[@class="view TRS_UEDITOR trs_paper_default trs_web"]/p/text()'
)
content_info1
=
''
for
content_info
in
content_info_list
:
content_info1
+=
content_info
data_dic
=
{
"content_name"
:
content_name
,
"content_info"
:
content_info1
,
"time"
:
time_list
[
i
][
1
:
-
1
]
}
data_list
.
append
(
data_dic
)
i
+=
1
continue
continue
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
# # 存入数据库
for
data
in
data_list
:
inform_obj
=
InvestmentInformation
()
inform_obj
.
name
=
data
[
'content_name'
]
inform_obj
.
flag
=
2
inform_obj
.
time
=
data
[
'time'
]
inform_obj
.
source
=
'晋城市投资促进中心'
inform_obj
.
content
=
data
[
'content_info'
]
db
.
session
.
add
(
inform_obj
)
db
.
session
.
commit
()
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"获取成功"
,
data
=
data_list
)
def
get_jjzb
(
district
,
flag
):
'''经济指标数据'''
# year1 = datetime.now().year - 1
# year2 = datetime.now().year
#
# years = ''
# if year == year1:
# years = str(year) + '年'
# if year == year2:
# month = datetime.now().month
# if month == 1:
# years = str(year) + '年' + str(month) + '月'
# else:
# years = str(year) + '年1-' + str(month) + '月'
# years = '2022年1-10月'
try
:
if
not
district
or
district
==
'晋城市'
:
datas
=
City
.
query
.
filter_by
(
area
=
'晋城市'
,
flag
=
flag
)
.
first
()
...
...
apps/view_map/view.py
View file @
2370d495
from
elasticsearch
import
Elasticsearch
from
flask
import
g
,
current_app
,
request
,
jsonify
,
session
from
sqlalchemy
import
or_
,
and_
...
...
@@ -9,6 +10,7 @@ from apps.utils.neo4j_conn import conn_neo4j, neo4j_dict
import
json
import
requests
from
apps
import
db
,
constants
,
redis_store
from
apps.view_360company.view
import
create_body
'''本页接口使用全国企业库enterprise'''
graph
=
conn_neo4j
()
...
...
@@ -460,148 +462,151 @@ def attract_enterprise():
# 全国企业列表(Es)
# @api_map.route('/AttractEnterpriseEs', methods=['POST'])
# def attract_enterprise_es():
# req_dict = request.get_json()
# inid = req_dict.get("inid") # 行业id
# company_name = req_dict.get("company_name") # 产业产品名称筛选
# entype = req_dict.get("entype") # 企业类型id
# qualificat = req_dict.get("qualificat") # 企业资质id
# quoted = req_dict.get("quoted") # 上市板块(A股,1)(创业股,2)(港股,3)(新三股,4)(新四股,5)(中小板,6)
# product = req_dict.get("product") # 产业产品选择
#
# area = req_dict.get("area") # ["省","市","区"]
# province = area[0]
# city = area[1]
# district = area[2]
# page = req_dict.get("page") # 分页页码
# perpage = req_dict.get("perpage") # 分页大小
# if not all([page, perpage]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# # 页数
# if not page:
# page = 1
# page = int(page)
# page = (page - 1) * per_page
#
# args_query = dict() # 查询字段
# args_term = dict() # 条件字典
#
# args_query["company_name"] = "公司"
# # 搜索框
# if company:
# args_query["company_name"] = company
#
# if f_name:
# args_term['f_name'] = f_name
# # 公司资质
# if qualificat:
# if qualificat == 1:
# args_term['isfive'] = 1
# if qualificat == 2:
# args_term['quoted_company'] = 1
# if qualificat == 3:
# args_term['fianacing'] = 1
# if qualificat == 4:
# args_term['high_new'] = 1
# if qualificat == 5:
# args_term['tbe'] = 1
# if qualificat == 6:
# args_term['dengl'] = 1
# if qualificat == 7:
# args_term['unicorn'] = 1
# # 注册资本
# if capital_id:
# args_term['capital_id'] = capital_id
# # 上市状态
# if public_id:
# args_term['public_id'] = public_id
# # 省
# if province:
# args_term['province'] = province
# # 市
# if city:
# args_term['city'] = city
# # 区
# if district:
# args_term['district'] = district
#
# # 成立时间
# if yearid:
# args_term['yearid'] = yearid
# # 融资轮次
# if roundid:
# args_term['roundid'] = roundid
# # 企业状态
# if status:
# args_term['status'] = status
# # 企业规模
# if scale_range:
# args_term['scale_range'] = scale_range
# # 公司类型
# if entypeid:
# args_term['entypeid'] = entypeid
#
# body = create_body(page, per_page, args_query, args_term)
# if not company:
# del body["query"]["bool"]["must"][0]
#
# try:
# es = Elasticsearch([{'host': '39.100.39.50', 'port': 9200}])
#
# # data = es.search(index="jincheng_pictext_index_202301131004_a6181e52", body=body)
# data = es.search(index="jincheng_pictext_index_202302151628_bedd5ee8", body=body)
# data_list = []
# # print(data_list)
# size = data["hits"]['total']
#
# # 数据的列表添加进去
# for i in data["hits"]['hits']:
# if company:
# # 判断高亮,然后添加
# data_list.append({
# "id": i["_source"]["mysql_id"],
# "company": i["highlight"]["company_name"][0] if "company_name" in i["highlight"] else i["_source"][
# "company_name"],
# "area": i["_source"]["province"] + i["_source"]["city"] + i["_source"]["district"],
# "createtime": i["_source"]["build_date"],
# "legal": i["_source"]["legal"],
# "capital": i["_source"]["capital"],
# "entype": i["_source"]["entype"],
# "address": i["_source"]["address"],
# "telephone": i["_source"]["telephone"],
# "high_new": '高新技术企业' if i["_source"]["high_new"] == "1" else '',
# "tbe": '科技型中小企业' if i["_source"]["tbe"] == "1" else '',
# "fianacing": '融资企业' if i["_source"]["fianacing"] == "1" else '',
# "quoted_company": '上市企业' if i["_source"]["quoted_company"] == "1" else '',
# "dengl": '瞪羚企业' if i["_source"]["dengl"] == "1" else '',
# "unicorn": '独角兽企业' if i["_source"]["unicorn"] == "1" else '',
# "isfive": '500强企业' if i["_source"]["isfive"] == '1' else '',
# })
# else:
# data_list.append({
# "id": i["_source"]["mysql_id"],
# "company": i["_source"]["company_name"],
# "area": i["_source"]["province"] + i["_source"]["city"] + i["_source"]["district"],
# "createtime": i["_source"]["build_date"],
# "legal": i["_source"]["legal"],
# "capital": i["_source"]["capital"],
# "entype": i["_source"]["entype"],
# "address": i["_source"]["address"],
# "telephone": i["_source"]["telephone"],
# "high_new": '高新技术企业' if i["_source"]["high_new"] == "1" else '',
# "tbe": '科技型中小企业' if i["_source"]["tbe"] == "1" else '',
# "fianacing": '融资企业' if i["_source"]["fianacing"] == "1" else '',
# "quoted_company": '上市企业' if i["_source"]["quoted_company"] == "1" else '',
# "dengl": '瞪羚企业' if i["_source"]["dengl"] == "1" else '',
# "unicorn": '独角兽企业' if i["_source"]["unicorn"] == "1" else '',
# "isfive": '500强企业' if i["_source"]["isfive"] == '1' else '',
# })
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="es数据库错误")
# data = {
# "data": data_list, "size": size
# }
# return jsonify(code=RET.OK, msg="查找成功", data=data)
\ No newline at end of file
@api_map.route
(
'/AttractEnterpriseEs'
,
methods
=
[
'POST'
])
def
attract_enterprise_es
():
req_dict
=
request
.
get_json
()
inid
=
req_dict
.
get
(
"inid"
)
# 行业id
company_name
=
req_dict
.
get
(
"company_name"
)
# 产业产品名称筛选
entype
=
req_dict
.
get
(
"entype"
)
# 企业类型id
qualificat
=
req_dict
.
get
(
"qualificat"
)
# 企业资质id
quoted
=
req_dict
.
get
(
"quoted"
)
# 上市板块(A股,1)(创业股,2)(港股,3)(新三股,4)(新四股,5)(中小板,6)
product
=
req_dict
.
get
(
"product"
)
# 产业产品选择
area
=
req_dict
.
get
(
"area"
)
# ["省","市","区"]
province
=
area
[
0
]
city
=
area
[
1
]
district
=
area
[
2
]
page
=
req_dict
.
get
(
"page"
)
# 分页页码
perpage
=
req_dict
.
get
(
"perpage"
)
# 分页大小
if
not
all
([
page
,
perpage
]):
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"参数不完整"
)
# 页数
if
not
page
:
page
=
1
page
=
int
(
page
)
page
=
(
page
-
1
)
*
perpage
args_query
=
dict
()
# 查询字段
args_term
=
dict
()
# 条件字典
args_query
[
"company_name"
]
=
"公司"
# 搜索框
if
company_name
:
args_query
[
"company_name"
]
=
company_name
if
inid
:
args_term
[
'c_type'
]
=
inid
if
entype
:
args_term
[
'entype'
]
=
entype
if
quoted
:
args_term
[
'public_id'
]
=
quoted
if
product
:
args_term
[
'product'
]
=
product
# 公司资质
if
qualificat
:
if
qualificat
==
1
:
args_term
[
'isfive'
]
=
1
if
qualificat
==
2
:
args_term
[
'quoted_company'
]
=
1
if
qualificat
==
3
:
args_term
[
'fianacing'
]
=
1
if
qualificat
==
4
:
args_term
[
'high_new'
]
=
1
if
qualificat
==
5
:
args_term
[
'tbe'
]
=
1
if
qualificat
==
6
:
args_term
[
'dengl'
]
=
1
if
qualificat
==
7
:
args_term
[
'unicorn'
]
=
1
# 省
if
province
:
args_term
[
'province'
]
=
province
# 市
if
city
:
args_term
[
'city'
]
=
city
# 区
if
district
:
args_term
[
'district'
]
=
district
# # 成立时间
# if yearid:
# args_term['yearid'] = yearid
# # 融资轮次
# if roundid:
# args_term['roundid'] = roundid
# # 企业状态
# if status:
# args_term['status'] = status
# # 企业规模
# if scale_range:
# args_term['scale_range'] = scale_range
# # 公司类型
# if entypeid:
# args_term['entypeid'] = entypeid
body
=
create_body
(
page
,
perpage
,
args_query
,
args_term
)
if
not
company_name
:
del
body
[
"query"
][
"bool"
][
"must"
][
0
]
try
:
es
=
Elasticsearch
([{
'host'
:
'39.100.39.50'
,
'port'
:
9200
}])
# data = es.search(index="jincheng_pictext_index_202301131004_a6181e52", body=body)
data
=
es
.
search
(
index
=
"jincheng_pictext_index_202302151628_bedd5ee8"
,
body
=
body
)
data_list
=
[]
# print(data_list)
size
=
data
[
"hits"
][
'total'
]
# 数据的列表添加进去
for
i
in
data
[
"hits"
][
'hits'
]:
if
company_name
:
# 判断高亮,然后添加
data_list
.
append
({
"id"
:
i
[
"_source"
][
"mysql_id"
],
"company"
:
i
[
"highlight"
][
"company_name"
][
0
]
if
"company_name"
in
i
[
"highlight"
]
else
i
[
"_source"
][
"company_name"
],
"area"
:
i
[
"_source"
][
"province"
]
+
i
[
"_source"
][
"city"
]
+
i
[
"_source"
][
"district"
],
"createtime"
:
i
[
"_source"
][
"build_date"
],
"legal"
:
i
[
"_source"
][
"legal"
],
"capital"
:
i
[
"_source"
][
"capital"
],
"entype"
:
i
[
"_source"
][
"entype"
],
"address"
:
i
[
"_source"
][
"address"
],
"telephone"
:
i
[
"_source"
][
"telephone"
],
"high_new"
:
'高新技术企业'
if
i
[
"_source"
][
"high_new"
]
==
"1"
else
''
,
"tbe"
:
'科技型中小企业'
if
i
[
"_source"
][
"tbe"
]
==
"1"
else
''
,
"fianacing"
:
'融资企业'
if
i
[
"_source"
][
"fianacing"
]
==
"1"
else
''
,
"quoted_company"
:
'上市企业'
if
i
[
"_source"
][
"quoted_company"
]
==
"1"
else
''
,
"dengl"
:
'瞪羚企业'
if
i
[
"_source"
][
"dengl"
]
==
"1"
else
''
,
"unicorn"
:
'独角兽企业'
if
i
[
"_source"
][
"unicorn"
]
==
"1"
else
''
,
"isfive"
:
'500强企业'
if
i
[
"_source"
][
"isfive"
]
==
'1'
else
''
,
})
else
:
data_list
.
append
({
"id"
:
i
[
"_source"
][
"mysql_id"
],
"company"
:
i
[
"_source"
][
"company_name"
],
"area"
:
i
[
"_source"
][
"province"
]
+
i
[
"_source"
][
"city"
]
+
i
[
"_source"
][
"district"
],
"createtime"
:
i
[
"_source"
][
"build_date"
],
"legal"
:
i
[
"_source"
][
"legal"
],
"capital"
:
i
[
"_source"
][
"capital"
],
"entype"
:
i
[
"_source"
][
"entype"
],
"address"
:
i
[
"_source"
][
"address"
],
"telephone"
:
i
[
"_source"
][
"telephone"
],
"high_new"
:
'高新技术企业'
if
i
[
"_source"
][
"high_new"
]
==
"1"
else
''
,
"tbe"
:
'科技型中小企业'
if
i
[
"_source"
][
"tbe"
]
==
"1"
else
''
,
"fianacing"
:
'融资企业'
if
i
[
"_source"
][
"fianacing"
]
==
"1"
else
''
,
"quoted_company"
:
'上市企业'
if
i
[
"_source"
][
"quoted_company"
]
==
"1"
else
''
,
"dengl"
:
'瞪羚企业'
if
i
[
"_source"
][
"dengl"
]
==
"1"
else
''
,
"unicorn"
:
'独角兽企业'
if
i
[
"_source"
][
"unicorn"
]
==
"1"
else
''
,
"isfive"
:
'500强企业'
if
i
[
"_source"
][
"isfive"
]
==
'1'
else
''
,
})
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"es数据库错误"
)
data
=
{
"data"
:
data_list
,
"size"
:
size
}
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"查找成功"
,
data
=
data
)
\ No newline at end of file
apps/view_xiaocx/__init__.py
0 → 100644
View file @
2370d495
from
flask
import
Blueprint
# 创建蓝图对象
api_xiaocx
=
Blueprint
(
"api_xiaocx"
,
__name__
)
from
.
import
view
apps/view_xiaocx/view.py
0 → 100644
View file @
2370d495
from
flask
import
current_app
,
request
,
jsonify
from
apps.view_radar
import
api_radar
from
apps.models
import
*
from
sqlalchemy
import
extract
,
or_
,
and_
from
sqlalchemy.sql
import
func
from
apps.util
import
login_required
from
apps.utils.response_code
import
RET
from
datetime
import
datetime
import
datetime
from
apps
import
db
,
constants
,
redis_store
from
apps.utils.neo4j_conn
import
conn_neo4j
from
apps.view_xiaocx
import
api_xiaocx
# 首页搜索
@api_xiaocx.route
(
'/IndexSearch'
,
methods
=
[
'POST'
])
# @login_required
def
index_search
():
req_dict
=
request
.
get_json
()
carrier_type
=
req_dict
.
get
(
"carrier_type"
)
# 载体类型 1地块,2楼宇,3厂房,4园区,5项目
carrier_name
=
req_dict
.
get
(
"carrier_name"
)
# 载体名称
district
=
req_dict
.
get
(
"district"
)
# 所属区县
industry
=
req_dict
.
get
(
"industry"
)
# 产业类型
investment_volume_list
=
req_dict
.
get
(
"investment_volume_list"
)
# 投资额区间 [1, 0-0.5]
nature
=
req_dict
.
get
(
"nature"
)
# 土地性质
area
=
req_dict
.
get
(
"area"
)
# 土地面积 [10, 20 ]
build_area
=
req_dict
.
get
(
"industry"
)
# 建筑面积 [0, 10000]
rent
=
req_dict
.
get
(
"industry"
)
# 租金 [0, 1.5]
zone_level
=
req_dict
.
get
(
"zone_level"
)
# 园区级别
page
=
req_dict
.
get
(
"page"
)
# page
perpage
=
req_dict
.
get
(
"perpage"
)
# perpage
data
=
[]
try
:
if
carrier_type
==
1
:
land_obj_list
=
ZaitiLand
.
query
.
filter
(
ZaitiLand
.
name
==
carrier_name
if
carrier_name
else
text
(
''
),
ZaitiLand
.
nature
==
nature
if
nature
else
text
(
''
),
ZaitiLand
.
area
[
0
]
==
float
(
area
)
if
area
[
0
]
else
text
(
''
),
ZaitiLand
.
area
[
1
]
==
float
(
area
)
if
area
[
1
]
else
text
(
''
),
)
.
paginate
(
page
,
perpage
)
.
items
data
=
[{
"id"
:
land_obj
.
id
,
"name"
:
land_obj
.
name
,
"district"
:
land_obj
.
district
,
"nature"
:
land_obj
.
nature
,
"area"
:
land_obj
.
area
,
"lng"
:
land_obj
.
lng
,
"lat"
:
land_obj
.
lat
,
}
for
land_obj
in
land_obj_list
]
if
carrier_type
==
2
:
build_obj_list
=
ZaitiBuild
.
query
.
filter
(
ZaitiBuild
.
name
==
carrier_name
if
carrier_name
else
text
(
''
),
ZaitiBuild
.
attract_industry
==
industry
if
industry
else
text
(
''
),
ZaitiBuild
.
build_area
>
build_area
[
0
]
if
build_area
[
0
]
else
text
(
''
),
ZaitiBuild
.
build_area
<=
build_area
[
1
]
if
build_area
[
1
]
else
text
(
''
),
ZaitiBuild
.
rent
>
rent
[
0
]
if
rent
[
0
]
else
text
(
''
),
ZaitiBuild
.
rent
<=
rent
[
1
]
if
rent
[
1
]
else
text
(
''
)
)
.
paginate
(
page
,
perpage
)
.
items
data
=
[{
"id"
:
build_obj
.
id
,
"name"
:
build_obj
.
name
,
"district"
:
build_obj
.
district
,
"rent"
:
build_obj
.
rent
,
"area"
:
build_obj
.
build_area
,
"lng"
:
build_obj
.
lng
,
"lat"
:
build_obj
.
lat
,
}
for
build_obj
in
build_obj_list
]
if
carrier_type
==
3
:
factory_obj_list
=
ZaitiFactory
.
query
.
filter
(
ZaitiFactory
.
name
==
carrier_name
if
carrier_name
else
text
(
''
),
ZaitiFactory
.
attract_industry
==
industry
if
industry
else
text
(
''
),
ZaitiFactory
.
build_area
>
build_area
[
0
]
if
build_area
[
0
]
else
text
(
''
),
ZaitiFactory
.
build_area
<=
build_area
[
1
]
if
build_area
[
1
]
else
text
(
''
)
)
.
paginate
(
page
,
perpage
)
.
items
data
=
[{
"id"
:
factory_obj
.
id
,
"name"
:
factory_obj
.
name
,
"district"
:
factory_obj
.
district
,
"attract_industry"
:
factory_obj
.
attract_industry
,
"area"
:
factory_obj
.
factory_area
,
"lng"
:
factory_obj
.
lng
,
"lat"
:
factory_obj
.
lat
,
}
for
factory_obj
in
factory_obj_list
]
if
carrier_type
==
4
:
# 园区
zone_obj_list
=
Induzone
.
query
.
filter
(
Induzone
.
name
==
carrier_name
if
carrier_name
else
text
(
''
),
Induzone
.
navigat
==
industry
if
industry
else
text
(
''
),
Induzone
.
level
==
zone_level
if
zone_level
else
text
(
''
)
)
.
paginate
(
page
,
perpage
)
.
items
data
=
[{
"id"
:
zone_obj
.
id
,
"name"
:
zone_obj
.
name
,
"phone"
:
zone_obj
.
phone
,
"industry_position"
:
zone_obj
.
industry_position
,
"district"
:
zone_obj
.
district
,
"lng"
:
zone_obj
.
lng
,
"lat"
:
zone_obj
.
lat
,
}
for
zone_obj
in
zone_obj_list
]
if
carrier_type
==
5
:
# 项目
project_obj_list
=
Project
.
query
.
filter
(
Project
.
project_name
==
carrier_name
if
carrier_name
else
text
(
''
),
Project
.
district
==
district
if
district
else
text
(
''
),
Project
.
industry
==
industry
if
industry
else
text
(
''
),
Project
.
money
>
float
(
investment_volume_list
[
0
])
*
10000
if
investment_volume_list
[
0
]
else
text
(
''
),
Project
.
money
<=
float
(
investment_volume_list
[
1
])
*
10000
if
investment_volume_list
[
1
]
else
text
(
''
),
)
.
paginate
(
page
,
perpage
)
.
items
data
=
[{
"id"
:
project_obj
.
id
,
"name"
:
project_obj
.
name
,
"district"
:
project_obj
.
district
,
"money"
:
project_obj
.
money
,
"attract_industry"
:
project_obj
.
attract_industry
,
"lng"
:
project_obj
.
lng
,
"lat"
:
project_obj
.
lat
,
}
for
project_obj
in
project_obj_list
]
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"查询出错!"
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
data
,
msg
=
'数据查询成功!'
)
# 推介会列表
@api_xiaocx.route
(
'/IntroductionMeet'
,
methods
=
[
'POST'
])
# @login_required
def
introduction_meet
():
req_dict
=
request
.
get_json
()
page
=
req_dict
.
get
(
"page"
)
perpage
=
req_dict
.
get
(
"perpage"
)
try
:
meet_obj_list
=
IntroductionMeet
.
query
.
paginate
(
page
,
perpage
)
.
items
meet_count
=
IntroductionMeet
.
query
.
count
()
data
=
[{
"id"
:
meet_obj
.
id
,
"name"
:
meet_obj
.
name
,
"time"
:
meet_obj
.
time
,
"organizer"
:
meet_obj
.
organizer
,
"img_url"
:
meet_obj
.
img_url
,
# "info": meet_obj.info,
}
for
meet_obj
in
meet_obj_list
]
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"查询出错!"
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
{
"data"
:
data
,
"size"
:
meet_count
},
msg
=
'数据查询成功!'
)
# 推介会详情
@api_xiaocx.route
(
'/MeetDetail'
,
methods
=
[
'POST'
])
# @login_required
def
meet_detail
():
req_dict
=
request
.
get_json
()
_id
=
req_dict
.
get
(
"id"
)
try
:
meet_obj
=
IntroductionMeet
.
query
.
get
(
_id
)
data
=
{
"name"
:
meet_obj
.
name
,
"time"
:
meet_obj
.
time
,
"organizer"
:
meet_obj
.
organizer
,
"video_url"
:
meet_obj
.
video_url
,
"info"
:
meet_obj
.
info
}
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"查询出错!"
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
data
,
msg
=
'数据查询成功!'
)
# 招商资讯列表
@api_xiaocx.route
(
'/Information'
,
methods
=
[
'POST'
])
# @login_required
def
information
():
req_dict
=
request
.
get_json
()
page
=
req_dict
.
get
(
"page"
)
perpage
=
req_dict
.
get
(
"perpage"
)
try
:
inform_obj_list
=
InvestmentInformation
.
query
.
paginate
(
page
,
perpage
)
.
items
inform_count
=
InvestmentInformation
.
query
.
count
()
data
=
[{
"name"
:
inform_obj
.
name
,
"time"
:
inform_obj
.
time
,
# "source": inform_obj.source,
"info"
:
inform_obj
.
info
,
}
for
inform_obj
in
inform_obj_list
]
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"查询出错!"
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
{
"data"
:
data
,
"size"
:
inform_count
},
msg
=
'数据查询成功!'
)
# 招商资讯详情/最新一条时id传空
@api_xiaocx.route
(
'/InformationDetail'
,
methods
=
[
'POST'
])
# @login_required
def
information_detail
():
req_dict
=
request
.
get_json
()
_id
=
req_dict
.
get
(
"id"
)
try
:
if
_id
:
inform_obj
=
InvestmentInformation
.
query
.
get
(
_id
)
else
:
# 最新一条
inform_obj
=
InvestmentInformation
.
query
.
order_by
(
InvestmentInformation
.
id
.
desc
()
)
.
all
()[
0
]
data
=
{
"name"
:
inform_obj
.
name
,
"time"
:
inform_obj
.
time
,
"source"
:
inform_obj
.
source
,
"info"
:
inform_obj
.
info
,
}
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"查询出错!"
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
data
,
msg
=
'数据查询成功!'
)
# 重点企业列表
@api_xiaocx.route
(
'/CompanyList'
,
methods
=
[
'POST'
])
# @login_required
def
company_list
():
req_dict
=
request
.
get_json
()
page
=
req_dict
.
get
(
"page"
)
perpage
=
req_dict
.
get
(
"perpage"
)
try
:
company_obj_list
=
Company
.
query
.
paginate
(
page
,
perpage
)
.
items
company_count
=
Company
.
query
.
count
()
data
=
[{
"id"
:
company_obj
.
id
,
"name"
:
company_obj
.
name
}
for
company_obj
in
company_obj_list
]
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"查询出错!"
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
{
"data"
:
data
,
"size"
:
company_count
},
msg
=
'数据查询成功!'
)
# 重点企业详情
@api_xiaocx.route
(
'/CompanyDetail'
,
methods
=
[
'POST'
])
# @login_required
def
company_detail
():
req_dict
=
request
.
get_json
()
_id
=
req_dict
.
get
(
"id"
)
try
:
company_obj
=
Company
.
query
.
get
(
_id
)
data
=
{
"company_name"
:
company_obj
.
company_name
,
"chain_master"
:
company_obj
.
chain_master
,
"district"
:
company_obj
.
district
,
"lng"
:
company_obj
.
lng
,
"lat"
:
company_obj
.
lat
,
"address"
:
company_obj
.
address
,
"telephone"
:
company_obj
.
telephone
,
"company_info"
:
company_obj
.
company_info
,
"c_name"
:
company_obj
.
c_name
,
"zizhi"
:
list
(
filter
(
len
,
[
'是否高新技术企业'
if
company_obj
.
high_new
==
'1'
else
''
,
'是否科技型中小企业'
if
company_obj
.
tbe
==
'1'
else
''
,
'是否为省级民营科技企业'
if
company_obj
.
tbe_sjmy
==
'1'
else
''
,
'是否为有融资企业'
if
company_obj
.
fianacing
==
'1'
else
''
,
'是否上市企业'
if
company_obj
.
quoted_company
==
'1'
else
''
,
'是否为有专利企业'
if
company_obj
.
patent
==
'1'
else
''
,
'是否山西民营100强'
if
company_obj
.
sxmon
==
'1'
else
''
,
'是否为山西专精特新企业'
if
company_obj
.
zjtg
==
'1'
else
''
,
'是否为国家级专精特新小巨人企业'
if
company_obj
.
zjtg_gjjxjr
==
'1'
else
''
,
'是否为省级专精特新小巨人企业'
if
company_obj
.
zjtg_sjxjr
==
'1'
else
''
,
'独角兽企业'
if
company_obj
.
unicorn
==
'1'
else
''
,
'瞪羚'
if
company_obj
.
dengl
==
'1'
else
''
,
'是否中国500强'
if
company_obj
.
isfive
==
'1'
else
''
,
'是否山西100强'
if
company_obj
.
sxonhun
==
'1'
else
''
,
'规模以上企业'
if
company_obj
.
scale
==
'1'
else
''
,
'限额以上服务业'
if
company_obj
.
serve
==
'1'
else
''
]))
}
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"查询出错!"
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
data
,
msg
=
'数据查询成功!'
)
# 地块详情
@api_xiaocx.route
(
'/ZaitiDetail'
,
methods
=
[
'POST'
])
# @login_required
def
zaiti_detail
():
req_dict
=
request
.
get_json
()
flag
=
req_dict
.
get
(
"flag"
)
# 1地块,2楼宇,3厂房,4园区, 5项目
_id
=
req_dict
.
get
(
"id"
)
try
:
if
flag
==
1
:
land_obj
=
ZaitiLand
.
query
.
get
(
_id
)
data
=
{
"name"
:
land_obj
.
name
,
"lng"
:
land_obj
.
lng
,
"lat"
:
land_obj
.
lat
,
"district"
:
land_obj
.
district
,
"location"
:
land_obj
.
location
,
"nature"
:
land_obj
.
nature
,
"plot_ratio"
:
land_obj
.
plot_ratio
,
"develop_degree"
:
land_obj
.
develop_degree
,
"linkman"
:
land_obj
.
linkman
,
"telephone"
:
land_obj
.
telephone
}
if
flag
==
2
:
build_obj
=
ZaitiBuild
.
query
.
get
(
_id
)
data
=
{
"name"
:
build_obj
.
name
,
"lng"
:
build_obj
.
lng
,
"lat"
:
build_obj
.
lat
,
"district"
:
build_obj
.
district
,
"address"
:
build_obj
.
address
,
"build_area"
:
build_obj
.
build_area
,
"attract_industry"
:
build_obj
.
attract_industry
,
"rent"
:
build_obj
.
rent
,
"linkman"
:
build_obj
.
linkman
,
"telephone"
:
build_obj
.
telephone
}
if
flag
==
3
:
factory_obj
=
ZaitiFactory
.
query
.
get
(
_id
)
data
=
{
"name"
:
factory_obj
.
name
,
"lng"
:
factory_obj
.
lng
,
"lat"
:
factory_obj
.
lat
,
"district"
:
factory_obj
.
district
,
"address"
:
factory_obj
.
address
,
"land_area"
:
factory_obj
.
land_area
,
"build_area"
:
factory_obj
.
build_area
,
"empty_area"
:
factory_obj
.
empty_area
,
"factory_structure"
:
factory_obj
.
factory_structure
,
"width"
:
factory_obj
.
width
,
"high"
:
factory_obj
.
high
,
"attract_industry"
:
factory_obj
.
attract_industry
,
"rent"
:
factory_obj
.
rent
,
"linkman"
:
factory_obj
.
linkman
,
"telephone"
:
factory_obj
.
telephone
}
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"查询出错!"
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
data
,
msg
=
'数据查询成功!'
)
# 投资咨询
@api_xiaocx.route
(
'/Consultation'
,
methods
=
[
'POST'
])
# @login_required
def
consultation
():
req_dict
=
request
.
get_json
()
project_name
=
req_dict
.
get
(
"project_name"
)
investor
=
req_dict
.
get
(
"investor"
)
investor_place
=
req_dict
.
get
(
"investor_place"
)
project_type
=
req_dict
.
get
(
"project_type"
)
investment_volume
=
req_dict
.
get
(
"investment_volume"
)
basic_information
=
req_dict
.
get
(
"basic_information"
)
land_area
=
req_dict
.
get
(
"land_area"
)
try
:
cons_obj
=
CustomerConsultation
()
cons_obj
.
project_name
=
project_name
cons_obj
.
investor
=
investor
cons_obj
.
investor_place
=
investor_place
cons_obj
.
project_type
=
project_type
cons_obj
.
investment_volume
=
investment_volume
cons_obj
.
basic_information
=
basic_information
cons_obj
.
land_area
=
land_area
cons_obj
.
flag
=
0
db
.
session
.
add
(
cons_obj
)
db
.
session
.
commit
()
except
Enterprise
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"查询出错!"
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
'保存成功!'
)
# 投资咨询信息展示
@api_xiaocx.route
(
'/GetConsultation'
,
methods
=
[
'POST'
])
# @login_required
def
get_consultation
():
req_dict
=
request
.
get_json
()
page
=
req_dict
.
get
(
"page"
)
perpage
=
req_dict
.
get
(
"perpage"
)
try
:
cons_obj_list
=
CustomerConsultation
.
query
.
paginate
(
page
,
perpage
)
.
items
cons_count
=
CustomerConsultation
.
query
.
count
()
data
=
[{
"project_name"
:
cons_obj
.
project_name
,
"investor"
:
cons_obj
.
investor
,
"investor_place"
:
cons_obj
.
investor_place
,
"project_type"
:
cons_obj
.
project_type
,
"investment_volume"
:
cons_obj
.
investment_volume
,
"basic_information"
:
cons_obj
.
basic_information
,
"land_area"
:
cons_obj
.
land_area
,
"flag"
:
cons_obj
.
flag
,
"reply_content"
:
cons_obj
.
reply_content
,
}
for
cons_obj
in
cons_obj_list
]
except
Enterprise
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"查询出错!"
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
{
"data"
:
data
,
"size"
:
cons_count
},
msg
=
'查询成功!'
)
# 回复投资咨询
@api_xiaocx.route
(
'/ReplyConsultation'
,
methods
=
[
'POST'
])
# @login_required
def
reply_consultation
():
req_dict
=
request
.
get_json
()
reply_content
=
req_dict
.
get
(
"reply_content"
)
_id
=
req_dict
.
get
(
"id"
)
try
:
cons_obj
=
CustomerConsultation
.
query
.
get
(
_id
)
cons_obj
.
reply_content
=
reply_content
db
.
session
.
commit
()
except
Enterprise
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"回复信息保存出错!"
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
'回复信息保存成功。'
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment