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
79cf087d
Commit
79cf087d
authored
Apr 18, 2023
by
dong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix20230417
parent
82bdce55
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
280 additions
and
73 deletions
+280
-73
apps/big_data/view.py
+280
-62
apps/models.py
+0
-1
apps/view_index/view.py
+0
-10
No files found.
apps/big_data/view.py
View file @
79cf087d
...
...
@@ -5,86 +5,252 @@ from apps.utils.response_code import RET
from
apps.big_data
import
api_bigdata
# 获取项目列表
# 获取经济指标数据
@api_bigdata.route
(
"/GetJjzb"
,
methods
=
[
"POST"
])
def
get_jjzb
():
'''获取经济指标数据'''
req_dict
=
request
.
get_json
()
district
=
req_dict
.
get
(
"district"
)
# 区县或者开发区名称
year
=
req_dict
.
get
(
"year"
)
# 区县名称转换字典
district_dict
=
{
'沁水县'
:
'沁水县'
,
'高平市'
:
'高平市'
,
'陵川县'
:
'陵川县'
,
'阳城县'
:
'阳城县'
,
'泽州县'
:
'泽州县'
,
'城区'
:
'城区'
,
'晋城经济技术开发区'
:
'晋城经济技术开发区'
}
try
:
if
not
district
or
district
==
'晋城市'
:
datas
=
City
.
query
.
filter
(
City
.
area
==
'晋城市'
,
City
.
year
==
year
if
year
else
text
(
''
))
.
first
()
else
:
datas
=
City
.
query
.
filter
(
City
.
area
==
district
,
City
.
year
==
year
if
year
else
text
(
''
))
.
first
()
df_dic
=
''
if
datas
:
df_dic
=
{
"GDP"
:
'
%.2
f亿元'
%
(
datas
.
GDP
/
10000
)
if
datas
.
GDP
else
"-亿元"
,
# 地区生产总值
"addscale"
:
'
%.2
f'
%
datas
.
addscale
+
"
%
"
if
datas
.
addscale
else
"-
%
"
,
# 规上工业增加值增速
"investment"
:
'
%.2
f亿元'
%
(
datas
.
investment
/
10000
)
if
datas
.
investment
else
"-亿元"
,
# 固定资产投资
"retail"
:
'
%.2
f亿元'
%
(
datas
.
retail
/
10000
)
if
datas
.
retail
else
"-亿元"
,
# 社会消费品零售额
"in_out"
:
'
%.2
f亿元'
%
(
datas
.
in_out
/
10000
)
if
datas
.
in_out
else
"-亿元"
,
# 进出口总额
"public"
:
'
%.2
f亿元'
%
(
datas
.
public
/
10000
)
if
datas
.
public
else
"-亿元"
,
# 一般公共预算支出
"people_out"
:
'
%.2
f元'
%
datas
.
people_out
if
datas
.
people_out
else
"-元"
,
# 居民人均可支配收入
"people_per"
:
'
%.2
f'
%
datas
.
people_per
if
datas
.
people_per
else
"-"
,
"question"
:
datas
.
question
,
"year"
:
str
(
datas
.
year
)
+
'年'
}
# 居民消费价格指数
else
:
df_dic
=
{
"GDP"
:
''
,
# 地区生产总值
"addscale"
:
''
,
# 规上工业增加值增速
"investment"
:
''
,
# 固定资产投资
"retail"
:
''
,
# 社会消费品零售额
"in_out"
:
''
,
# 进出口总额
"public"
:
''
,
# 一般公共预算支出
"people_out"
:
''
,
# 居民人均可支配收入
"people_per"
:
''
,
"question"
:
''
,
"year"
:
str
(
datas
.
year
)
+
'年'
}
# 居民消费价格指数
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"查找成功"
,
data
=
df_dic
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
# 产业结构分布
@api_bigdata.route
(
"/GetCyjg"
,
methods
=
[
"POST"
])
def
get_cyjg
():
'''产业机构分布饼状图数据'''
req_dict
=
request
.
get_json
()
district
=
req_dict
.
get
(
"district"
)
# 区县或者开发区名称
year
=
req_dict
.
get
(
"year"
)
# 区县名称转换字典
district_dict
=
{
'沁水县'
:
'沁水县'
,
'高平市'
:
'高平市'
,
'陵川县'
:
'陵川县'
,
'阳城县'
:
'阳城县'
,
'泽州县'
:
'泽州县'
,
'城区'
:
'城区'
,
'晋城经济技术开发区'
:
'晋城经济技术开发区'
}
# 1. 左上角企业数量各资质统计
try
:
if
not
district
or
district
==
'晋城市'
:
company
=
Company
.
query
.
filter
(
Company
.
city
==
"晋城市"
,
Company
.
build_date
.
like
(
'
%
{}
%
'
.
format
(
year
)))
else
:
company
=
Company
.
query
.
filter
(
Company
.
district
==
district_dict
[
district
],
Company
.
city
==
"晋城市"
,
Company
.
build_date
.
like
(
'
%
{}
%
'
.
format
(
year
))
)
count_gt
=
company
.
filter_by
(
f_type
=
1
)
.
count
()
# 钢铁
count_gjd
=
company
.
filter_by
(
f_type
=
2
)
.
count
()
# 光机电
count_mcq
=
company
.
filter_by
(
f_type
=
7
)
.
count
()
# 煤层气
count_zbzz
=
company
.
filter_by
(
f_type
=
8
)
.
count
()
# 装备制造
count_zz
=
company
.
filter_by
(
f_type
=
9
)
.
count
()
# 铸造
count_mhg
=
company
.
filter_by
(
f_type
=
10
)
.
count
()
# 煤化工
count_xcl
=
company
.
filter_by
(
f_type
=
11
)
.
count
()
# 新材料
count_lsjc
=
company
.
filter_by
(
f_type
=
12
)
.
count
()
# 绿色建材
count_yy
=
company
.
filter_by
(
f_type
=
13
)
.
count
()
# 医药
count_smfz
=
company
.
filter_by
(
f_type
=
14
)
.
count
()
# 丝麻纺织服装
count_xdfwy
=
company
.
filter_by
(
f_type
=
15
)
.
count
()
# 现代服务业
count_szjj
=
company
.
filter_by
(
f_type
=
16
)
.
count
()
# 数字经济
count_whly
=
company
.
filter_by
(
f_type
=
17
)
.
count
()
# 文化旅游
# 产业结构分布
indu_dic
=
[
{
"name"
:
"钢铁"
,
"value"
:
count_gt
},
# {百分比,value}
{
"name"
:
"光机电"
,
"value"
:
count_gjd
},
{
"name"
:
"煤层气"
,
"value"
:
count_mcq
},
{
"name"
:
"装备制造"
,
"value"
:
count_zbzz
},
{
"name"
:
"铸造"
,
"value"
:
count_zz
},
{
"name"
:
"煤化工"
,
"value"
:
count_mhg
},
{
"name"
:
"新材料"
,
"value"
:
count_xcl
},
{
"name"
:
"绿色建材"
,
"value"
:
count_lsjc
},
{
"name"
:
"医药"
,
"value"
:
count_yy
},
{
"name"
:
"丝麻纺织服装"
,
"value"
:
count_smfz
},
{
"name"
:
"现代服务业"
,
"value"
:
count_xdfwy
},
{
"name"
:
"数字经济"
,
"value"
:
count_szjj
},
{
"name"
:
"文化旅游"
,
"value"
:
count_whly
}
]
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"查找成功"
,
data
=
indu_dic
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
# 招商引资作战图
@api_bigdata.route
(
"/GetZzt"
,
methods
=
[
"POST"
])
def
get_zzt
():
req_dict
=
request
.
get_json
()
district
=
req_dict
.
get
(
"district"
)
# 区县或者开发区名称
year
=
req_dict
.
get
(
"year"
)
try
:
project_map
=
[]
industry_money
=
[]
industry_nums
=
[]
list1
=
[
"晋城市"
,
"沁水县"
,
"高平市"
,
"陵川县"
,
"阳城县"
,
"泽州县"
,
"城区"
,
"晋城经济技术开发区"
]
# 晋城市,点击区县之前默认数据
if
not
district
or
district
==
'晋城市'
:
for
i
in
list1
:
# 1.招商引资作战图数据
ss
=
Examine
.
query
.
filter
(
Examine
.
district
==
i
,
Examine
.
year
.
like
(
'
%
{}
%
'
.
format
(
year
)))
.
first
()
project_map
.
append
({
"name"
:
i
,
"nums1"
:
"{}亿元"
.
format
(
ss
.
sign_finnish
),
"add1"
:
ss
.
sign_grade
,
"nums2"
:
"{}亿元"
.
format
(
ss
.
start_finish
),
"add2"
:
ss
.
start_grade
,
"nums3"
:
"{}亿元"
.
format
(
ss
.
invest_finish
),
"add3"
:
ss
.
invest_grade
,
"nums4"
:
"{}个"
.
format
(
ss
.
start_num
),
"add4"
:
ss
.
start_num_grade
})
# 点击区县后的联动数据
else
:
# 1.招商引资作战图数据
ss
=
Examine
.
query
.
filter_by
(
district
=
district
,
year
=
year
)
.
first
()
project_map
.
append
({
"name"
:
district
,
"nums1"
:
"{}亿元"
.
format
(
ss
.
sign_finnish
),
"add1"
:
ss
.
sign_grade
,
"nums2"
:
"{}亿元"
.
format
(
ss
.
start_finish
),
"add2"
:
ss
.
start_grade
,
"nums3"
:
"{}亿元"
.
format
(
ss
.
invest_finish
),
"add3"
:
ss
.
invest_grade
,
"nums4"
:
"{}个"
.
format
(
ss
.
start_num
),
"add4"
:
ss
.
start_num_grade
})
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"获取成功"
,
data
=
project_map
)
# 已开工项目分布
@api_bigdata.route
(
"/GetKgxm"
,
methods
=
[
"POST"
])
def
get_kgxm
():
req_dict
=
request
.
get_json
()
district
=
req_dict
.
get
(
"district"
)
# 区县或者开发区名称
# year = req_dict.get("year")
try
:
industry_money
=
[]
industry_nums
=
[]
# 晋城市,点击区县之前默认数据
if
not
district
or
district
==
'晋城市'
:
# 已开工项目产业分布/已开工项目到位资金产业分布
project_list
=
NewProject
.
query
.
filter_by
(
district
=
"晋城市"
)
.
all
()
i
=
0
for
project
in
project_list
:
i
+=
1
if
i
>
7
:
pass
else
:
industry_money
.
append
({
"name"
:
project
.
type
,
"value"
:
project
.
money
})
industry_nums
.
append
({
"name"
:
project
.
type
,
"value"
:
project
.
number
})
else
:
# 已开工项目产业分布/已开工项目到位资金产业分布
i
=
0
project_list
=
NewProject
.
query
.
filter_by
(
district
=
district
)
.
all
()
for
project
in
project_list
:
i
+=
1
if
i
>
7
:
pass
else
:
industry_money
.
append
({
"name"
:
project
.
type
,
"value"
:
project
.
money
})
industry_nums
.
append
({
"name"
:
project
.
type
,
"value"
:
project
.
number
})
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
data
=
{
"industry_nums"
:
industry_nums
,
# 已开工项目产业分布
"industry_money"
:
industry_money
,
# 已开工项目产业分布
}
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"获取成功"
,
data
=
data
)
# 晋城项目总览
@api_bigdata.route
(
"/GetProject"
,
methods
=
[
"POST"
])
def
get_project
():
req_dic
=
request
.
get_json
()
# # token = request.headers['token']
#
# project_stalker = req_dic['project_stalker']
#
# project_name = req_dic['project_name']
# district = req_dic['district']
# development_area = req_dic['development_area']
# investor_name = req_dic['investor_name']
# investor_district = req_dic['investor_district']
# industry = req_dic['industry']
# industry2 = ''
# if '/' in industry:
# industry1 = industry.split('/')[0]
# industry2 = industry.split('/')[1]
# else:
# industry1 = industry
# investment_volume = req_dic['investment_volume']
# project_progress = req_dic['project_progress']
# project_year = req_dic['project_year']
page
=
req_dic
[
'page'
]
per_page
=
req_dic
[
'per_page'
]
# flag = req_dic['flag']
# try:
# user_obj = verify_token(token)
# user_district = get_district_name(token)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.SESSIONERR, msg="进行操作时用户信息校验失败,请重新登陆后尝试!")
year
=
req_dic
[
'year'
]
try
:
# project_obj = ProjectManagement.query.filter(
# ProjectManagement.project_name.like('%{}%'.format(project_name)) if project_name else text(''),
# ProjectManagement.project_stalker == project_stalker if project_stalker else text(''),
# ProjectManagement.district == district if district else text(''),
# ProjectManagement.development_area == development_area if development_area else text(''),
# ProjectManagement.investment_volume > investment_volume[0] if investment_volume else text(''),
# ProjectManagement.investment_volume <= investment_volume[1] if investment_volume else text(''),
# ProjectManagement.investor_district.like('%{}%'.format(investor_district)) if investor_district else text(
# ''),
# ProjectManagement.industry.like('%{}%'.format(industry1)) if industry1 else text(''),
# ProjectManagement.industry2.like('%{}%'.format(industry2)) if industry2 else text(''),
# ProjectManagement.investor_name.like('%{}%'.format(investor_name)) if investor_name else text(''),
# ProjectManagement.project_progress == project_progress if project_progress else text(''),
# ProjectManagement.project_year == project_year if project_year else text(''),
# ProjectManagement.is_delete == 0
# )
project_obj
=
ProjectManagement
.
query
.
filter
(
# ProjectManagement.district == user_district if user_district != '晋城市' else text(''),
# ProjectManagement.sign_time.notin_(['Null', '']) if flag == 2 else text(''),
# ProjectManagement.project_name.like('%{}%'.format(project_name)) if project_name else text(''),
# ProjectManagement.project_stalker == project_stalker if project_stalker else text(''),
# ProjectManagement.project_stalker != '' if flag == 2 else text(''),
# ProjectManagement.district == district if district else text(''),
# ProjectManagement.development_area == development_area if development_area else text(''),
# ProjectManagement.investment_volume > investment_volume[0] if investment_volume else text(''),
# ProjectManagement.investment_volume <= investment_volume[1] if investment_volume else text(''),
# ProjectManagement.investor_district.like('%{}%'.format(investor_district)) if investor_district else text(''),
# ProjectManagement.industry.like('%{}%'.format(industry1)) if industry1 else text(''),
# ProjectManagement.industry2.like('%{}%'.format(industry2)) if industry2 else text(''),
# ProjectManagement.investor_name.like('%{}%'.format(investor_name)) if investor_name else text(''),
# ProjectManagement.project_progress == project_progress if project_progress else text(''),
# ProjectManagement.project_year == project_year if project_year else text(''),
ProjectManagement
.
is_delete
==
0
ProjectManagement
.
is_delete
==
0
,
ProjectManagement
.
sign_time
.
like
(
"
%
{}
%
"
.
format
(
year
))
if
year
else
text
(
''
)
)
if
not
project_obj
.
all
():
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
'没有符合条件的数据!'
)
project_size
=
project_obj
.
count
()
project_obj_list
=
project_obj
.
order_by
(
ProjectManagement
.
upload
_time
.
desc
())
.
paginate
(
page
,
per_page
)
.
items
project_obj_list
=
project_obj
.
order_by
(
ProjectManagement
.
sign
_time
.
desc
())
.
paginate
(
page
,
per_page
)
.
items
if
project_obj_list
:
data
=
[{
"id"
:
project_obj
.
id
,
"sign_time"
:
project_obj
.
sign_time
,
"project_stalker"
:
project_obj
.
project_stalker
,
"project_name"
:
project_obj
.
project_name
,
"district"
:
project_obj
.
district
,
...
...
@@ -105,3 +271,55 @@ def get_project():
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"查询数据库错误!"
)
# 重点招商项目
@api_bigdata.route
(
"/MajorProject"
,
methods
=
[
"POST"
])
def
major_project
():
req_dict
=
request
.
get_json
()
district
=
req_dict
.
get
(
"district"
)
# 县区
try
:
if
not
district
or
district
==
"晋城市"
:
project
=
Project
.
query
.
all
()
data_project
=
[{
"name"
:
i
.
name
,
"id"
:
i
.
id
}
for
i
in
project
]
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"查询成功"
,
data
=
data_project
)
else
:
# 区县、开发区
project
=
Project
.
query
.
filter_by
(
district
=
district
)
data_project
=
[{
"name"
:
i
.
name
,
"id"
:
i
.
id
}
for
i
in
project
]
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"查询成功"
,
data
=
data_project
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DATAERR
,
msg
=
"数据库错误"
)
# 获取重点项目的详情,详情页
@api_bigdata.route
(
"/MajorProjectDetail"
,
methods
=
[
"POST"
])
def
major_project_detail
():
req_dic
=
request
.
get_json
()
id
=
req_dic
.
get
(
"id"
)
if
not
id
:
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"参数不完整"
)
try
:
project
=
Project
.
query
.
get
(
id
)
data
=
{
"id"
:
project
.
id
,
# 工程名
"name"
:
project
.
name
,
# 工程名
"district"
:
project
.
district
,
# 区县名称
"type"
:
project
.
type
,
# 工程类型
"money"
:
project
.
money
,
# 项目投资金额
"background"
:
project
.
background
,
# 项目背景
"content"
:
project
.
content
,
# 项目的具体内容
"way"
:
project
.
way
,
# 拟引资方式及内容
"company"
:
project
.
company
,
# 招商单位
"contact"
:
project
.
contact
,
# 联系方式
"email"
:
project
.
email
,
# 电子邮箱
"progress"
:
'落地项目'
if
project
.
project_stage_id
==
1
else
'招商项目'
if
project
.
project_stage_id
==
2
else
''
}
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"查找成功"
,
data
=
data
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
apps/models.py
View file @
79cf087d
...
...
@@ -618,7 +618,6 @@ class Project(BaseModel, db.Model):
project_stage_id
=
db
.
Column
(
db
.
Integer
,
comment
=
'项目阶段id:落地项目为1,招商项目为2'
)
name
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'工程名'
)
# 一.工程名
district
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'区县名称'
)
# 二.县区
# money = db.Column(db.String(255), comment='项目投资金额') # 三.(2)项目投资金额
money
=
db
.
Column
(
db
.
Float
,
comment
=
'项目投资金额'
)
# 三.(2)项目投资金额
attract_industry
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'招引业态'
)
# 三.(2)项目投资金额
type
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'工程类型'
)
# 三.(1)工程类型
...
...
apps/view_index/view.py
View file @
79cf087d
...
...
@@ -159,10 +159,6 @@ def menu():
}
# 2. 左上角获取经济指标数据
# year = datetime.now().year - 1
# jjzb_data = get_jjzb(district, year)
# year = datetime.now().year
# jjzb_data1 = get_jjzb(district, year)
jjzb_data
=
get_jjzb
(
district
,
1
)
jjzb_data1
=
get_jjzb
(
district
,
2
)
...
...
@@ -185,10 +181,6 @@ def menu():
count_szjj
=
company
.
filter_by
(
f_type
=
16
)
.
count
()
# 数字经济
count_whly
=
company
.
filter_by
(
f_type
=
17
)
.
count
()
# 文化旅游
count_qt
=
count_all
-
count_gt
-
count_gjd
-
count_mcq
-
count_zbzz
-
\
count_zz
-
count_mhg
-
count_xcl
-
count_lsjc
-
count_yy
-
\
count_smfz
-
count_xdfwy
-
count_szjj
-
count_whly
# 产业结构分布
indu_dic
=
[
{
"name"
:
"钢铁"
,
"value"
:
count_gt
},
# {百分比,value}
...
...
@@ -206,8 +198,6 @@ def menu():
{
"name"
:
"文化旅游"
,
"value"
:
count_whly
}
]
# TODO 4.五大千亿级产业集群
data
=
{
"jjzb_dic"
:
jjzb_data
,
# 左上角经济指标数据
"jjzb_dic1"
:
jjzb_data1
,
# 左上角经济指标数据
...
...
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