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
904b82da
Commit
904b82da
authored
Dec 23, 2021
by
赵宇
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
ac661929
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
90 additions
and
303 deletions
+90
-303
apps/__init__.py
+2
-2
apps/atlas/view_graph.py
+18
-263
apps/models.py
+66
-0
apps/util.py
+1
-1
apps/utils/neo4j_conn.py
+3
-37
No files found.
apps/__init__.py
View file @
904b82da
...
@@ -89,7 +89,7 @@ def creat_app(config_name):
...
@@ -89,7 +89,7 @@ def creat_app(config_name):
# 注册蓝图,推迟导入,防止循环嵌套
# 注册蓝图,推迟导入,防止循环嵌套
from
apps.view_attract
import
api_attract
# 招商驾驶舱
from
apps.view_attract
import
api_attract
# 招商驾驶舱
# from apps.user_pc import api_user
# from apps.user_pc import api_user
#
from apps.atlas import api_atlas
from
apps.atlas
import
api_atlas
# from apps.radar import api_radar
# from apps.radar import api_radar
# from apps.attract import api_att
# from apps.attract import api_att
# from apps.view_360 import api_portraits
# from apps.view_360 import api_portraits
...
@@ -100,7 +100,7 @@ def creat_app(config_name):
...
@@ -100,7 +100,7 @@ def creat_app(config_name):
# app.register_blueprint(api_user, url_prefix='/api/user')
# app.register_blueprint(api_user, url_prefix='/api/user')
# app.register_blueprint(api_radar, url_prefix='/api/radar')
# app.register_blueprint(api_radar, url_prefix='/api/radar')
#
app.register_blueprint(api_atlas, url_prefix='/api/atlas')
app
.
register_blueprint
(
api_atlas
,
url_prefix
=
'/api/atlas'
)
# app.register_blueprint(api_att, url_prefix='/api/att')
# app.register_blueprint(api_att, url_prefix='/api/att')
#
#
app
.
register_blueprint
(
api_attract
,
url_prefix
=
'/api/attract/industry'
)
app
.
register_blueprint
(
api_attract
,
url_prefix
=
'/api/attract/industry'
)
...
...
apps/atlas/view_graph.py
View file @
904b82da
...
@@ -7,10 +7,10 @@ from apps.utils.neo4j_conn import conn_neo4j,neo4j_dict
...
@@ -7,10 +7,10 @@ from apps.utils.neo4j_conn import conn_neo4j,neo4j_dict
from
apps
import
redis_store
from
apps
import
redis_store
import
json
import
json
graph
=
conn_neo4j
()
graph
=
conn_neo4j
()
'''行业名转换ptp字典两个 neo4j_dict line 164/177'''
'''行业名转换ptp字典两个 neo4j_dict line 164/177'''
def
deleteDuplicate
(
li
):
def
deleteDuplicate
(
li
):
'''
'''
列表[字典]去重
列表[字典]去重
...
@@ -22,95 +22,27 @@ def deleteDuplicate(li):
...
@@ -22,95 +22,27 @@ def deleteDuplicate(li):
return
li
return
li
def
find_up
(
inid
,
name_query
,
relation
,
district
):
def
find_up
_thr
(
name_query
,
relation
):
if
relation
==
"中游行业"
:
if
relation
==
"中游行业"
:
relation_c
=
"下位产品"
relation_c
=
"下位产品"
else
:
else
:
relation_c
=
relation
relation_c
=
relation
sql
=
"match (n) -[r:`{}`]->(m) WHERE n.name='{}' return n.name,r.type,m.name"
.
format
(
relation_c
,
name_query
)
res
=
graph
.
run
(
sql
)
.
data
()
cnums
=
Company
.
query
.
filter_by
(
stream
=
"{}"
.
format
(
relation
[:
2
]),
c_type
=
inid
)
.
count
()
data
=
{
"clickable"
:
False
,
"node"
:
"{}"
.
format
(
relation
[:
2
]),
"level"
:
1
,
"subNodeList"
:
[],
"count"
:
cnums
}
past
=
list
()
for
it
in
res
:
productName
=
it
[
"m.name"
]
if
productName
in
past
:
continue
past
.
append
(
productName
)
if
district
:
erjicount
=
Company
.
query
.
filter_by
(
province
=
"山西省"
,
city
=
"太原市"
,
district
=
district
)
.
filter
(
Company
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
productName
)))
.
count
()
else
:
erjicount
=
Company
.
query
.
filter_by
(
province
=
"山西省"
,
city
=
"太原市"
)
.
filter
(
Company
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
productName
)))
.
count
()
node
=
{
"clickable"
:
True
,
"node"
:
"{}"
.
format
(
productName
),
"level"
:
2
,
"count"
:
erjicount
,
"subNodeList"
:
[]
}
sql_02
=
"match (n) -[r]->(m) WHERE n.name='{}' return n.name,r.type,m.name"
.
format
(
productName
)
result
=
graph
.
run
(
sql_02
)
.
data
()
for
item
in
result
:
productName
=
item
[
"m.name"
]
if
district
:
count
=
Company
.
query
.
filter_by
(
province
=
"山西省"
,
city
=
"太原市"
,
district
=
district
)
.
filter
(
Company
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
productName
)))
.
count
()
else
:
count
=
Company
.
query
.
filter_by
(
province
=
"山西省"
,
city
=
"太原市"
)
.
filter
(
Company
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
productName
)))
.
count
()
# erjicount += count
node
[
"subNodeList"
]
.
append
({
"clickable"
:
True
,
"node"
:
"{}"
.
format
(
productName
),
"level"
:
3
,
"count"
:
count
,
"subNodeList"
:
[]
})
# node["count"] = erjicount # 累计值
data
[
"subNodeList"
]
.
append
(
node
)
return
data
def
find_up_thr
(
inid
,
name_query
,
relation
,
district
):
if
relation
==
"中游行业"
:
relation_c
=
"下位产品"
else
:
relation_c
=
relation
cnums
=
Company
.
query
.
filter_by
(
stream
=
"{}"
.
format
(
relation
[:
2
]),
c_type
=
inid
)
.
count
()
# 上中下游企业数目
# 零级,上中下三游
# 零级,上中下三游
data
=
{
"clickable"
:
False
,
data
=
{
"node"
:
"{}"
.
format
(
relation
[:
2
]),
"node"
:
"{}"
.
format
(
relation
[:
2
]),
"level"
:
1
,
"level"
:
1
,
"subNodeList"
:
[],
"subNodeList"
:
[],
"count"
:
cnums
}
}
sql_01
=
"match (n) -[r:`{}`]->(m) WHERE n.name='{}' return n.name,r.type,m.name"
.
format
(
relation_c
,
name_query
)
sql_01
=
"match (n) -[r:`{}`]->(m) WHERE n.name='{}' return n.name,r.type,m.name"
.
format
(
relation_c
,
name_query
)
res_zero
=
graph
.
run
(
sql_01
)
.
data
()
res_zero
=
graph
.
run
(
sql_01
)
.
data
()
res_one
=
list
(
set
([
i
[
"m.name"
]
for
i
in
list
(
res_zero
)]))
# 不重复的一级节点
res_one
=
list
(
set
([
i
[
"m.name"
]
for
i
in
list
(
res_zero
)]))
# 不重复的一级节点
for
it
in
res_one
:
# 一级节点
for
it
in
res_one
:
# 一级节点
pname_one
=
it
pname_one
=
it
# 获取当前子节点数量
if
district
:
erjicount
=
Company
.
query
.
filter_by
(
c_type
=
inid
,
province
=
"山西省"
,
city
=
"太原市"
,
district
=
district
)
.
filter
(
Company
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
pname_one
)))
.
count
()
else
:
erjicount
=
Company
.
query
.
filter_by
(
c_type
=
inid
,
province
=
"山西省"
,
city
=
"太原市"
)
.
filter
(
Company
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
pname_one
)))
.
count
()
# 一级
# 一级
node_one
=
{
"clickable"
:
True
,
node_one
=
{
"node"
:
"{}"
.
format
(
pname_one
),
"node"
:
"{}"
.
format
(
pname_one
),
"level"
:
2
,
"level"
:
2
,
"count"
:
erjicount
,
"subNodeList"
:
[]
"subNodeList"
:
[]
}
}
sql_02
=
"match (n) -[r]->(m) WHERE n.name='{}' return n.name,r.type,m.name"
.
format
(
pname_one
)
sql_02
=
"match (n) -[r]->(m) WHERE n.name='{}' return n.name,r.type,m.name"
.
format
(
pname_one
)
...
@@ -118,18 +50,10 @@ def find_up_thr(inid, name_query, relation, district):
...
@@ -118,18 +50,10 @@ def find_up_thr(inid, name_query, relation, district):
result
=
list
(
set
([
i
[
"m.name"
]
for
i
in
list
(
result
)]))
# 不重复的二级节点
result
=
list
(
set
([
i
[
"m.name"
]
for
i
in
list
(
result
)]))
# 不重复的二级节点
for
item
in
result
:
for
item
in
result
:
pname_two
=
item
pname_two
=
item
# 二级子节点数量
if
district
:
count2
=
Company
.
query
.
filter_by
(
c_type
=
inid
,
province
=
"山西省"
,
city
=
"太原市"
,
district
=
district
)
.
filter
(
Company
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
pname_two
)))
.
count
()
else
:
count2
=
Company
.
query
.
filter_by
(
c_type
=
inid
,
province
=
"山西省"
,
city
=
"太原市"
)
.
filter
(
Company
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
pname_two
)))
.
count
()
# 二级
# 二级
node_two
=
{
"clickable"
:
True
,
node_two
=
{
"node"
:
"{}"
.
format
(
pname_two
),
"node"
:
"{}"
.
format
(
pname_two
),
"level"
:
3
,
"level"
:
3
,
"count"
:
count2
,
"subNodeList"
:
[]
"subNodeList"
:
[]
}
}
sql_03
=
"match (n) -[r]->(m) WHERE n.name='{}' return n.name,r.type,m.name"
.
format
(
pname_two
)
sql_03
=
"match (n) -[r]->(m) WHERE n.name='{}' return n.name,r.type,m.name"
.
format
(
pname_two
)
...
@@ -137,24 +61,15 @@ def find_up_thr(inid, name_query, relation, district):
...
@@ -137,24 +61,15 @@ def find_up_thr(inid, name_query, relation, district):
result3
=
list
(
set
([
i
[
"m.name"
]
for
i
in
list
(
result3
)]))
# 不重复的三级节点
result3
=
list
(
set
([
i
[
"m.name"
]
for
i
in
list
(
result3
)]))
# 不重复的三级节点
for
itm
in
result3
:
for
itm
in
result3
:
pname_thr
=
itm
pname_thr
=
itm
# 二级子节点数量
if
district
:
count3
=
Company
.
query
.
filter_by
(
c_type
=
inid
,
province
=
"山西省"
,
city
=
"太原市"
,
district
=
district
)
.
filter
(
Company
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
pname_thr
)))
.
count
()
else
:
count3
=
Company
.
query
.
filter_by
(
c_type
=
inid
,
province
=
"山西省"
,
city
=
"太原市"
)
.
filter
(
Company
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
pname_thr
)))
.
count
()
# 三级
# 三级
node_thr
=
{
"clickable"
:
True
,
node_thr
=
{
"node"
:
"{}"
.
format
(
pname_thr
),
"node"
:
"{}"
.
format
(
pname_thr
),
"level"
:
4
,
"level"
:
4
,
"count"
:
count3
,
"subNodeList"
:
[]
"subNodeList"
:
[]
}
}
node_two
[
"subNodeList"
]
.
append
(
node_thr
)
node_two
[
"subNodeList"
]
.
append
(
node_thr
)
node_one
[
"subNodeList"
]
.
append
(
node_two
)
node_one
[
"subNodeList"
]
.
append
(
node_two
)
data
[
"subNodeList"
]
.
append
(
node_one
)
data
[
"subNodeList"
]
.
append
(
node_one
)
return
data
return
data
...
@@ -175,10 +90,10 @@ def industry_chain():
...
@@ -175,10 +90,10 @@ def industry_chain():
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"参数不完整"
)
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"参数不完整"
)
try
:
try
:
name_query
=
"ty
"
+
str
(
inid
)
+
str
(
district
)
# name_query = "jc
" + str(inid) + str(district)
if
redis_store
.
get
(
name_query
)
is
not
None
:
#
if redis_store.get(name_query) is not None:
data
=
json
.
loads
(
redis_store
.
get
(
name_query
))
#
data = json.loads(redis_store.get(name_query))
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"获取成功"
,
data
=
data
)
#
return jsonify(code=RET.OK, msg="获取成功", data=data)
# 行业使用名
# 行业使用名
industryName
=
Industry
.
query
.
filter_by
(
nid
=
inid
)
.
first
()
.
oname
industryName
=
Industry
.
query
.
filter_by
(
nid
=
inid
)
.
first
()
.
oname
...
@@ -188,176 +103,15 @@ def industry_chain():
...
@@ -188,176 +103,15 @@ def industry_chain():
# print(industryName)
# print(industryName)
result
=
{
result
=
{
"industryChain"
:
industryName
,
"industryChain"
:
industryName
,
"nodeList"
:
[
find_up_thr
(
in
id
,
industryName
,
"上游行业"
,
district
),
"nodeList"
:
[
find_up_thr
(
in
dustryName
,
"上游行业"
),
find_up_thr
(
in
id
,
industryName
,
"中游行业"
,
district
),
find_up_thr
(
in
dustryName
,
"中游行业"
),
find_up_thr
(
in
id
,
industryName
,
"下游行业"
,
district
)]
find_up_thr
(
in
dustryName
,
"下游行业"
)]
}
}
# redis缓存
# redis缓存
redis_store
.
set
(
name_query
,
json
.
dumps
(
result
))
# redis_store.set(name_query, json.dumps(result))
redis_store
.
expire
(
name_query
,
30
*
24
*
3600
)
# redis_store.expire(name_query, 30 * 24 * 3600)
print
(
"redis"
)
# print("redis")
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据异常"
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"获取成功"
,
data
=
result
)
# 太原市一级行业下的两级图谱展示
@api_atlas.route
(
"/industry/nevigate"
,
methods
=
[
"POST"
])
# @login_required
def
indu_nevigate
():
req_dict
=
request
.
get_json
()
inid
=
req_dict
.
get
(
"inid"
)
# 行业id,不为0
cate
=
req_dict
.
get
(
"cate"
)
# 行业等级,(高端设备等五个为"1",子行业为"2")
# print(inid, cate)
if
cate
!=
"1"
:
return
jsonify
(
code
=
RET
.
DATAERR
,
msg
=
"参数异常"
)
try
:
indu
=
Industry
.
query
.
filter_by
(
nid
=
inid
,
statu
=
1
)
.
first
()
if
not
indu
:
return
jsonify
(
code
=
RET
.
DATAERR
,
msg
=
"参数异常"
)
name
=
indu
.
name
# 显示名
# childs = Industry.query.filter_by(fid=indu.nid, statu=1).all()
childs
=
Industry
.
query
.
filter_by
(
fid
=
indu
.
nid
)
.
all
()
# 全部展示
nodes
=
[]
links
=
[]
for
child
in
childs
:
count
=
Company
.
query
.
filter_by
(
c_type
=
child
.
nid
)
.
count
()
# 当前行业在数据中的频
if
count
==
0
:
continue
nodes
.
append
(
{
"id"
:
child
.
nid
,
"name"
:
"{}"
.
format
(
child
.
name
+
"({})"
.
format
(
count
)),
"count"
:
count
,
"nodeShape"
:
0
,
"color"
:
"#43a2f1"
,
"cate"
:
"2"
})
links
.
append
({
"from"
:
'{}'
.
format
(
indu
.
nid
),
"to"
:
'{}'
.
format
(
child
.
nid
),
"text"
:
''
})
# id += 1
count
=
Company
.
query
.
filter_by
(
f_type
=
indu
.
nid
)
.
count
()
nodes
.
append
({
"id"
:
"{}"
.
format
(
indu
.
nid
),
"name"
:
"{}"
.
format
(
name
),
"count"
:
count
,
"cate"
:
"1"
})
result
=
{
'nodes'
:
deleteDuplicate
(
nodes
),
'links'
:
deleteDuplicate
(
links
),
"rootId"
:
'1'
}
except
Exception
as
e
:
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据异常"
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据异常"
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"获取成功"
,
data
=
result
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"获取成功"
,
data
=
result
)
\ No newline at end of file
# 点击二级导航的行业产业链原点()
@api_atlas.route
(
'/ej/zero'
,
methods
=
[
'POST'
])
# @login_required
def
zero
():
req_dict
=
request
.
get_json
()
inid
=
req_dict
.
get
(
"inid"
)
# 行业id
cate
=
req_dict
.
get
(
"cate"
)
# 行业等级,(高端设备等五个为"1",子行业为"2")
if
cate
!=
"2"
:
return
jsonify
(
code
=
RET
.
DATAERR
,
msg
=
"参数错误"
)
center
=
Industry
.
query
.
filter_by
(
nid
=
inid
)
.
first
()
pname
=
center
.
oname
# 获取可查询真名
ptp
=
neo4j_dict
()
product
=
pname
if
pname
in
ptp
:
product
=
ptp
[
pname
]
sql
=
"match (n) -[r:`下游行业`]->(m) WHERE n.name='{}' return id(n) as id,n.name as name UNION "
\
"match (n) -[r:`上游行业`]->(m) WHERE n.name='{}' return id(n) as id,n.name as name UNION "
\
"match (n) -[r:`下位产品`]->(m) WHERE n.name='{}' return id(n) as id,n.name as name "
.
format
(
product
,
product
,
product
)
res
=
graph
.
run
(
sql
)
.
data
()
try
:
result
=
{
"rootId"
:
'{}'
.
format
(
res
[
0
][
"id"
]),
"nodes"
:
[{
"id"
:
"{}"
.
format
(
res
[
0
][
"id"
]),
"name"
:
"{}↓"
.
format
(
product
)}],
"links"
:
[]
# {"from": '1', "to": '{}'.format(res[0]["id"]), "text": ''}
}
except
:
result
=
{
"rootId"
:
'{}'
.
format
(
res
[
0
][
"id"
]),
"nodes"
:
[{
"id"
:
"{}"
.
format
(
res
[
0
][
"id"
]),
"name"
:
"{}↓"
.
format
(
product
)}],
"links"
:
[]
# {"from": '1', "to": '{}'.format(res[0]["id"]), "text": ''}
}
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"获取成功"
,
data
=
result
)
def
haveNext
(
name
):
'''
判断是否有下一级子节点
:param name: name of node
:return:
'''
sql
=
"match (n)-[r]->(m) WHERE n.name='{}' return r.type limit 1"
.
format
(
name
)
res
=
graph
.
run
(
sql
)
.
data
()
if
len
(
res
)
>=
1
:
return
True
else
:
return
False
def
find_next
(
name
,
_id
):
'''
查找下一级节点
:param name:
:param _id: 出发节点id
:return:
'''
result
=
{
'nodes'
:
[],
'links'
:
[]}
sql
=
"match (n) -[r:`下游行业`]->(m) WHERE n.name='{}' return id(n),id(m),n.name,r.type,m.name UNION "
\
"match (n) -[r:`上游行业`]->(m) WHERE n.name='{}' return id(n),id(m),n.name,r.type,m.name UNION "
\
"match (n) -[r:`下位产品`]->(m) WHERE n.name='{}' return id(n),id(m),n.name,r.type,m.name "
.
format
(
name
,
name
,
name
)
res
=
graph
.
run
(
sql
)
.
data
()
# print("查询结果:", res)
for
i
in
res
:
if
haveNext
(
i
[
"m.name"
]):
result
[
"nodes"
]
.
append
({
"id"
:
"{}"
.
format
(
i
[
"id(m)"
]),
"name"
:
"{}↓"
.
format
(
i
[
"m.name"
])})
result
[
"links"
]
.
append
(
{
"from"
:
"{}"
.
format
(
_id
),
"to"
:
"{}"
.
format
(
i
[
"id(m)"
]),
"text"
:
"{}"
.
format
(
i
[
"r.type"
])})
else
:
result
[
"nodes"
]
.
append
({
"id"
:
"{}"
.
format
(
i
[
"id(m)"
]),
"name"
:
"{}"
.
format
(
i
[
"m.name"
])})
result
[
"links"
]
.
append
(
{
"from"
:
"{}"
.
format
(
_id
),
"to"
:
"{}"
.
format
(
i
[
"id(m)"
]),
"text"
:
"{}"
.
format
(
i
[
"r.type"
])})
# for i in res:
# if haveNext(i["m.name"]):
# result["antity"].append({'name': '{}'.format(i["m.name"]), 'name_query': '{}'.format(
# i["m.name"])})
# result["relation"].append(
# {'source': '{}'.format(i["n.name"]), 'target': '{}↓'.format(i["m.name"]),
# 'name': '{}'.format(i["r.type"])})
# else:
# result["antity"].append({'name': '{}'.format(i["m.name"]), 'name_query': '{}'.format(
# i["m.name"])})
# result["relation"].append(
# {'source': '{}'.format(i["n.name"]), 'target': '{}'.format(i["m.name"]),
# 'name': '{}'.format(i["r.type"])})
# return result
return
result
# 点击二级导航下行业产业链气泡出现下一级
@api_atlas.route
(
'/ej/next'
,
methods
=
[
'POST'
])
# @login_required
def
next
():
req_dict
=
request
.
get_json
()
name
=
req_dict
.
get
(
"name"
)
# 获取节点名称(不带下箭头)
# name_query = req_dict.get("name_query") # 获取查询节点名称
_id
=
req_dict
.
get
(
"id"
)
# 节点id
# 校验参数完整性
if
not
all
([
name
]):
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"参数不完整"
)
try
:
result
=
find_next
(
name
,
_id
)
final_result
=
dict
()
# 列表字典去重
nodes
=
deleteDuplicate
(
result
[
"nodes"
])
links
=
deleteDuplicate
(
result
[
"links"
])
final_result
[
"nodes"
]
=
nodes
final_result
[
"links"
]
=
links
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"获取成功"
,
data
=
final_result
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据异常"
,
data
=
{})
apps/models.py
View file @
904b82da
...
@@ -180,6 +180,72 @@ class Company(db.Model):
...
@@ -180,6 +180,72 @@ class Company(db.Model):
__table_args__
=
({
'comment'
:
'晋城企业表'
})
# 添加表注释
__table_args__
=
({
'comment'
:
'晋城企业表'
})
# 添加表注释
# 晋城企业行政许可
class
CompanyAdminPermission
(
db
.
Model
):
__tablename_
=
"company_admin_permission"
__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'
)
number
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'晋城企业行政许可编号'
,
comment
=
'晋城企业行政许可编号'
)
name
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'晋城企业行政许可证名称'
,
comment
=
'晋城企业行政许可证名称'
)
time
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'许可证名称'
,
comment
=
'许可证名称'
)
effective_data
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'有效日期'
,
comment
=
'有效日期'
)
Licensing_authority
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'许可机关'
,
comment
=
'许可机关'
)
content
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'许可内容'
,
comment
=
'许可内容'
)
source
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'来源'
,
comment
=
'来源'
)
# 晋城企业税务信用
class
CompanyTaxCredit
(
db
.
Model
):
__tablename_
=
"company_tax_credit"
__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'
)
evaluation_annual
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'评价年度'
,
comment
=
'评价年度'
)
identify_number
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'纳税人识别号'
,
comment
=
'纳税人识别号'
)
level
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'纳税信用等级'
,
comment
=
'纳税信用等级'
)
evaluate
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'单位评价'
,
comment
=
'单位评价'
)
# 晋城企业进出口信用
class
CompanyImportExport
(
db
.
Model
):
__tablename_
=
"company_import_export"
__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'
)
register_customs
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'注册海关'
,
comment
=
'注册海关'
)
business_category
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'经营类别'
,
comment
=
'经营类别'
)
register_date
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'注册日期'
,
comment
=
'注册日期'
)
# 晋城企业供应商
class
CompanySupplier
(
db
.
Model
):
__tablename_
=
"company_supplier"
__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'
)
supplier_name
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'客户名字'
,
comment
=
'客户名字'
)
buy_rate
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'采购占比'
,
comment
=
'采购占比'
)
buy_money
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'采购金额'
,
comment
=
'采购金额'
)
open_time
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'公开时间'
,
comment
=
'公开时间'
)
data_source
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'数据来源'
,
comment
=
'数据来源'
)
relation
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'关联关系'
,
comment
=
'关联关系'
)
# 晋城企业客户
class
CompanyCustomer
(
db
.
Model
):
__tablename_
=
"company_customer"
__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'
)
customer_name
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'客户'
,
comment
=
'客户'
)
sales_rate
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'销售占比'
,
comment
=
'销售占比'
)
sales_money
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'销售金额'
,
comment
=
'销售金额'
)
open_time
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'公开时间'
,
comment
=
'公开时间'
)
data_source
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'数据来源'
,
comment
=
'数据来源'
)
relation
=
db
.
Column
(
db
.
String
(
32
),
doc
=
'关联关系'
,
comment
=
'关联关系'
)
# 产业导航目录
# 产业导航目录
class
Industry
(
db
.
Model
):
class
Industry
(
db
.
Model
):
__tablename_
=
"industry"
__tablename_
=
"industry"
...
...
apps/util.py
View file @
904b82da
...
@@ -4,7 +4,7 @@ from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
...
@@ -4,7 +4,7 @@ from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
from
itsdangerous
import
SignatureExpired
,
BadSignature
from
itsdangerous
import
SignatureExpired
,
BadSignature
from
flask
import
request
,
jsonify
,
current_app
from
flask
import
request
,
jsonify
,
current_app
from
config
import
Config
from
config
import
Config
from
apps.models
import
User
,
Bstage
#
from apps.models import User, Bstage
import
functools
import
functools
# from flask_httpauth import HTTPBasicAuth
# from flask_httpauth import HTTPBasicAuth
#
#
...
...
apps/utils/neo4j_conn.py
View file @
904b82da
...
@@ -2,45 +2,11 @@ from py2neo import Graph
...
@@ -2,45 +2,11 @@ from py2neo import Graph
def
conn_neo4j
():
def
conn_neo4j
():
graph
=
Graph
(
"http://localhost:7474"
,
username
=
"neo4j"
,
password
=
"century-english-almanac-havana-golf-9040"
)
#
graph = Graph("http://localhost:7474", username="neo4j", password="century-english-almanac-havana-golf-9040")
#
graph = Graph("http://localhost:7474", username="neo4j", password="123456")
graph
=
Graph
(
"http://localhost:7474"
,
username
=
"neo4j"
,
password
=
"123456"
)
return
graph
return
graph
# 'match (n) -[r:`下位产品`]->(m) WHERE n.name=\\'网络安全\\' return n.name,r.type,m.name'
# s = "match (n) -[r:`下位产品`]->(m) WHERE n.name='轨道交通' return n.name,r.type,m.name"
# #
# graph = conn_neo4j()
# res = graph.run(s).data()
# print(res)
def
neo4j_dict
():
def
neo4j_dict
():
ptp
=
{
"轨道交通"
:
"轨道交通"
,
ptp
=
{
"煤层气开采储运利用"
:
"煤层气开采储运利用"
}
"新能源汽车"
:
"新能源汽车"
,
"智能煤机"
:
"智能煤机"
,
"数控机床及机器人"
:
"工业机器人"
,
"通用航空"
:
"通用航空"
,
"智能电网"
:
"智能电网"
,
"氢能"
:
"氢能"
,
"碳基新材料"
:
"碳基新材料"
,
"特种金属新材料"
:
"特种金属材料"
,
"化工新材料"
:
"新型化工材料"
,
"生物基新材料"
:
"生物基新材料"
,
"信息技术应用创新"
:
"信息创新技术"
,
"网络安全"
:
"网络安全"
,
"云计算"
:
"云计算"
,
"大数据及人工智能"
:
"大数据及人工智能"
,
"物联网"
:
"物联网"
,
"康养产业"
:
"康养服务"
,
"生物制药"
:
"生物医药"
,
"现代物流"
:
"现代物流"
,
"现代金融"
:
"现代金融"
,
"半导体及光电子"
:
"新一代半导体"
,
"节能环保"
:
"节能环保装备"
}
return
ptp
return
ptp
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