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
93679680
Commit
93679680
authored
Feb 16, 2023
by
dong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix202302015
parent
dda3c2a7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
265 additions
and
135 deletions
+265
-135
apps/models.py
+78
-1
apps/utils/shell/__init__.py
+0
-0
apps/utils/shell/enterprise_to_industry_chain.py
+51
-0
apps/view_atlas/view.py
+53
-1
apps/view_map/view.py
+36
-27
apps/view_radar/view.py
+47
-13
enterprise_to_industry_chain.py
+0
-93
No files found.
apps/models.py
View file @
93679680
...
...
@@ -656,7 +656,6 @@ class Induzone(db.Model):
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(亿元)
...
...
@@ -753,6 +752,84 @@ class Induzone(db.Model):
hotel_point
=
db
.
Column
(
db
.
Float
,
doc
=
'酒店餐饮的评分'
,
comment
=
'酒店餐饮的评分'
)
# 酒店餐饮的评分
development_zone
=
db
.
Column
(
db
.
String
(
255
),
doc
=
'所在开发区'
,
comment
=
'所在开发区'
)
# 所在开发区
upper_district
=
db
.
Column
(
db
.
String
(
255
),
doc
=
'上级行政区'
,
comment
=
'上级行政区'
)
# 所在开发区
# 辖区面积
xiaqu_area
=
db
.
Column
(
db
.
Float
,
comment
=
'辖区面积(平方公里)'
)
# 人口
people_num
=
db
.
Column
(
db
.
Float
,
comment
=
'人口'
)
# 载体形态
carrier_form
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'载体形态'
)
# 建筑面积
area_structure
=
db
.
Column
(
db
.
Float
,
comment
=
'辖区面积(平方公里)'
)
# 现状图谱-投资成本-水电气暖价格
class
DistrictResource
(
db
.
Model
):
__tablename_
=
"district_resource"
__table_args__
=
({
'comment'
:
'现状图谱-投资成本-水电气暖价格'
})
# 添加表注释
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
doc
=
'园区主键id'
,
comment
=
'园区主键id'
)
district
=
db
.
Column
(
db
.
String
(
255
),
doc
=
'区县名称'
,
comment
=
'区县名称'
)
# 园区姓名
# 居民生活用水(元 / 立方米)
domestic_water
=
db
.
Column
(
db
.
Float
,
comment
=
'居民生活用水(元 / 立方米)'
)
# 非居民用水(元 / 立方米)
not_Domestic_water
=
db
.
Column
(
db
.
Float
,
comment
=
'非居民用水(元 / 立方米)'
)
# 特种用水(元 / 立方米)
special_water
=
db
.
Column
(
db
.
Float
,
comment
=
'特种用水(元 / 立方米)'
)
# 电价
# 居民生活电价
electricity_life
=
db
.
Column
(
db
.
Float
,
comment
=
'居民生活电价'
)
# 商业电价
electricity_commercial
=
db
.
Column
(
db
.
Float
,
comment
=
'商业电价'
)
# 工业电价
electricity_industrial
=
db
.
Column
(
db
.
Float
,
comment
=
'工业电价'
)
# 燃气
# 城市居民用气(元 / 立方米)
gas_city
=
db
.
Column
(
db
.
Float
,
comment
=
'城市居民用气(元 / 立方米)'
)
# 工商业用气(元 / 立方米)
gas_commercial
=
db
.
Column
(
db
.
Float
,
comment
=
'工商业用气(元 / 立方米)'
)
# 采暖成本
# 居民用热(元 / 平方米)
hot_life
=
db
.
Column
(
db
.
Float
,
comment
=
'居民用热(元 / 平方米)'
)
# 非居民用热(元 / 平方米)
not_hot_life
=
db
.
Column
(
db
.
Float
,
comment
=
'非居民用热(元 / 平方米)'
)
# 现状图谱-投资成本-劳动力成本
class
LaborCost
(
db
.
Model
):
__tablename_
=
"labor_cost"
__table_args__
=
({
'comment'
:
'现状图谱-投资成本-劳动力成本'
})
# 添加表注释
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
doc
=
'园区主键id'
,
comment
=
'园区主键id'
)
district
=
db
.
Column
(
db
.
String
(
255
),
doc
=
'区县名称'
,
comment
=
'区县名称'
)
# 园区姓名
# 企业职工各种费率(人社局)
# 养老保险
endowment_insurance1
=
db
.
Column
(
db
.
Float
,
comment
=
'养老保险公司缴xx
%
'
)
endowment_insurance2
=
db
.
Column
(
db
.
Float
,
comment
=
'养老保险个人缴xx
%
'
)
# 失业保险
unemployment_insurance1
=
db
.
Column
(
db
.
Float
,
comment
=
'失业保险公司缴XX
%
'
)
unemployment_insurance2
=
db
.
Column
(
db
.
Float
,
comment
=
'失业保险个人缴X
%
'
)
# 工伤保险
injury_insurance1
=
db
.
Column
(
db
.
Float
,
comment
=
'工伤保险公司缴XX
%
'
)
injury_insurance2
=
db
.
Column
(
db
.
Float
,
comment
=
'工伤保险个人缴X
%
'
)
# 生育保险
maternity_insurance1
=
db
.
Column
(
db
.
Float
,
comment
=
'生育保险公司缴XX
%
'
)
maternity_insurance2
=
db
.
Column
(
db
.
Float
,
comment
=
'生育保险个人缴X
%
'
)
# 医疗保险
medical_insurance1
=
db
.
Column
(
db
.
Float
,
comment
=
'医疗保险公司缴XX
%
'
)
medical_insurance2
=
db
.
Column
(
db
.
Float
,
comment
=
'医疗保险个人缴X
%
'
)
# 工资标准(人社局)
# 月最低工资工资标准
month_wage_rates
=
db
.
Column
(
db
.
Float
,
comment
=
'月最低工资工资标准'
)
# 非全日制用工小时最低工资标准
hour_wage_rates
=
db
.
Column
(
db
.
Float
,
comment
=
'非全日制用工小时最低工资标准'
)
# 创新资源-高等院校(985, 211, 本科,高职专高)
...
...
apps/utils/shell/__init__.py
0 → 100644
View file @
93679680
apps/utils/shell/enterprise_to_industry_chain.py
0 → 100644
View file @
93679680
# # -*- coding:utf-8 -*-
import
threading
from
apps.models
import
IndustryChain
,
Enterprise
from
manager
import
app
from
apps
import
db
"""
IndustryChain或者Enterprise数据表更新后,
计算产业环节相关企业的数量并填充到IndustryChain的enterprise_num字段中。
"""
def
handle
():
with
app
.
app_context
():
industry_obj_list
=
IndustryChain
.
query
.
all
()
print
(
industry_obj_list
)
# 读取industry_chain数据表的产业名称
for
industry_obj
in
industry_obj_list
:
industry_name
=
industry_obj
.
industry_name
chain_id
=
industry_obj
.
chain_id
# 读取全国企业表,模糊匹配product_all字段
if
industry_name
in
[
"钢铁"
,
"光机电"
,
"煤层气"
,
"装备制造"
,
"铸造"
,
"煤化工"
,
"新材料"
,
"绿色建材"
,
"医药"
,
"丝麻纺织服装"
,
"现代服务业"
,
"数字经济"
,
"文化旅游"
]:
continue
else
:
print
(
"正在查询【{}】的相关企业......"
.
format
(
industry_name
))
enterprise_num1
=
Enterprise
.
query
.
filter
(
Enterprise
.
c_type
==
chain_id
,
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
industry_name
))
)
.
count
()
enterprise_num2
=
Enterprise
.
query
.
filter
(
Enterprise
.
c_type1
==
chain_id
,
Enterprise
.
product_all1
.
like
(
"
%
{}
%
"
.
format
(
industry_name
))
)
.
count
()
enterprise_num3
=
Enterprise
.
query
.
filter
(
Enterprise
.
c_type2
==
chain_id
,
Enterprise
.
product_all2
.
like
(
"
%
{}
%
"
.
format
(
industry_name
))
)
.
count
()
enterprise_num
=
enterprise_num1
+
enterprise_num2
+
enterprise_num3
industry_obj
.
enterprise_num
=
enterprise_num
db
.
session
.
commit
()
print
(
"产品【{}】已完成, 共有{}家相关企业。"
.
format
(
industry_name
,
enterprise_num
))
if
__name__
==
'__main__'
:
t
=
threading
.
Thread
(
target
=
handle
)
t
.
start
()
apps/view_atlas/view.py
View file @
93679680
...
...
@@ -113,7 +113,8 @@ def industry_cluster():
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据异常"
)
if
flag
==
2
:
try
:
redis_store
.
setex
(
"chain_id_
%
s"
%
industry_id
,
constants
.
INDUSTRY_ENTERPRISE_REDIS_EXPIRES
,
json
.
dumps
(
result
))
redis_store
.
setex
(
"chain_id_
%
s"
%
industry_id
,
constants
.
INDUSTRY_ENTERPRISE_REDIS_EXPIRES
,
json
.
dumps
(
result
))
# 保存发送给这个手机号的记录,防止用户在60s内再次出发发送短信的操作
# redis_store.setex("send_sms_code_%s" % mobile, constants.SEND_SMS_CODE_INTERVAL, 1)
except
Exception
as
e
:
...
...
@@ -861,6 +862,50 @@ def get_zaiti_detail_data():
if
cate_id
in
[
1
,
2
]:
try
:
induzone
=
Induzone
.
query
.
filter_by
(
id
=
id
)
.
first
()
district
=
induzone
.
district
# 水电气暖
if
district
:
resource_obj
=
DistrictResource
.
query
.
filter
(
DistrictResource
.
district
==
district
)
.
first
()
resource_data
=
{
"domestic_water"
:
resource_obj
.
domestic_water
,
"not_Domestic_water"
:
resource_obj
.
not_Domestic_water
,
"special_water"
:
resource_obj
.
special_water
,
"electricity_life"
:
resource_obj
.
electricity_life
,
"electricity_commercial"
:
resource_obj
.
electricity_commercial
,
"electricity_industrial"
:
resource_obj
.
electricity_industrial
,
"gas_city"
:
resource_obj
.
gas_city
,
"gas_commercial"
:
resource_obj
.
gas_commercial
,
"hot_life"
:
resource_obj
.
hot_life
,
"not_hot_life"
:
resource_obj
.
not_hot_life
,
}
labor_obj
=
LaborCost
.
query
.
filter
(
LaborCost
.
district
==
district
)
.
first
()
labor_data
=
{
"endowment_insurance1"
:
labor_obj
.
endowment_insurance1
,
"endowment_insurance2"
:
labor_obj
.
endowment_insurance2
,
"unemployment_insurance1"
:
labor_obj
.
unemployment_insurance1
,
"unemployment_insurance2"
:
labor_obj
.
unemployment_insurance2
,
"injury_insurance1"
:
labor_obj
.
injury_insurance1
,
"injury_insurance2"
:
labor_obj
.
injury_insurance2
,
"maternity_insurance1"
:
labor_obj
.
maternity_insurance1
,
"maternity_insurance2"
:
labor_obj
.
maternity_insurance2
,
"medical_insurance1"
:
labor_obj
.
medical_insurance1
,
"medical_insurance2"
:
labor_obj
.
medical_insurance2
,
"month_wage_rates"
:
labor_obj
.
month_wage_rates
,
"hour_wage_rates"
:
labor_obj
.
hour_wage_rates
}
if
district
==
'泽州县'
:
url
=
'https://zysf-store.oss-cn-beijing.aliyuncs.com/
%
E6
%99%8
B
%
E5
%9
F
%8
E
%
E6
%8
B
%9
B
%
E5
%95%86%
E5
%9
B
%
BE
%
E8
%
B0
%
B1
%
E5
%
B9
%
B3
%
E5
%8
F
%
B0/
%
E4
%
BA
%
A7
%
E4
%
B8
%9
A
%
E8
%
BD
%
BD
%
E4
%
BD
%93
-
%
E6
%8
A
%95%
E8
%
B5
%84%
E6
%88%90%
E6
%9
C
%
AC
%
E9
%85%8
D
%
E5
%9
B
%
BE/
%
E5
%
B7
%
B4
%
E5
%85%
AC
%
E9
%95%872022%
E5
%
B9
%
B4
%
E5
%9
F
%
BA
%
E5
%87%86%
E5
%9
C
%
B0
%
E4
%
BB
%
B7
%
E8
%
A1
%
A8.png'
elif
district
==
'高平市'
:
url
=
'https://zysf-store.oss-cn-beijing.aliyuncs.com/
%
E6
%99%8
B
%
E5
%9
F
%8
E
%
E6
%8
B
%9
B
%
E5
%95%86%
E5
%9
B
%
BE
%
E8
%
B0
%
B1
%
E5
%
B9
%
B3
%
E5
%8
F
%
B0/
%
E4
%
BA
%
A7
%
E4
%
B8
%9
A
%
E8
%
BD
%
BD
%
E4
%
BD
%93
-
%
E6
%8
A
%95%
E8
%
B5
%84%
E6
%88%90%
E6
%9
C
%
AC
%
E9
%85%8
D
%
E5
%9
B
%
BE/
%
E9
%
AB
%98%
E5
%
B9
%
B3
%
E5
%
B8
%82%
E5
%
B8
%82%
E5
%8
C
%
BA
%
E5
%9
C
%9
F
%
E5
%9
C
%
B0
%
E7
%
BA
%
A7
%
E5
%88%
AB
%
E5
%92%8
C
%
E5
%9
F
%
BA
%
E5
%87%86%
E5
%9
C
%
B0
%
E4
%
BB
%
B7
%
E8
%
A1
%
A8.png'
elif
district
==
'沁水县'
:
url
=
'https://zysf-store.oss-cn-beijing.aliyuncs.com/
%
E6
%99%8
B
%
E5
%9
F
%8
E
%
E6
%8
B
%9
B
%
E5
%95%86%
E5
%9
B
%
BE
%
E8
%
B0
%
B1
%
E5
%
B9
%
B3
%
E5
%8
F
%
B0/
%
E4
%
BA
%
A7
%
E4
%
B8
%9
A
%
E8
%
BD
%
BD
%
E4
%
BD
%93
-
%
E6
%8
A
%95%
E8
%
B5
%84%
E6
%88%90%
E6
%9
C
%
AC
%
E9
%85%8
D
%
E5
%9
B
%
BE/
%
E6
%
B2
%81%
E6
%
B0
%
B4
%
E5
%8
E
%
BF
%
E5
%8
E
%
BF
%
E5
%9
F
%8
E
%
E5
%90%84%
E7
%
BA
%
A7
%
E5
%9
C
%9
F
%
E5
%9
C
%
B0
%
E5
%9
F
%
BA
%
E5
%87%86%
E5
%9
C
%
B0
%
E4
%
BB
%
B7
%
E8
%
A1
%
A8.png'
elif
district
==
'阳城县'
:
url
=
'https://zysf-store.oss-cn-beijing.aliyuncs.com/
%
E6
%99%8
B
%
E5
%9
F
%8
E
%
E6
%8
B
%9
B
%
E5
%95%86%
E5
%9
B
%
BE
%
E8
%
B0
%
B1
%
E5
%
B9
%
B3
%
E5
%8
F
%
B0/
%
E4
%
BA
%
A7
%
E4
%
B8
%9
A
%
E8
%
BD
%
BD
%
E4
%
BD
%93
-
%
E6
%8
A
%95%
E8
%
B5
%84%
E6
%88%90%
E6
%9
C
%
AC
%
E9
%85%8
D
%
E5
%9
B
%
BE/
%
E9
%98%
B3
%
E5
%9
F
%8
E
%
E5
%8
E
%
BF
%
E5
%9
F
%8
E
%
E9
%95%87%
E5
%9
F
%
BA
%
E5
%87%86%
E5
%9
C
%
B0
%
E4
%
BB
%
B7
%
E8
%
A1
%
A8.png'
elif
district
==
'城区'
:
url
=
'https://zysf-store.oss-cn-beijing.aliyuncs.com/
%
E6
%99%8
B
%
E5
%9
F
%8
E
%
E6
%8
B
%9
B
%
E5
%95%86%
E5
%9
B
%
BE
%
E8
%
B0
%
B1
%
E5
%
B9
%
B3
%
E5
%8
F
%
B0/
%
E4
%
BA
%
A7
%
E4
%
B8
%9
A
%
E8
%
BD
%
BD
%
E4
%
BD
%93
-
%
E6
%8
A
%95%
E8
%
B5
%84%
E6
%88%90%
E6
%9
C
%
AC
%
E9
%85%8
D
%
E5
%9
B
%
BE/
%
E6
%99%8
B
%
E5
%9
F
%8
E
%
E5
%
B8
%82%
E4
%
B8
%
BB
%
E5
%9
F
%8
E
%
E5
%8
C
%
BA
%
E5
%9
F
%
BA
%
E5
%87%86%
E5
%9
C
%
B0
%
E4
%
BB
%
B7.png'
else
:
pass
data
=
{
"district"
:
induzone
.
district
,
"cate"
:
induzone
.
cate
,
...
...
@@ -900,6 +945,13 @@ def get_zaiti_detail_data():
"hotel_bus"
:
induzone
.
hotel_bus
,
# 酒店商务
"medical"
:
induzone
.
medical
,
# 医疗机构
"education"
:
induzone
.
education
,
# 教育教育
"img_url"
:
url
,
"xiaqu_area"
:
induzone
.
xiaqu_area
,
"people_num"
:
induzone
.
people_num
,
"carrier_form"
:
induzone
.
carrier_form
,
"area_structure"
:
induzone
.
area_structure
,
"resource_data"
:
resource_data
,
"labor_data"
:
labor_data
}
return
jsonify
(
code
=
RET
.
OK
,
msg
=
'详情数据查询成功!'
,
data
=
data
)
except
Exception
as
e
:
...
...
apps/view_map/view.py
View file @
93679680
...
...
@@ -43,9 +43,17 @@ def attract_map():
product
=
req_dict
.
get
(
"product"
)
# 产业产品选择
try
:
enterprise
=
Enterprise
.
query
.
filter_by
(
c_type
=
inid
)
enterprise
=
Enterprise
.
query
.
filter
(
or_
(
Enterprise
.
c_type
==
inid
,
Enterprise
.
c_type1
==
inid
,
Enterprise
.
c_type2
==
inid
))
if
product
:
enterprise
=
enterprise
.
filter
(
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
product
)))
enterprise
=
enterprise
.
filter
(
or_
(
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
product
)),
Enterprise
.
product_all1
.
like
(
"
%
{}
%
"
.
format
(
product
)),
Enterprise
.
product_all2
.
like
(
"
%
{}
%
"
.
format
(
product
))
))
# print(enterprise)
df
=
list
()
if
not
province
:
# 全国,省数据
...
...
@@ -116,9 +124,17 @@ def attract_cnums():
product
=
req_dict
.
get
(
"product"
)
# 产业产品选择
try
:
enterprise
=
Enterprise
.
query
.
filter_by
(
c_type
=
inid
)
enterprise
=
Enterprise
.
query
.
filter
(
or_
(
Enterprise
.
c_type
==
inid
,
Enterprise
.
c_type1
==
inid
,
Enterprise
.
c_type2
==
inid
))
if
product
:
enterprise
=
enterprise
.
filter
(
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
product
)))
enterprise
=
enterprise
.
filter
(
or_
(
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
product
)),
Enterprise
.
product_all1
.
like
(
"
%
{}
%
"
.
format
(
product
)),
Enterprise
.
product_all2
.
like
(
"
%
{}
%
"
.
format
(
product
))
))
# print(enterprise)
df
=
list
()
if
not
province
:
# 全国,省数据
...
...
@@ -236,13 +252,22 @@ def attract_sdmap():
try
:
if
inid
:
enterprise
=
Enterprise
.
query
.
filter_by
(
c_type
=
inid
)
# enterprise = Enterprise.query.filter_by(c_type=inid)
enterprise
=
Enterprise
.
query
.
filter
(
or_
(
Enterprise
.
c_type
==
inid
,
Enterprise
.
c_type1
==
inid
,
Enterprise
.
c_type2
==
inid
))
else
:
enterprise
=
Enterprise
.
query
.
filter_by
()
if
district
:
enterprise
=
enterprise
.
filter_by
(
province
=
province
,
city
=
city
,
district
=
district
)
if
product
:
enterprise
=
enterprise
.
filter
(
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
product
)))
enterprise
=
enterprise
.
filter
(
or_
(
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
product
)),
Enterprise
.
product_all1
.
like
(
"
%
{}
%
"
.
format
(
product
)),
Enterprise
.
product_all2
.
like
(
"
%
{}
%
"
.
format
(
product
))
))
enterprise
=
enterprise
.
all
()
data
=
[]
if
enterprise
:
...
...
@@ -323,7 +348,6 @@ def search_enterprise():
@api_map.route
(
'/AttractEnterprise'
,
methods
=
[
'POST'
])
def
attract_enterprise
():
'''
太原市企业列表
:return:
'''
req_dict
=
request
.
get_json
()
...
...
@@ -344,11 +368,13 @@ def attract_enterprise():
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"参数不完整"
)
try
:
enterprise_obj
=
Enterprise
.
query
.
filter
(
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
product
))
if
product
else
text
(
''
),
#
Enterprise.product_all.like("%{}%".format(product)) if product else text(''),
Enterprise
.
entype
.
like
(
'
%
{}
%
'
.
format
(
entype
))
if
entype
else
text
(
''
),
Enterprise
.
company_name
.
like
(
'
%
{}
%
'
.
format
(
company_name
))
if
company_name
else
text
(
''
),
Enterprise
.
c_type
==
inid
if
not
product
else
text
(
''
),
#
Enterprise.c_type == inid if not product else text(''),
Enterprise
.
public_id
==
quoted
if
quoted
else
text
(
''
),
Enterprise
.
province
==
province
if
province
else
text
(
''
),
Enterprise
.
city
==
city
if
city
else
text
(
''
),
...
...
@@ -364,9 +390,7 @@ def attract_enterprise():
Enterprise
.
scale
==
'1'
if
qualificat
==
'规模以上企业'
else
text
(
''
),
Enterprise
.
serve
==
'1'
if
qualificat
==
'限额以上服务业企业'
else
text
(
''
)
)
# enterprise_obj = enterprise_obj.filter(or_(Enterprise.product_all.like("%{}%".format(product)) if product else text(''),
# Enterprise.product_all1.like("%{}%".format(product)) if product else text(''), # 测试用
# ))
size
=
enterprise_obj
.
count
()
enterprise_obj_list
=
enterprise_obj
.
paginate
(
page
,
perpage
)
.
items
...
...
@@ -389,18 +413,3 @@ def attract_enterprise():
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库查询错误"
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"获取成功"
,
data
=
data
)
@api_map.route
(
'/GetChain'
,
methods
=
[
'GET'
])
def
get_chain
():
# 在IndustryChain中查找到某个产业链,比如:‘中成药’
indu_obj
=
IndustryChain
.
query
.
filter_by
(
industry_name
=
'废钢'
)
.
first
()
industry_name
=
indu_obj
.
industry_name
enterprise_list
=
Enterprise
.
query
.
filter
(
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
industry_name
)))
.
all
()
for
enterprise_obj
in
enterprise_list
:
indu_obj
.
enterprise
.
append
(
enterprise_obj
)
continue
# 查询时比较方便,速度提升
enterprise_list1
=
indu_obj
.
enterprise
print
(
enterprise_list1
)
apps/view_radar/view.py
View file @
93679680
...
...
@@ -195,11 +195,17 @@ def topt():
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"参数不完整"
)
try
:
enterprise
=
Enterprise
.
query
.
filter_by
(
c_type
=
inid
)
enterprise
=
Enterprise
.
query
.
filter
(
or_
(
Enterprise
.
c_type
==
inid
,
Enterprise
.
c_type1
==
inid
,
Enterprise
.
c_type2
==
inid
))
if
product
:
# 有可能会变成模糊查询
enterprise
=
enterprise
.
filter
(
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
product
)))
enterprise
=
enterprise
.
filter
(
or_
(
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
product
)),
Enterprise
.
product_all1
.
like
(
"
%
{}
%
"
.
format
(
product
)),
Enterprise
.
product_all2
.
like
(
"
%
{}
%
"
.
format
(
product
))
))
if
select
==
1
:
# 上市
company
=
enterprise
.
filter_by
(
quoted_company
=
1
)
.
group_by
(
Enterprise
.
company_name
,
Enterprise
.
takingn
)
.
order_by
(
...
...
@@ -315,8 +321,14 @@ def prolink():
# 按照企业数量排序
for
name
in
result_bylink
:
company_count
=
Enterprise
.
query
.
filter
(
Enterprise
.
city
!=
'晋城市'
,
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
name
)))
.
count
()
# company_count = Enterprise.query.filter(Enterprise.city != '晋城市',
# Enterprise.product_all.like("%{}%".format(name))).count()
for
name
in
result_bylink
:
company_count
=
Enterprise
.
query
.
filter
(
Enterprise
.
city
!=
'晋城市'
)
.
filter
(
or_
(
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
name
)),
Enterprise
.
product_all1
.
like
(
"
%
{}
%
"
.
format
(
name
)),
Enterprise
.
product_all2
.
like
(
"
%
{}
%
"
.
format
(
name
))
))
.
count
()
df2
.
append
({
'name'
:
name
,
'company_count'
:
company_count
})
df2
.
sort
(
key
=
lambda
s
:
s
[
'company_count'
],
reverse
=
True
)
df2
=
df2
[(
page
-
1
)
*
perpage
:
page
*
perpage
]
...
...
@@ -414,10 +426,15 @@ def recommond():
if
not
name
:
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"查无数据!"
)
enterprise
=
Enterprise
.
query
.
filter
(
Enterprise
.
city
!=
'晋城市'
,
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
name
)))
enterprise
=
Enterprise
.
query
.
filter
(
Enterprise
.
city
!=
'晋城市'
)
.
filter
(
or_
(
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
name
)),
Enterprise
.
product_all1
.
like
(
"
%
{}
%
"
.
format
(
name
)),
Enterprise
.
product_all2
.
like
(
"
%
{}
%
"
.
format
(
name
))
))
size
=
enterprise
.
count
()
enterprise
=
enterprise
.
order_by
(
Enterprise
.
c_type
,
Enterprise
.
hots
.
desc
())
.
paginate
(
page
,
perpage
)
.
items
# # 企业热度倒序
enterprise
=
enterprise
.
order_by
(
# Enterprise.c_type,
Enterprise
.
hots
.
desc
())
.
paginate
(
page
,
perpage
)
.
items
# # 企业热度倒序
ent_data
=
[]
for
com
in
enterprise
:
if
com
.
city
==
'晋城市'
:
...
...
@@ -1058,7 +1075,11 @@ def radar_enums():
# return jsonify(code=RET.OK, msg="获取成功", data=data)
if
inid
:
enterprise
=
Enterprise
.
query
.
filter_by
(
c_type
=
inid
)
enterprise
=
Enterprise
.
query
.
filter
(
or_
(
Enterprise
.
c_type
==
inid
,
Enterprise
.
c_type1
==
inid
,
Enterprise
.
c_type2
==
inid
))
else
:
enterprise
=
Enterprise
.
query
.
filter_by
()
if
province
:
...
...
@@ -1069,7 +1090,12 @@ def radar_enums():
enterprise
=
enterprise
.
filter_by
(
district
=
district
)
if
product
:
# 有可能会变成模糊查询
enterprise
=
enterprise
.
filter
(
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
product
)))
enterprise
=
enterprise
.
filter
(
or_
(
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
product
)),
Enterprise
.
product_all1
.
like
(
"
%
{}
%
"
.
format
(
product
)),
Enterprise
.
product_all2
.
like
(
"
%
{}
%
"
.
format
(
product
))
)
)
nums_all
=
enterprise
.
count
()
# 企业总数
...
...
@@ -1132,7 +1158,11 @@ def newList1():
try
:
if
inid
:
enterprise
=
Enterprise
.
query
.
filter_by
(
c_type
=
inid
)
enterprise
=
Enterprise
.
query
.
filter
(
or_
(
Enterprise
.
c_type
==
inid
,
Enterprise
.
c_type1
==
inid
,
Enterprise
.
c_type2
==
inid
))
else
:
enterprise
=
Enterprise
.
query
.
filter_by
()
if
province
:
...
...
@@ -1143,7 +1173,11 @@ def newList1():
enterprise
=
enterprise
.
filter_by
(
district
=
district
)
if
product
:
# 有可能会变成模糊查询
enterprise
=
enterprise
.
filter
(
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
product
)))
enterprise
=
enterprise
.
filter
(
or_
(
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
product
)),
Enterprise
.
product_all1
.
like
(
"
%
{}
%
"
.
format
(
product
)),
Enterprise
.
product_all2
.
like
(
"
%
{}
%
"
.
format
(
product
))
))
if
name
:
# 有可能会变成模糊查询
enterprise
=
enterprise
.
filter
(
Enterprise
.
company_name
.
like
(
"
%
{}
%
"
.
format
(
name
)))
...
...
enterprise_to_industry_chain.py
deleted
100644 → 0
View file @
dda3c2a7
import
sys
import
threading
from
time
import
sleep
from
flask
import
app
from
apps.models
import
IndustryChain
,
Enterprise
from
manager
import
app
from
apps
import
db
# def jindu(enterprise_list_num):
# for i in range(1, enterprise_list_num):
# print("\r", end="")
# print("进度: {}%: ".format(i), "▓" * (i // 2), end="")
# sys.stdout.flush()
# sleep(0.05)
def
handle
():
with
app
.
app_context
():
industry_obj_list
=
IndustryChain
.
query
.
all
()
print
(
industry_obj_list
)
# 读取industry_chain数据表的产业名称
num
=
0
for
industry_obj
in
industry_obj_list
:
industry_name
=
industry_obj
.
industry_name
industry_id
=
industry_obj
.
id
chain_id
=
industry_obj
.
chain_id
# 读取全国企业表,模糊匹配product_all字段
if
industry_name
in
[
"钢铁"
,
"光机电"
,
"煤层气"
,
"装备制造"
,
"铸造"
,
"煤化工"
,
"新材料"
,
"绿色建材"
,
"医药"
,
"丝麻纺织服装"
,
"现代服务业"
,
"数字经济"
,
"文化旅游"
]:
print
(
"正在查询【{}】的相关企业......"
.
format
(
industry_name
))
enterprise_list
=
Enterprise
.
query
.
filter
(
Enterprise
.
c_type
==
industry_id
)
.
count
()
else
:
print
(
"正在查询【{}】的相关企业......"
.
format
(
industry_name
))
enterprise_list
=
Enterprise
.
query
.
filter
(
Enterprise
.
product_all
.
like
(
"
%
{}
%
"
.
format
(
industry_name
)),
Enterprise
.
c_type
==
chain_id
)
.
count
()
if
not
enterprise_list
:
enterprise_list
=
0
# 清空原有关联企业
# enterprise_list_num = len(enterprise_list)
industry_obj
.
enterprise_num
=
enterprise_list
# industry_obj.enterprise = []
db
.
session
.
commit
()
# enterprise_num = 0
# for enterprise_obj in enterprise_list:
# industry_obj.enterprise.append(enterprise_obj)
# enterprise_num += 1
# enterprise_list_num -= 1
# if enterprise_num >= 100:
# db.session.commit()
# enterprise_num = 0
# continue
# # elif enterprise_list_num == 0 and enterprise_num == 400:
# # db.session.commit()
# # enterprise_num = 0
# # continue
# # elif enterprise_list_num == 0 and enterprise_num == 300:
# # db.session.commit()
# # enterprise_num = 0
# # continue
# # elif enterprise_list_num == 0 and enterprise_num == 200:
# # db.session.commit()
# # enterprise_num = 0
# # continue
# # elif enterprise_list_num == 0 and enterprise_num == 100:
# # db.session.commit()
# # enterprise_num = 0
# # continue
# else:
# pass
# db.session.commit()
# continue
print
(
"产业链【{}】已完成, 数量【{}】个"
.
format
(
industry_name
,
enterprise_list
))
continue
# enterprise_num += 1
# enterprise_rate = str(enterprise_num / len(enterprise_list) * 100) + '%'
# print("需要添加【{}】的企业外键一共{}个,已完成{}".format(industry_name, len(enterprise_list), enterprise_rate))
# db.session.commit()
# num += 1
# print("产业链【{}】已完成,全部产业链已完成".format(industry_name) + str(num / 775 * 100) + '%')
# print("产业链【{}】已完成".format(industry_name))
if
__name__
==
'__main__'
:
t
=
threading
.
Thread
(
target
=
handle
)
t
.
start
()
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