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
7de7c5c4
Commit
7de7c5c4
authored
Nov 30, 2022
by
dong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix20221130
parent
77e60885
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
427 additions
and
319 deletions
+427
-319
apps/inves_manage/statistic_analysis_view.py
+427
-319
No files found.
apps/inves_manage/statistic_analysis_view.py
View file @
7de7c5c4
...
@@ -26,53 +26,6 @@ from apps.inves_manage.siku_view import get_num, upload_daily_picture
...
@@ -26,53 +26,6 @@ from apps.inves_manage.siku_view import get_num, upload_daily_picture
"""指标分析"""
"""指标分析"""
# 山西省地市数据统计
@api_manage.route
(
"/StatisticShanxiData"
,
methods
=
[
"POST"
])
def
statistic_shanxi_data
():
req_dic
=
request
.
get_json
()
flag
=
req_dic
[
'flag'
]
# 1项目签约金额完成情况, 2新开工项目计划投资额完成情况, 3固定资产投资项目资金到位完成情况
try
:
# 获取最新的时间周期
data_obj
=
ShanxiTarget
.
query
.
order_by
(
sqlalchemy
.
desc
(
ShanxiTarget
.
id
))
.
first
()
data_time
=
data_obj
.
data_time
# 获取最新时间周期的数据
target_obj_li
=
ShanxiTarget
.
query
.
filter_by
(
data_time
=
data_time
)
.
all
()
data1
=
''
data2
=
''
if
flag
==
1
:
data
=
[{
"district_name"
:
target_obj
.
district_name
,
"sign_money"
:
str
(
target_obj
.
sign_money
/
10000
)
+
'亿'
,
"sign_target_money"
:
str
(
target_obj
.
sign_target_money
/
10000
)
+
'亿'
,
"sign_finish_rate"
:
str
(
target_obj
.
sign_finish_rate
/
100
)
+
'
%
'
,
}
for
target_obj
in
target_obj_li
]
data1
=
sorted
(
data
,
key
=
lambda
x
:
x
[
'sign_money'
],
reverse
=
True
)
data2
=
sorted
(
data1
,
key
=
lambda
x
:
x
[
'sign_finish_rate'
],
reverse
=
True
)
if
flag
==
2
:
data
=
[{
"district_name"
:
target_obj
.
district_name
,
"plan_invest_money"
:
str
(
target_obj
.
plan_invest_money
/
10000
)
+
'亿'
,
"plan_target_money"
:
str
(
target_obj
.
plan_target_money
/
10000
)
+
'亿'
,
"plan_finish_rate"
:
str
(
target_obj
.
plan_finish_rate
)
+
'
%
'
,
}
for
target_obj
in
target_obj_li
]
data1
=
sorted
(
data
,
key
=
lambda
x
:
x
[
'plan_invest_money'
],
reverse
=
True
)
data2
=
sorted
(
data1
,
key
=
lambda
x
:
x
[
'plan_finish_rate'
],
reverse
=
True
)
if
flag
==
3
:
data
=
[{
"district_name"
:
target_obj
.
district_name
,
"arrive_money"
:
str
(
target_obj
.
arrive_money
/
10000
)
+
'亿'
,
"arrive_target_money"
:
str
(
target_obj
.
arrive_target_money
/
10000
)
+
'亿'
,
"arrive_finish_rate"
:
str
(
target_obj
.
arrive_finish_rate
)
+
'
%
'
,
}
for
target_obj
in
target_obj_li
]
data1
=
sorted
(
data
,
key
=
lambda
x
:
x
[
'arrive_money'
],
reverse
=
True
)
data2
=
sorted
(
data1
,
key
=
lambda
x
:
x
[
'arrive_finish_rate'
],
reverse
=
True
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
{
"data1"
:
data1
,
"data2"
:
data2
},
msg
=
"获取成功!"
)
except
Exception
as
e
:
db
.
session
.
rollback
()
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"查询数据库错误!"
)
# 项目签约完成率
# 项目签约完成率
def
get_data1
(
district_li
,
current_year
):
def
get_data1
(
district_li
,
current_year
):
data_li1
=
[]
data_li1
=
[]
...
@@ -80,7 +33,7 @@ def get_data1(district_li, current_year):
...
@@ -80,7 +33,7 @@ def get_data1(district_li, current_year):
for
district
in
district_li
:
for
district
in
district_li
:
project_obj_list
=
ProjectManagement
.
query
.
filter
(
project_obj_list
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
)
.
all
()
)
.
all
()
if
not
project_obj_list
:
if
not
project_obj_list
:
investment_volume
=
0
investment_volume
=
0
...
@@ -88,7 +41,7 @@ def get_data1(district_li, current_year):
...
@@ -88,7 +41,7 @@ def get_data1(district_li, current_year):
investment_volume
=
sum
([
project_obj
.
investment_volume
for
project_obj
in
project_obj_list
])
investment_volume
=
sum
([
project_obj
.
investment_volume
for
project_obj
in
project_obj_list
])
# 年度目标
# 年度目标
jc_obj
=
JcTarget
.
query
.
filter
(
jc_obj
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
,
JcTarget
.
district_name
==
district
if
district
!=
'全市'
else
text
(
''
)
,
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
)))
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
)))
)
.
first
()
)
.
first
()
if
not
jc_obj
:
if
not
jc_obj
:
...
@@ -97,8 +50,8 @@ def get_data1(district_li, current_year):
...
@@ -97,8 +50,8 @@ def get_data1(district_li, current_year):
year_target
=
jc_obj
.
money_sign
year_target
=
jc_obj
.
money_sign
data
=
{
data
=
{
"
district
"
:
district
,
"
name
"
:
district
,
"
rate"
:
round
(
investment_volume
/
year_target
,
2
)
*
100
if
year_target
and
year_target
!=
0
else
0
"
value"
:
round
(
investment_volume
/
year_target
*
100
,
2
)
if
year_target
and
year_target
!=
0
else
0
}
}
data_li1
.
append
(
data
)
data_li1
.
append
(
data
)
continue
continue
...
@@ -117,17 +70,17 @@ def get_data2(district_li, current_year):
...
@@ -117,17 +70,17 @@ def get_data2(district_li, current_year):
# 签约项目个数
# 签约项目个数
sign_num
=
ProjectManagement
.
query
.
filter
(
sign_num
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
)
.
count
()
)
.
count
()
# 年度目标
# 年度目标
start_num
=
ProjectManagement
.
query
.
filter
(
start_num
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
start_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
ProjectManagement
.
start_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
)
.
count
()
)
.
count
()
data
=
{
data
=
{
"
district
"
:
district
,
"
name
"
:
district
,
"
rate"
:
round
(
start_num
/
sign_num
,
2
)
*
100
if
sign_num
and
sign_num
!=
0
else
0
"
value"
:
round
(
start_num
/
sign_num
*
100
,
2
)
if
sign_num
and
sign_num
!=
0
else
0
}
}
data_li2
.
append
(
data
)
data_li2
.
append
(
data
)
continue
continue
...
@@ -145,7 +98,7 @@ def get_data3(district_li, current_year):
...
@@ -145,7 +98,7 @@ def get_data3(district_li, current_year):
for
district
in
district_li
:
for
district
in
district_li
:
project_obj_list
=
ProjectManagement
.
query
.
filter
(
project_obj_list
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
start_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
ProjectManagement
.
start_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
)
.
all
()
)
.
all
()
if
not
project_obj_list
:
if
not
project_obj_list
:
investment_volume
=
0
investment_volume
=
0
...
@@ -153,7 +106,7 @@ def get_data3(district_li, current_year):
...
@@ -153,7 +106,7 @@ def get_data3(district_li, current_year):
investment_volume
=
sum
([
project_obj
.
investment_volume
for
project_obj
in
project_obj_list
])
investment_volume
=
sum
([
project_obj
.
investment_volume
for
project_obj
in
project_obj_list
])
# 年度目标
# 年度目标
jc_obj
=
JcTarget
.
query
.
filter
(
jc_obj
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
,
JcTarget
.
district_name
==
district
if
district
!=
'全市'
else
text
(
''
)
,
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
)))
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
)))
)
.
first
()
)
.
first
()
if
not
jc_obj
:
if
not
jc_obj
:
...
@@ -162,8 +115,8 @@ def get_data3(district_li, current_year):
...
@@ -162,8 +115,8 @@ def get_data3(district_li, current_year):
year_target
=
jc_obj
.
money_plan_invest
year_target
=
jc_obj
.
money_plan_invest
data
=
{
data
=
{
"
district
"
:
district
,
"
name
"
:
district
,
"
rate"
:
round
(
investment_volume
/
year_target
,
2
)
*
100
if
year_target
and
year_target
!=
0
else
0
"
value"
:
round
(
investment_volume
/
year_target
*
100
,
2
)
if
year_target
and
year_target
!=
0
else
0
}
}
data_li3
.
append
(
data
)
data_li3
.
append
(
data
)
continue
continue
...
@@ -181,7 +134,7 @@ def get_data4(district_li, current_year):
...
@@ -181,7 +134,7 @@ def get_data4(district_li, current_year):
for
district
in
district_li
:
for
district
in
district_li
:
project_obj
=
MoneyArrive
.
query
.
filter
(
project_obj
=
MoneyArrive
.
query
.
filter
(
MoneyArrive
.
data_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
MoneyArrive
.
data_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
MoneyArrive
.
district_name
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
MoneyArrive
.
district_name
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
)
.
first
()
)
.
first
()
if
not
project_obj
:
if
not
project_obj
:
arrive_money
=
0
arrive_money
=
0
...
@@ -189,7 +142,7 @@ def get_data4(district_li, current_year):
...
@@ -189,7 +142,7 @@ def get_data4(district_li, current_year):
arrive_money
=
project_obj
.
arrive_money
arrive_money
=
project_obj
.
arrive_money
# 年度目标
# 年度目标
jc_obj
=
JcTarget
.
query
.
filter
(
jc_obj
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
,
JcTarget
.
district_name
==
district
if
district
!=
'全市'
else
text
(
''
)
,
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
)))
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
)))
)
.
first
()
)
.
first
()
if
not
jc_obj
:
if
not
jc_obj
:
...
@@ -198,8 +151,8 @@ def get_data4(district_li, current_year):
...
@@ -198,8 +151,8 @@ def get_data4(district_li, current_year):
year_target
=
jc_obj
.
money_arrive_target1
year_target
=
jc_obj
.
money_arrive_target1
data
=
{
data
=
{
"
district
"
:
district
,
"
name
"
:
district
,
"
rate"
:
round
(
arrive_money
/
year_target
,
2
)
*
100
if
year_target
and
year_target
!=
0
else
0
"
value"
:
round
(
arrive_money
/
year_target
*
100
,
2
)
if
year_target
and
year_target
!=
0
else
0
}
}
data_li4
.
append
(
data
)
data_li4
.
append
(
data
)
continue
continue
...
@@ -218,7 +171,7 @@ def get_data5(district_li, current_year):
...
@@ -218,7 +171,7 @@ def get_data5(district_li, current_year):
project_obj_list
=
ProjectManagement
.
query
.
filter
(
project_obj_list
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
is_fixed_investment
==
'否'
,
ProjectManagement
.
is_fixed_investment
==
'否'
,
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
)
.
all
()
)
.
all
()
if
not
project_obj_list
:
if
not
project_obj_list
:
investment_volume
=
0
investment_volume
=
0
...
@@ -226,7 +179,7 @@ def get_data5(district_li, current_year):
...
@@ -226,7 +179,7 @@ def get_data5(district_li, current_year):
investment_volume
=
sum
([
project_obj
.
investment_year
for
project_obj
in
project_obj_list
])
investment_volume
=
sum
([
project_obj
.
investment_year
for
project_obj
in
project_obj_list
])
# 年度目标
# 年度目标
jc_obj
=
JcTarget
.
query
.
filter
(
jc_obj
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
,
JcTarget
.
district_name
==
district
if
district
!=
'全市'
else
text
(
''
)
,
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
)))
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
)))
)
.
first
()
)
.
first
()
if
not
jc_obj
:
if
not
jc_obj
:
...
@@ -234,8 +187,8 @@ def get_data5(district_li, current_year):
...
@@ -234,8 +187,8 @@ def get_data5(district_li, current_year):
else
:
else
:
year_target
=
jc_obj
.
money_arrive_target0
year_target
=
jc_obj
.
money_arrive_target0
data
=
{
data
=
{
"
district
"
:
district
,
"
name
"
:
district
,
"
rate"
:
round
(
investment_volume
/
year_target
,
2
)
*
100
if
year_target
and
year_target
!=
0
else
0
"
value"
:
round
(
investment_volume
/
year_target
*
100
,
2
)
if
year_target
and
year_target
!=
0
else
0
}
}
data_li5
.
append
(
data
)
data_li5
.
append
(
data
)
continue
continue
...
@@ -254,46 +207,46 @@ def get_data6(district_li, current_year):
...
@@ -254,46 +207,46 @@ def get_data6(district_li, current_year):
# 则输出完成率(%)*赋分(15 上传后获取)的结果,否则输出赋分(15)
# 则输出完成率(%)*赋分(15 上传后获取)的结果,否则输出赋分(15)
grade_li1
=
[]
grade_li1
=
[]
for
data
in
data_li1
:
for
data
in
data_li1
:
grade
=
data
[
"
rat
e"
]
*
15
grade
=
data
[
"
valu
e"
]
*
15
if
grade
<
15
:
if
grade
<
15
:
grade_li1
.
append
({
"
district"
:
data
[
"district
"
],
"grade"
:
grade
})
grade_li1
.
append
({
"
name"
:
data
[
"name
"
],
"grade"
:
grade
})
else
:
else
:
grade_li1
.
append
({
"
district"
:
data
[
"district
"
],
"grade"
:
15
})
grade_li1
.
append
({
"
name"
:
data
[
"name
"
],
"grade"
:
15
})
# 项目开工率情况得分=如果开工率进度小于0.4,则输出开工率进度*赋分(5分)/0.4,否则输出赋分(5分);
# 项目开工率情况得分=如果开工率进度小于0.4,则输出开工率进度*赋分(5分)/0.4,否则输出赋分(5分);
grade_li2
=
[]
grade_li2
=
[]
for
data
in
data_li2
:
for
data
in
data_li2
:
grade
=
data
[
"
rat
e"
]
grade
=
data
[
"
valu
e"
]
if
grade
<
0.4
:
if
grade
<
0.4
:
grade_li2
.
append
({
"
district"
:
data
[
"district
"
],
"grade"
:
grade
*
5
/
0.4
})
grade_li2
.
append
({
"
name"
:
data
[
"name
"
],
"grade"
:
grade
*
5
/
0.4
})
else
:
else
:
grade_li2
.
append
({
"
district"
:
data
[
"district
"
],
"grade"
:
5
})
grade_li2
.
append
({
"
name"
:
data
[
"name
"
],
"grade"
:
5
})
# 新开工固定资产投资项目计划投资额完成情况得分=如果完成率(%)小于1,
# 新开工固定资产投资项目计划投资额完成情况得分=如果完成率(%)小于1,
# 则输出完成率(%)*赋分(25 上传后获取)的结果,否则输出赋分(25);
# 则输出完成率(%)*赋分(25 上传后获取)的结果,否则输出赋分(25);
grade_li3
=
[]
grade_li3
=
[]
for
data
in
data_li3
:
for
data
in
data_li3
:
grade
=
data
[
"
rat
e"
]
grade
=
data
[
"
valu
e"
]
if
grade
<
1
:
if
grade
<
1
:
grade_li3
.
append
({
"
district"
:
data
[
"district
"
],
"grade"
:
grade
*
25
})
grade_li3
.
append
({
"
name"
:
data
[
"name
"
],
"grade"
:
grade
*
25
})
else
:
else
:
grade_li3
.
append
({
"
district"
:
data
[
"district
"
],
"grade"
:
25
})
grade_li3
.
append
({
"
name"
:
data
[
"name
"
],
"grade"
:
25
})
# 固定资产投资项目资金到位情况得分=如果完成率(%)小于1,
# 固定资产投资项目资金到位情况得分=如果完成率(%)小于1,
# 则输出完成率(%)*赋分(25 上传后获取)的结果,否则输出赋分(25);
# 则输出完成率(%)*赋分(25 上传后获取)的结果,否则输出赋分(25);
grade_li4
=
[]
grade_li4
=
[]
for
data
in
data_li4
:
for
data
in
data_li4
:
grade
=
data
[
"
rat
e"
]
grade
=
data
[
"
valu
e"
]
if
grade
<
1
:
if
grade
<
1
:
grade_li4
.
append
({
"
district"
:
data
[
"district
"
],
"grade"
:
grade
*
25
})
grade_li4
.
append
({
"
name"
:
data
[
"name
"
],
"grade"
:
grade
*
25
})
else
:
else
:
grade_li4
.
append
({
"
district"
:
data
[
"district
"
],
"grade"
:
25
})
grade_li4
.
append
({
"
name"
:
data
[
"name
"
],
"grade"
:
25
})
# 非固定资产投资项目资金到位情况得分=如果完成率(%)小于1,
# 非固定资产投资项目资金到位情况得分=如果完成率(%)小于1,
# 则输出完成率(%)*赋分(5 上传后获取)的结果,否则输出赋分(5);
# 则输出完成率(%)*赋分(5 上传后获取)的结果,否则输出赋分(5);
grade_li5
=
[]
grade_li5
=
[]
for
data
in
data_li5
:
for
data
in
data_li5
:
grade
=
data
[
"
rat
e"
]
grade
=
data
[
"
valu
e"
]
if
grade
<
1
:
if
grade
<
1
:
grade_li5
.
append
({
"
district"
:
data
[
"district
"
],
"grade"
:
grade
*
5
})
grade_li5
.
append
({
"
name"
:
data
[
"name
"
],
"grade"
:
grade
*
5
})
else
:
else
:
grade_li5
.
append
({
"
district"
:
data
[
"district
"
],
"grade"
:
5
})
grade_li5
.
append
({
"
name"
:
data
[
"name
"
],
"grade"
:
5
})
grade1
=
0
grade1
=
0
grade2
=
0
grade2
=
0
grade3
=
0
grade3
=
0
...
@@ -302,26 +255,26 @@ def get_data6(district_li, current_year):
...
@@ -302,26 +255,26 @@ def get_data6(district_li, current_year):
for
district
in
district_li
:
for
district
in
district_li
:
# 签约情况得分
# 签约情况得分
for
grade_dic
in
grade_li1
:
for
grade_dic
in
grade_li1
:
if
grade_dic
[
"
district
"
]
==
district
:
if
grade_dic
[
"
name
"
]
==
district
:
grade1
=
grade_dic
[
"grade"
]
grade1
=
grade_dic
[
"grade"
]
# 项目开工率情况得分
# 项目开工率情况得分
for
grade_dic
in
grade_li2
:
for
grade_dic
in
grade_li2
:
if
grade_dic
[
"
district
"
]
==
district
:
if
grade_dic
[
"
name
"
]
==
district
:
grade2
=
grade_dic
[
"grade"
]
grade2
=
grade_dic
[
"grade"
]
# 新开工得分
# 新开工得分
for
grade_dic
in
grade_li3
:
for
grade_dic
in
grade_li3
:
if
grade_dic
[
"
district
"
]
==
district
:
if
grade_dic
[
"
name
"
]
==
district
:
grade3
=
grade_dic
[
"grade"
]
grade3
=
grade_dic
[
"grade"
]
# 固定资产得分
# 固定资产得分
for
grade_dic
in
grade_li4
:
for
grade_dic
in
grade_li4
:
if
grade_dic
[
"
district
"
]
==
district
:
if
grade_dic
[
"
name
"
]
==
district
:
grade4
=
grade_dic
[
"grade"
]
grade4
=
grade_dic
[
"grade"
]
# 非固定资产得分
# 非固定资产得分
for
grade_dic
in
grade_li5
:
for
grade_dic
in
grade_li5
:
if
grade_dic
[
"
district
"
]
==
district
:
if
grade_dic
[
"
name
"
]
==
district
:
grade5
=
grade_dic
[
"grade"
]
grade5
=
grade_dic
[
"grade"
]
total_grade
=
grade1
+
grade2
+
grade3
+
grade4
+
grade5
total_grade
=
grade1
+
grade2
+
grade3
+
grade4
+
grade5
data_li6
.
append
({
"
district"
:
district
,
"total_grad
e"
:
total_grade
})
data_li6
.
append
({
"
name"
:
district
,
"valu
e"
:
total_grade
})
return
data_li6
return
data_li6
...
@@ -354,15 +307,60 @@ def get_data_li(district_li, current_year):
...
@@ -354,15 +307,60 @@ def get_data_li(district_li, current_year):
return
data_li1
,
data_li2
,
data_li3
,
data_li4
,
data_li5
return
data_li1
,
data_li2
,
data_li3
,
data_li4
,
data_li5
# 山西省地市数据统计
@api_manage.route
(
"/StatisticShanxiData"
,
methods
=
[
"POST"
])
def
statistic_shanxi_data
():
req_dic
=
request
.
get_json
()
flag
=
req_dic
[
'flag'
]
# 1项目签约金额完成情况, 2新开工项目计划投资额完成情况, 3固定资产投资项目资金到位完成情况
try
:
# 获取最新的时间周期
data_obj
=
ShanxiTarget
.
query
.
order_by
(
sqlalchemy
.
desc
(
ShanxiTarget
.
id
))
.
first
()
data_time
=
data_obj
.
data_time
# 获取最新时间周期的数据
target_obj_li
=
ShanxiTarget
.
query
.
filter_by
(
data_time
=
data_time
)
.
all
()
data1
=
''
data2
=
''
if
flag
==
1
:
data
=
[{
"district_name"
:
target_obj
.
district_name
,
"sign_money"
:
target_obj
.
sign_money
/
10000
,
"sign_target_money"
:
target_obj
.
sign_target_money
/
10000
,
"sign_finish_rate"
:
target_obj
.
sign_finish_rate
/
100
,
}
for
target_obj
in
target_obj_li
]
data1
=
sorted
(
data
,
key
=
lambda
x
:
x
[
'sign_money'
],
reverse
=
True
)
data2
=
sorted
(
data1
,
key
=
lambda
x
:
x
[
'sign_finish_rate'
],
reverse
=
True
)
if
flag
==
2
:
data
=
[{
"district_name"
:
target_obj
.
district_name
,
"plan_invest_money"
:
target_obj
.
plan_invest_money
/
10000
,
"plan_target_money"
:
target_obj
.
plan_target_money
/
10000
,
"plan_finish_rate"
:
target_obj
.
plan_finish_rate
,
}
for
target_obj
in
target_obj_li
]
data1
=
sorted
(
data
,
key
=
lambda
x
:
x
[
'plan_invest_money'
],
reverse
=
True
)
data2
=
sorted
(
data1
,
key
=
lambda
x
:
x
[
'plan_finish_rate'
],
reverse
=
True
)
if
flag
==
3
:
data
=
[{
"district_name"
:
target_obj
.
district_name
,
"arrive_money"
:
target_obj
.
arrive_money
/
10000
,
"arrive_target_money"
:
target_obj
.
arrive_target_money
/
10000
,
"arrive_finish_rate"
:
target_obj
.
arrive_finish_rate
,
}
for
target_obj
in
target_obj_li
]
data1
=
sorted
(
data
,
key
=
lambda
x
:
x
[
'arrive_money'
],
reverse
=
True
)
data2
=
sorted
(
data1
,
key
=
lambda
x
:
x
[
'arrive_finish_rate'
],
reverse
=
True
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
{
"data1"
:
data1
,
"data2"
:
data2
},
msg
=
"获取成功!"
)
except
Exception
as
e
:
db
.
session
.
rollback
()
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"查询数据库错误!"
)
# 晋城市数据统计
# 晋城市数据统计
@api_manage.route
(
"/StatisticJcData"
,
methods
=
[
"POST"
])
@api_manage.route
(
"/StatisticJcData"
,
methods
=
[
"POST"
])
def
statistic_jc_data
():
def
statistic_jc_data
():
# req_dic = request.get_json()
# req_dic = request.get_json()
current_year
=
datetime
.
now
()
.
year
current_year
=
datetime
.
now
()
.
year
district_li
=
[
""
,
"城区"
,
"泽州县"
,
"高平市"
,
"阳城县"
,
"陵川县"
,
district_li
=
[
"全市"
,
"城区"
,
"泽州县"
,
"高平市"
,
"阳城县"
,
"陵川县"
,
"沁水县"
,
"晋城经济技术开发区"
,
"高平经济技术开发区"
,
"沁水县"
,
"晋城经济技术开发区"
]
"阳城经济技术开发区"
,
"沁水经济技术开发区"
,
"陵川生态文化旅游示范区"
]
try
:
try
:
data_li1
,
data_li2
,
data_li3
,
data_li4
,
data_li5
=
get_data_li
(
district_li
,
current_year
)
data_li1
,
data_li2
,
data_li3
,
data_li4
,
data_li5
=
get_data_li
(
district_li
,
current_year
)
...
@@ -378,194 +376,234 @@ def statistic_jc_data():
...
@@ -378,194 +376,234 @@ def statistic_jc_data():
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据查询错误!"
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据查询错误!"
)
# 区县指标完成表导出
# 区县
/开发区
指标完成表导出
@api_manage.route
(
"/ExportJcData
1
"
,
methods
=
[
"POST"
])
@api_manage.route
(
"/ExportJcData"
,
methods
=
[
"POST"
])
def
export_jc_data
1
():
def
export_jc_data
():
req_dic
=
request
.
get_json
()
req_dic
=
request
.
get_json
()
district
=
req_dic
[
'district'
]
flag
=
req_dic
[
'flag'
]
# 1县(市、区)、开发区指标,2开发区(示范区)指标
data_time
=
req_dic
[
'data_time'
]
# year = req_dic['year']
current_year
=
datetime
.
now
()
.
year
current_year
=
datetime
.
now
()
.
year
path
=
'./apps/statics/project_file/'
path
=
'./apps/statics/project_file/'
# pro_path = 'http://39.100.39.50:8008/aaa_statics/project_file/' # 项目路径
# pro_path = 'http://39.100.39.50:8008/aaa_statics/project_file/' # 项目路径
pro_path
=
'http://192.168.1.4:5000/statics/project_file/'
# 项目路径
pro_path
=
'http://192.168.1.4:5000/statics/project_file/'
# 项目路径
if
flag
==
1
:
res
=
export_jc_data1
(
data_time
,
path
,
pro_path
)
if
res
==
'error'
:
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
'区县指标导出失败!'
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
res
,
msg
=
'区县指标导出成功。'
)
if
flag
==
2
:
res
=
export_jc_data2
(
data_time
,
path
,
pro_path
)
if
res
==
'error'
:
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
'开发区指标导出失败!'
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
res
,
msg
=
'开发区指标导出成功。'
)
# 区县指标完成表导出
def
export_jc_data1
(
data_time
,
path
,
pro_path
):
# 2022年1-11月
current_year
=
data_time
.
split
(
'年'
)[
0
]
current_month
=
data_time
.
split
(
'年'
)[
1
]
.
split
(
'月'
)[
0
]
current_month1
=
current_month
.
split
(
'-'
)[
0
]
current_month2
=
current_month
.
split
(
'-'
)[
1
]
current_year1
=
current_year
+
'/'
+
current_month1
current_year2
=
current_year
+
'/'
+
current_month2
district_li
=
[
"全市"
,
"城区"
,
"泽州县"
,
"高平市"
,
"阳城县"
,
"陵川县"
,
district_li
=
[
"全市"
,
"城区"
,
"泽州县"
,
"高平市"
,
"阳城县"
,
"陵川县"
,
"沁水县"
,
"晋城经济技术开发区"
]
"沁水县"
,
"晋城经济技术开发区"
]
# data_li1, data_li2, data_li3, data_li4, data_li5 = get_data_li(district_li, current_year)
# 六。综合得分
# 六。综合得分
data_li6
=
get_data6
(
district_li
,
current_year
)
data_li6
=
get_data6
(
district_li
,
current_year
)
target_data_list
=
[]
target_data_list
=
[]
data_list
=
[]
try
:
for
district
in
district_li
:
for
district
in
district_li
:
# 县(市、区)、开发区
data_list
=
[]
data_list
.
append
(
district
)
# 县(市、区)、开发区
data_list
.
append
(
district
)
# 签约个数
sign_num
=
ProjectManagement
.
query
.
filter
(
# 签约个数
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
sign_num
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year1
))),
)
.
count
()
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year2
))),
data_list
.
append
(
sign_num
)
# 签约金额(亿元)
project_obj_list
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
)
.
all
()
if
not
project_obj_list
:
sign_money
=
0
else
:
sign_money
=
sum
([
project_obj
.
investment_volume
for
project_obj
in
project_obj_list
])
data_list
.
append
(
sign_money
)
# 签约年度目标(亿元)
jc_obj
=
JcTarget
.
query
.
filter
(
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
JcTarget
.
district_name
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
))))
.
first
()
sign_target
=
0
if
jc_obj
:
sign_target
=
jc_obj
.
money_sign
data_list
.
append
(
sign_target
)
# 签约完成率
sign_rate
=
sign_money
/
sign_target
if
sign_target
and
sign_target
!=
0
else
0
data_list
.
append
(
sign_rate
)
# 签约得分(15分)
grade
=
sign_rate
*
15
if
grade
<
15
:
sign_grade
=
grade
else
:
sign_grade
=
15
data_list
.
append
(
sign_grade
)
# 当年开工个数
start_num
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
start_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
)
.
count
()
data_list
.
append
(
start_num
)
# 开工率进度(40 %)
start_rate
=
start_num
/
sign_num
if
sign_num
and
sign_num
!=
0
else
0
data_list
.
append
(
start_rate
)
# 开工得分(5分)
if
start_rate
<
0.4
:
start_grade
=
start_rate
*
5
/
0.4
else
:
start_grade
=
5
data_list
.
append
(
start_grade
)
# 新开工项目计划投资额(亿元)
project_obj_list
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
start_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
)
.
all
()
if
not
project_obj_list
:
new_start_money
=
0
else
:
new_start_money
=
sum
([
project_obj
.
investment_volume
for
project_obj
in
project_obj_list
])
data_list
.
append
(
new_start_money
)
# 新开工年度目标
jc_obj
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
,
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
)))
)
.
first
()
if
not
jc_obj
:
new_start_target
=
0
else
:
new_start_target
=
jc_obj
.
money_plan_invest
data_list
.
append
(
new_start_target
)
# 新开工完成率
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
new_start_rate
=
new_start_money
/
new_start_target
if
new_start_target
and
new_start_target
!=
0
else
0
)
.
count
()
data_list
.
append
(
new_start_rate
)
data_list
.
append
(
sign_num
)
# 新开工得分
# 签约金额(亿元)
for
grade_dic
in
data_li6
:
project_obj_list
=
ProjectManagement
.
query
.
filter
(
if
grade_dic
[
'district'
]
==
district
:
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year1
))),
new_start_rate
=
grade_dic
[
'total_grade'
]
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year2
))),
if
new_start_rate
<
1
:
new_start_grade
=
new_start_rate
*
25
else
:
new_start_grade
=
25
data_list
.
append
(
new_start_grade
)
# 固定资产投资项目资金到位额(亿元)
project_obj
=
MoneyArrive
.
query
.
filter
(
MoneyArrive
.
data_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
MoneyArrive
.
district_name
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
)
.
first
()
if
not
project_obj
:
gutou1_money
=
0
else
:
gutou1_money
=
project_obj
.
arrive_money
data_list
.
append
(
gutou1_money
)
# 年度目标
jc_obj
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
,
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
)))
)
.
first
()
if
not
jc_obj
:
gutou1_target
=
0
else
:
gutou1_target
=
jc_obj
.
money_arrive_target1
data_list
.
append
(
gutou1_target
)
# 完成率
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
gutou1_rate
=
gutou1_money
/
gutou1_target
if
gutou1_target
and
gutou1_target
!=
0
else
0
)
.
all
()
data_list
.
append
(
gutou1_target
)
if
not
project_obj_list
:
sign_money
=
0
else
:
sign_money
=
sum
([
project_obj
.
investment_volume
for
project_obj
in
project_obj_list
])
data_list
.
append
(
sign_money
)
# 签约年度目标(亿元)
jc_obj
=
JcTarget
.
query
.
filter
(
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
JcTarget
.
district_name
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
))
.
first
()
sign_target
=
0
if
jc_obj
:
sign_target
=
jc_obj
.
money_sign
data_list
.
append
(
sign_target
)
# 签约完成率
sign_rate
=
round
(
sign_money
/
sign_target
,
2
)
if
sign_target
and
sign_target
!=
0
else
0
data_list
.
append
(
sign_rate
)
# 签约得分(15分)
grade
=
sign_rate
*
15
if
grade
<
15
:
sign_grade
=
grade
else
:
sign_grade
=
15
data_list
.
append
(
sign_grade
)
# 得分(25分)
# 当年开工个数
if
gutou1_rate
<
1
:
start_num
=
ProjectManagement
.
query
.
filter
(
gutou1_grade
=
gutou1_rate
*
25
ProjectManagement
.
start_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year1
))),
else
:
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year2
))),
gutou1_grade
=
25
data_list
.
append
(
gutou1_grade
)
# 非固定资产投资项目资金到位额(亿元)
project_obj_list
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
is_fixed_investment
==
'否'
,
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
))),
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
)
.
all
()
if
not
project_obj_list
:
gutou0_money
=
0
else
:
gutou0_money
=
sum
([
project_obj
.
investment_year
for
project_obj
in
project_obj_list
])
data_list
.
append
(
gutou0_money
)
# 年度目标
jc_obj
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
,
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
)))
)
.
first
()
if
not
jc_obj
:
gutou0_target
=
0
else
:
gutou0_target
=
jc_obj
.
money_arrive_target0
data_list
.
append
(
gutou0_target
)
# 完成率
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
gutou0_rate
=
gutou0_money
/
gutou0_target
if
gutou0_target
and
gutou0_target
!=
0
else
0
)
.
count
()
data_list
.
append
(
gutou0_rate
)
data_list
.
append
(
start_num
)
# 得分(5分)
# 开工率进度(40 %)
if
gutou0_rate
<
1
:
start_rate
=
round
(
start_num
/
sign_num
,
2
)
if
sign_num
and
sign_num
!=
0
else
0
gutou0_grade
=
gutou0_rate
*
5
data_list
.
append
(
start_rate
)
else
:
gutou0_grade
=
5
# 开工得分(5分)
data_list
.
append
(
gutou0_grade
)
if
start_rate
<
0.4
:
start_grade
=
round
(
start_rate
*
5
/
0.4
,
2
)
# 指标得分(75分)
else
:
target_grade
=
0
start_grade
=
5
for
grade_dic
in
data_li6
:
data_list
.
append
(
start_grade
)
if
grade_dic
[
'district'
]
==
district
:
target_grade
=
grade_dic
[
'total_grade'
]
# 新开工项目计划投资额(亿元)
data_list
.
append
(
target_grade
)
project_obj_list
=
ProjectManagement
.
query
.
filter
(
target_data_list
.
append
(
data_list
)
ProjectManagement
.
start_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year1
))),
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year2
))),
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
)
.
all
()
if
not
project_obj_list
:
new_start_money
=
0
else
:
new_start_money
=
sum
([
project_obj
.
investment_volume
for
project_obj
in
project_obj_list
])
data_list
.
append
(
new_start_money
)
# 新开工年度目标
jc_obj
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
if
district
!=
'全市'
else
text
(
''
),
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
)))
)
.
first
()
if
not
jc_obj
:
new_start_target
=
0
else
:
new_start_target
=
jc_obj
.
money_plan_invest
data_list
.
append
(
new_start_target
)
# 新开工完成率
new_start_rate
=
round
(
new_start_money
/
new_start_target
,
2
)
if
new_start_target
and
new_start_target
!=
0
else
0
data_list
.
append
(
new_start_rate
)
# 新开工得分
for
grade_dic
in
data_li6
:
if
grade_dic
[
'name'
]
==
district
:
new_start_rate
=
grade_dic
[
'value'
]
if
new_start_rate
<
1
:
new_start_grade
=
new_start_rate
*
25
else
:
new_start_grade
=
25
data_list
.
append
(
new_start_grade
)
# 固定资产投资项目资金到位额(亿元)
project_obj
=
MoneyArrive
.
query
.
filter
(
MoneyArrive
.
data_time
==
data_time
,
MoneyArrive
.
district_name
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
)
.
first
()
if
not
project_obj
:
gutou1_money
=
0
else
:
gutou1_money
=
project_obj
.
arrive_money
data_list
.
append
(
gutou1_money
)
# 年度目标
jc_obj
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
if
district
!=
'全市'
else
text
(
''
),
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
)))
)
.
first
()
if
not
jc_obj
:
gutou1_target
=
0
else
:
gutou1_target
=
jc_obj
.
money_arrive_target1
data_list
.
append
(
gutou1_target
)
# 完成率
gutou1_rate
=
round
(
gutou1_money
/
gutou1_target
,
2
)
if
gutou1_target
and
gutou1_target
!=
0
else
0
data_list
.
append
(
gutou1_target
)
# 得分(25分)
if
gutou1_rate
<
1
:
gutou1_grade
=
gutou1_rate
*
25
else
:
gutou1_grade
=
25
data_list
.
append
(
gutou1_grade
)
# 非固定资产投资项目资金到位额(亿元)
project_obj_list
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
is_fixed_investment
==
'否'
,
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year1
))),
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year2
))),
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
)
.
all
()
if
not
project_obj_list
:
gutou0_money
=
0
else
:
gutou0_money
=
sum
([
project_obj
.
investment_year
for
project_obj
in
project_obj_list
])
data_list
.
append
(
gutou0_money
)
# 年度目标
jc_obj
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
,
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year
)))
)
.
first
()
if
not
jc_obj
:
gutou0_target
=
0
else
:
gutou0_target
=
jc_obj
.
money_arrive_target0
data_list
.
append
(
gutou0_target
)
# 完成率
gutou0_rate
=
round
(
gutou0_money
/
gutou0_target
,
2
)
if
gutou0_target
and
gutou0_target
!=
0
else
0
data_list
.
append
(
gutou0_rate
)
# 得分(5分)
if
gutou0_rate
<
1
:
gutou0_grade
=
gutou0_rate
*
5
else
:
gutou0_grade
=
5
data_list
.
append
(
gutou0_grade
)
# 指标得分(75分)
target_grade
=
0
for
grade_dic
in
data_li6
:
if
grade_dic
[
'name'
]
==
district
:
target_grade
=
grade_dic
[
'value'
]
data_list
.
append
(
target_grade
)
target_data_list
.
append
(
data_list
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"山西各县区数据导出失败!"
)
head_list
=
''
sheet
=
''
try
:
try
:
sheet_name_titles
=
{
sheet_name_titles
=
{
"sheet1"
:
[
"县(市、区)、开发区"
,
"签约个数"
,
"签约金额(亿元)"
,
"年度目标(亿元)"
,
"sheet1"
:
[
"县(市、区)、开发区"
,
"签约个数"
,
"签约金额(亿元)"
,
"年度目标(亿元)"
,
...
@@ -592,42 +630,107 @@ def export_jc_data1():
...
@@ -592,42 +630,107 @@ def export_jc_data1():
for
j
in
range
(
cols
):
for
j
in
range
(
cols
):
sheet
.
write
(
i
+
1
,
j
,
target_data_list
[
i
][
j
])
sheet
.
write
(
i
+
1
,
j
,
target_data_list
[
i
][
j
])
time_stamp
=
'{0:
%
Y
%
m
%
d
%
H
%
M
%
S}'
.
format
(
datetime
.
now
())
time_stamp
=
'{0:
%
Y
%
m
%
d
%
H
%
M
%
S}'
.
format
(
datetime
.
now
())
file_name
=
"招商引资指标生成表{}.xlsx"
.
format
(
time_stamp
)
file_name
=
"招商引资
晋城区县
指标生成表{}.xlsx"
.
format
(
time_stamp
)
excel
.
save
(
path
+
file_name
)
excel
.
save
(
path
+
file_name
)
return
jsonify
(
code
=
RET
.
OK
,
url
=
pro_path
+
file_name
,
msg
=
"导出/下载成功!"
)
return
pro_path
+
file_name
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
'error'
# 开发区指标完成表导出
# 开发区指标完成表导出
@api_manage.route
(
"/ExportJcData2"
,
methods
=
[
"POST"
])
def
export_jc_data2
(
data_time
,
path
,
pro_path
):
def
export_jc_data2
():
district_li
=
[
"晋城经济技术开发区(一区四园)"
,
"高平经济技术开发区"
,
req_dic
=
request
.
get_json
()
"阳城经济技术开发区"
,
"沁水经济技术开发区"
,
"陵川生态文化旅游示范区"
,
"汇 总"
]
district
=
req_dic
[
'district'
]
# 2022年1-11月
current_year
=
dat
etime
.
now
()
.
year
current_year
=
dat
a_time
.
split
(
'年'
)[
0
]
current_month
=
data_time
.
split
(
'年'
)[
1
]
.
split
(
'月'
)[
0
]
path
=
'./apps/statics/project_file/'
current_month1
=
current_month
.
split
(
'-'
)[
0
]
# pro_path = 'http://39.100.39.50:8008/aaa_statics/project_file/' # 项目路径
current_month2
=
current_month
.
split
(
'-'
)[
1
]
pro_path
=
'http://192.168.1.4:5000/statics/project_file/'
# 项目路径
district_li
=
[
"全市"
,
"城区"
,
"泽州县"
,
"高平市"
,
"阳城县"
,
"陵川县"
,
current_year1
=
current_year
+
'/'
+
current_month1
"沁水县"
,
"晋城经济技术开发区"
]
current_year2
=
current_year
+
'/'
+
current_month2
target_data_list
=
[]
target_data_list
=
[]
data_list
=
[]
for
district
in
district_li
:
# 县(市、区)、开发区
data_list
.
append
(
district
)
data_list
.
append
(
target_grade
)
target_data_list
.
append
(
data_list
)
try
:
try
:
for
district
in
district_li
:
data_list
=
[]
project_obj
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year1
))),
ProjectManagement
.
sign_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year2
))),
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
)
# 1县(市、区)、开发区
data_list
.
append
(
district
)
# 2签约个数
sign_num
=
project_obj
.
count
()
data_list
.
append
(
sign_num
)
# 3签约金额(亿元)
project_obj_list
=
project_obj
.
all
()
sign_money
=
sum
([
project_obj
.
investment_volume
/
10000
for
project_obj
in
project_obj_list
if
project_obj_list
])
data_list
.
append
(
sign_money
)
# 4属地签约任务(亿元)
target_obj
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
,
JcTarget
.
year
==
current_year
+
'年'
)
.
first
()
if
target_obj
:
target_money
=
target_obj
.
money_sign
else
:
target_money
=
0
data_list
.
append
(
target_money
)
# 5完成属地目标任务占比
if
target_money
!=
0
:
finish_rate
=
round
(
sign_money
/
target_money
*
100
,
2
)
else
:
finish_rate
=
0
data_list
.
append
(
finish_rate
)
# 6新开工项目计划投资额(亿元)
project_obj1
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
start_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year1
))),
ProjectManagement
.
start_time
.
like
(
'
%
{}
%
'
.
format
(
str
(
current_year2
))),
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
)
project_obj_list1
=
project_obj1
.
all
()
start_money
=
sum
(
[
project_obj
.
investment_volume
/
10000
for
project_obj
in
project_obj_list1
if
project_obj_list1
])
data_list
.
append
(
start_money
)
# 7新开工属地投资任务(亿元)
if
target_obj
:
plan_money
=
target_obj
.
money_plan_invest
else
:
plan_money
=
0
if
not
plan_money
:
plan_money
=
0
data_list
.
append
(
plan_money
)
# 8新开工完成属地目标任务占比
if
start_money
!=
0
:
start_rate
=
round
(
start_money
/
plan_money
*
100
,
2
)
else
:
start_rate
=
0
data_list
.
append
(
start_rate
)
# 9当年签约当年开工个数
start_num
=
project_obj1
.
count
()
data_list
.
append
(
start_num
)
# 10开工率年度目标
if
target_obj
:
start_rate
=
target_obj
.
rate_start
else
:
start_rate
=
0
data_list
.
append
(
start_rate
)
# 11开工率排名
start_rank
=
''
data_list
.
append
(
start_rank
)
target_data_list
.
append
(
data_list
)
continue
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"开发区数据导出失败!"
)
try
:
sheet_name_titles
=
{
sheet_name_titles
=
{
"sheet1"
:
[
"县(市、区)、开发区"
,
"签约个数"
,
"签约金额(亿元)"
,
"属地签约任务(亿元)"
,
"sheet1"
:
[
"县(市、区)、开发区"
,
"签约个数"
,
"签约金额(亿元)"
,
"属地签约任务(亿元)"
,
"完成属地目标任务占比"
,
"新开工项目
"
,
"
计划投资额(亿元)"
,
"属地投资任务(亿元)"
,
"完成属地目标任务占比"
,
"新开工项目计划投资额(亿元)"
,
"属地投资任务(亿元)"
,
"完成属地目标任务占比"
,
"当年签约当年开工个数"
,
"开工率年度目标(40
%
)"
,
"完成属地目标任务占比"
,
"当年签约当年开工个数"
,
"开工率年度目标(40
%
)"
,
"开工率排名"
,
"属地投资任务(亿元)"
,
"完成属地目标任务占比"
,
"开工率目标(40
%
)"
,
"开工率排名"
"开工率排名"
]}
]}
excel
=
xlwt
.
Workbook
(
encoding
=
'utf-8'
)
excel
=
xlwt
.
Workbook
(
encoding
=
'utf-8'
)
...
@@ -647,12 +750,12 @@ def export_jc_data2():
...
@@ -647,12 +750,12 @@ def export_jc_data2():
for
j
in
range
(
cols
):
for
j
in
range
(
cols
):
sheet
.
write
(
i
+
1
,
j
,
target_data_list
[
i
][
j
])
sheet
.
write
(
i
+
1
,
j
,
target_data_list
[
i
][
j
])
time_stamp
=
'{0:
%
Y
%
m
%
d
%
H
%
M
%
S}'
.
format
(
datetime
.
now
())
time_stamp
=
'{0:
%
Y
%
m
%
d
%
H
%
M
%
S}'
.
format
(
datetime
.
now
())
file_name
=
"招商引资指标生成表{}.xlsx"
.
format
(
time_stamp
)
file_name
=
"招商引资
开发区
指标生成表{}.xlsx"
.
format
(
time_stamp
)
excel
.
save
(
path
+
file_name
)
excel
.
save
(
path
+
file_name
)
return
jsonify
(
code
=
RET
.
OK
,
url
=
pro_path
+
file_name
,
msg
=
"导出/下载成功!"
)
return
pro_path
+
file_name
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
'error'
"""项目分析"""
"""项目分析"""
...
@@ -715,13 +818,13 @@ def project_graph():
...
@@ -715,13 +818,13 @@ def project_graph():
))
.
count
()
))
.
count
()
num5
=
total_num
-
sum
([
num1
,
num2
,
num3
,
num4
])
num5
=
total_num
-
sum
([
num1
,
num2
,
num3
,
num4
])
total_num
=
sum
([
num1
,
num2
,
num3
,
num4
,
num5
])
total_num
=
sum
([
num1
,
num2
,
num3
,
num4
,
num5
])
data
=
{
data
=
[
"data1"
:
str
(
round
(
num1
/
total_num
,
2
)
*
100
)
+
'
%
'
,
{
"name"
:
"京津冀"
,
"value"
:
round
(
num1
/
total_num
*
100
,
2
)}
,
"data2"
:
str
(
round
(
num2
/
total_num
,
2
)
*
100
)
+
'
%
'
,
{
"name"
:
"长三角"
,
"value"
:
round
(
num2
/
total_num
*
100
,
2
)}
,
"data3"
:
str
(
round
(
num3
/
total_num
,
2
)
*
100
)
+
'
%
'
,
{
"name"
:
"珠三角"
,
"value"
:
round
(
num3
/
total_num
*
100
,
2
)}
,
"data4"
:
str
(
round
(
num4
/
total_num
,
2
)
*
100
)
+
'
%
'
,
{
"name"
:
"中原经济区"
,
"value"
:
round
(
num4
/
total_num
*
100
,
2
)}
,
"data5"
:
str
(
round
(
num5
/
total_num
,
2
)
*
100
)
+
'
%
'
,
{
"name"
:
"其他"
,
"value"
:
round
(
num5
/
total_num
*
100
,
2
)}
}
]
elif
flag
==
2
:
elif
flag
==
2
:
project_count1
=
project_obj
.
filter
(
project_count1
=
project_obj
.
filter
(
ProjectManagement
.
investment_volume
>
0
,
ProjectManagement
.
investment_volume
>
0
,
...
@@ -746,14 +849,14 @@ def project_graph():
...
@@ -746,14 +849,14 @@ def project_graph():
project_count6
=
project_obj
.
filter
(
project_count6
=
project_obj
.
filter
(
ProjectManagement
.
investment_volume
>
20
*
10000
,
ProjectManagement
.
investment_volume
>
20
*
10000
,
)
.
count
()
)
.
count
()
data
=
{
data
=
[
"project_count1"
:
project_count1
,
{
"name"
:
"0-0.5亿"
,
"value"
:
project_count1
}
,
"project_count2"
:
project_count2
,
{
"name"
:
"0.5-1亿"
,
"value"
:
project_count2
}
,
"project_count3"
:
project_count3
,
{
"name"
:
"1-5亿"
,
"value"
:
project_count3
}
,
"project_count4"
:
project_count4
,
{
"name"
:
"5-10亿"
,
"value"
:
project_count4
}
,
"project_count5"
:
project_count5
,
{
"name"
:
"10-20亿"
,
"value"
:
project_count5
}
,
"project_count6"
:
project_count6
{
"name"
:
"20亿以上"
,
"value"
:
project_count6
},
}
]
elif
flag
==
3
:
# 项目产业分布
elif
flag
==
3
:
# 项目产业分布
# 第一产业
# 第一产业
project_count1
=
project_obj
.
filter
(
ProjectManagement
.
industry_level
==
'第一产业'
)
.
count
()
project_count1
=
project_obj
.
filter
(
ProjectManagement
.
industry_level
==
'第一产业'
)
.
count
()
...
@@ -766,11 +869,11 @@ def project_graph():
...
@@ -766,11 +869,11 @@ def project_graph():
total_num
=
project_count1
+
project_count2
+
project_count3
total_num
=
project_count1
+
project_count2
+
project_count3
if
total_num
==
0
:
if
total_num
==
0
:
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
'产业类型无数据!'
)
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
'产业类型无数据!'
)
data
=
{
data
=
[
"project_count1"
:
str
(
round
(
project_count1
/
total_num
*
100
,
2
))
+
'
%
'
,
{
"name"
:
"第一产业"
,
"value"
:
round
(
project_count1
/
total_num
*
100
,
2
)}
,
"project_count2"
:
str
(
round
(
project_count2
/
total_num
*
100
,
2
))
+
'
%
'
,
{
"name"
:
"第二产业"
,
"value"
:
round
(
project_count2
/
total_num
*
100
,
2
)}
,
"project_count3"
:
str
(
round
(
project_count3
/
total_num
*
100
,
2
))
+
'
%
'
{
"name"
:
"第三产业"
,
"value"
:
round
(
project_count3
/
total_num
*
100
,
2
)},
}
]
elif
flag
==
4
:
elif
flag
==
4
:
industry_list
=
[]
industry_list
=
[]
for
project_obj_obj
in
project_obj
.
all
():
for
project_obj_obj
in
project_obj
.
all
():
...
@@ -782,7 +885,7 @@ def project_graph():
...
@@ -782,7 +885,7 @@ def project_graph():
data
=
[]
data
=
[]
for
industry
in
industry_list
:
for
industry
in
industry_list
:
project_count
=
project_obj
.
filter
(
ProjectManagement
.
industry
==
industry
)
.
count
()
project_count
=
project_obj
.
filter
(
ProjectManagement
.
industry
==
industry
)
.
count
()
data_dic
=
{
"
industry"
:
industry
,
"project_count
"
:
project_count
}
data_dic
=
{
"
name"
:
industry
,
"value
"
:
project_count
}
data
.
append
(
data_dic
)
data
.
append
(
data_dic
)
continue
continue
else
:
else
:
...
@@ -885,18 +988,23 @@ def areal_project():
...
@@ -885,18 +988,23 @@ def areal_project():
ProjectManagement
.
project_source
.
notlike
(
'
%
澳门
%
'
)
ProjectManagement
.
project_source
.
notlike
(
'
%
澳门
%
'
)
))
))
else
:
else
:
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"参数错误!"
)
pass
if
flag
==
2
:
# 项目投资额区间分布项目列表
elif
flag
==
2
:
# 项目投资额区间分布项目列表
project_obj
=
project_obj
.
filter
(
if
investment_volume
:
ProjectManagement
.
investment_volume
>
investment_volume
[
0
]
if
investment_volume
[
0
]
else
text
(
''
),
project_obj
=
project_obj
.
filter
(
ProjectManagement
.
investment_volume
<=
investment_volume
[
1
]
if
investment_volume
[
1
]
else
text
(
''
))
ProjectManagement
.
investment_volume
>
investment_volume
[
0
]
if
investment_volume
[
0
]
else
text
(
''
),
ProjectManagement
.
investment_volume
<=
investment_volume
[
1
]
if
investment_volume
[
1
]
else
text
(
''
))
if
flag
==
3
:
# 项目产业分布项目列表
elif
flag
==
3
:
# 项目产业分布项目列表
project_obj
=
project_obj
.
filter
(
ProjectManagement
.
industry_level
==
industry_level
)
if
industry_level
:
project_obj
=
project_obj
.
filter
(
ProjectManagement
.
industry_level
==
industry_level
)
if
flag
==
4
:
# 项目行业类型分布项目列表
elif
flag
==
4
:
# 项目行业类型分布项目列表
project_obj
=
project_obj
.
filter
(
ProjectManagement
.
industry
==
industry_name
)
if
industry_name
:
project_obj
=
project_obj
.
filter
(
ProjectManagement
.
industry
==
industry_name
)
else
:
pass
if
not
project_obj
.
all
():
if
not
project_obj
.
all
():
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
'没有符合条件的数据!'
)
return
jsonify
(
code
=
RET
.
NODATA
,
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