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
210ba33f
Commit
210ba33f
authored
Mar 06, 2023
by
dong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix20230306
parent
8efa5529
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
532 additions
and
86 deletions
+532
-86
apps/inves_manage/statistic_analysis_view.py
+532
-86
No files found.
apps/inves_manage/statistic_analysis_view.py
View file @
210ba33f
...
...
@@ -27,70 +27,57 @@ from apps.inves_manage.siku_view import get_num, upload_daily_picture
# 获取项目中的最大月份
def
get_max_month
():
try
:
project_obj_list
=
ProjectManagement
.
query
.
all
()
month_list
=
[]
year
=
datetime
.
now
()
.
year
for
project_obj
in
project_obj_list
:
if
project_obj
.
sign_time
and
str
(
year
)
in
project_obj
.
sign_time
:
month_list
.
append
(
project_obj
.
sign_time
.
split
(
'-'
)[
1
])
max_month
=
max
(
set
(
month_list
))
+
1
return
max_month
except
Exception
as
e
:
return
'error'
#
def get_max_month():
#
try:
#
project_obj_list = ProjectManagement.query.all()
#
month_list = []
#
year = datetime.now().year
#
for project_obj in project_obj_list:
#
if project_obj.sign_time and str(year) in project_obj.sign_time:
#
month_list.append(project_obj.sign_time.split('-')[1])
#
max_month = max(set(month_list)) + 1
#
return max_month
#
except Exception as e:
#
return 'error'
# 项目签约完成率
def
get_data1
(
data_time
,
district_li
,
current_year
):
data_li1
=
[]
now_time3
=
''
now_time4
=
''
max_month
=
get_max_month
()
now_time
=
datetime
.
now
()
.
strftime
(
'
%
Y-{}-01 00:00:00'
.
format
(
max_month
))
now_time1
=
(
datetime
.
now
()
-
relativedelta
(
years
=
1
))
.
strftime
(
'
%
Y-01-01 00:00:00'
)
if
data_time
:
if
data_time
[
0
]
and
data_time
[
1
]:
now_time3
=
(
'{}-{}-01 00:00:00'
)
.
format
(
data_time
[
0
],
data_time
[
1
])
if
data_time
[
2
]:
now_time4
=
(
'{}-{}-01 00:00:00'
)
.
format
(
data_time
[
0
],
data_time
[
2
])
try
:
data_li1
=
[]
for
district
in
district_li
:
# 先查询最新的年度目标是哪一年的
jc_obj_list
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
if
district
!=
'全市'
else
text
(
''
),
JcTarget
.
is_delete
==
0
)
.
all
()
# 获取最大年份
year_li
=
[]
for
jc_obj
in
jc_obj_list
:
year
=
jc_obj
.
year
.
split
(
'年'
)[
0
]
year_li
.
append
(
int
(
year
))
max_year
=
max
(
set
(
year_li
))
if
not
data_time
:
# 获取晋城年度目标表中的最新数据看看是哪一年的
jc_obj_list
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
if
district
!=
'全市'
else
text
(
''
),
JcTarget
.
is_delete
==
0
)
.
all
()
year_list
=
[]
for
jc_obj
in
jc_obj_list
:
year_list
.
append
(
int
(
jc_obj
.
year
.
split
(
'年'
)[
0
]))
max_year
=
max
(
set
(
year_list
))
now_time
=
'{}-01-01 00:00:00'
.
format
(
max_year
)
now_time1
=
'{}-01-01 00:00:00'
.
format
(
max_year
+
1
)
project_obj_list
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
is_delete
==
0
,
ProjectManagement
.
sign_time
<
now_time
,
ProjectManagement
.
sign_time
>=
now_time
1
,
ProjectManagement
.
sign_time
<
now_time
1
,
ProjectManagement
.
sign_time
>=
now_time
,
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
)
.
all
()
else
:
if
data_time
[
0
]
and
data_time
[
1
]:
now_time3
=
(
'{}-{}-01 00:00:00'
)
.
format
(
data_time
[
0
],
data_time
[
1
])
if
data_time
[
2
]:
now_time4
=
(
'{}-{}-01 00:00:00'
)
.
format
(
data_time
[
0
],
data_time
[
2
])
project_obj_list
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
is_delete
==
0
,
ProjectManagement
.
sign_time
<
now_time4
if
now_time4
else
text
(
''
),
ProjectManagement
.
sign_time
>=
now_time3
,
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
)
.
all
()
# project_obj_list = ProjectManagement.query.filter(
# ProjectManagement.is_delete == 0,
# ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
# ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
# ).all()
# 计算比率
if
not
project_obj_list
:
investment_volume
=
0
else
:
...
...
@@ -99,8 +86,8 @@ def get_data1(data_time, district_li, current_year):
# 年度目标
jc_obj
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
if
district
!=
'全市'
else
text
(
''
),
# JcTarget.year.like('%{}%'.format(str(data_time[0])) if data_time else str(current
_year)),
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
data_time
[
0
])))
if
data_time
else
text
(
''
),
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
data_time
[
0
]))
if
data_time
else
str
(
max
_year
)),
#
JcTarget.year.like('%{}%'.format(str(data_time[0]))) if data_time else text(''),
JcTarget
.
is_delete
==
0
)
.
first
()
if
not
jc_obj
:
...
...
@@ -116,21 +103,444 @@ def get_data1(data_time, district_li, current_year):
}
data_li1
.
append
(
data
)
continue
data_li1
=
sorted
(
data_li1
,
key
=
lambda
x
:
x
[
'value'
],
reverse
=
False
)
return
data_li1
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
print
(
'项目签约完成率计算出错'
,
e
)
return
'error'
data_li1
=
sorted
(
data_li1
,
key
=
lambda
x
:
x
[
'value'
],
reverse
=
False
)
return
data_li1
""""""
# def get_data1(data_time, district_li, current_year):
# data_li1 = []
# now_time3 = ''
# now_time4 = ''
# # max_month = get_max_month()
# # now_time = datetime.now().strftime('%Y-{}-01 00:00:00'.format(max_month))
# now_time = datetime.now().strftime('%Y-%m-01 00:00:00')
# now_time1 = (datetime.now() - relativedelta(years=1)).strftime('%Y-01-01 00:00:00')
#
# if data_time:
# if data_time[0] and data_time[1]:
# now_time3 = ('{}-{}-01 00:00:00').format(data_time[0], data_time[1])
# if data_time[2]:
# now_time4 = ('{}-{}-01 00:00:00').format(data_time[0], data_time[2])
#
# try:
# for district in district_li:
# # # 先查询最新的年度目标是哪一年的
# # jc_obj_list = JcTarget.query.filter(
# # JcTarget.district_name == district if district != '全市' else text(''),
# # JcTarget.is_delete == 0
# # ).all()
# # # 获取最大年份
# # year_li = []
# # for jc_obj in jc_obj_list:
# # year = jc_obj.year.split('年')[0]
# # year_li.append(int(year))
# # max_year = max(set(year_li))
# if not data_time:
# project_obj_list = ProjectManagement.query.filter(
# ProjectManagement.is_delete == 0,
# ProjectManagement.sign_time < now_time,
# ProjectManagement.sign_time >= now_time1,
# ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
# ).all()
# else:
# project_obj_list = ProjectManagement.query.filter(
# ProjectManagement.is_delete == 0,
# ProjectManagement.sign_time < now_time4 if now_time4 else text(''),
# ProjectManagement.sign_time >= now_time3,
# ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
# ).all()
# # project_obj_list = ProjectManagement.query.filter(
# # ProjectManagement.is_delete == 0,
# # ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
# # ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
# # ).all()
# if not project_obj_list:
# investment_volume = 0
# else:
# investment_volume = sum([project_obj.investment_volume for project_obj in project_obj_list])
#
# # 年度目标
# jc_obj = JcTarget.query.filter(
# JcTarget.district_name == district if district != '全市' else text(''),
# JcTarget.year.like('%{}%'.format(str(data_time[0])) if data_time else str(current_year)),
# # JcTarget.year.like('%{}%'.format(str(data_time[0]))) if data_time else text(''),
# JcTarget.is_delete == 0
# ).first()
# if not jc_obj:
# year_target = 0
# else:
# year_target = jc_obj.money_sign
#
# data = {
# "name": district,
# "data": round(investment_volume / 10000, 2),
# "target": year_target,
# "value": round(investment_volume / 10000 / year_target * 100, 2) if year_target and year_target != 0 else 0
# }
# data_li1.append(data)
# continue
# except Exception as e:
# current_app.logger.error(e)
# print('项目签约完成率计算出错', e)
# return 'error'
# data_li1 = sorted(data_li1, key=lambda x: x['value'], reverse=False)
# return data_li1
# 项目开工率
# def get_data2(data_time, district_li, current_year):
# data_li2 = []
# now_time3 = ''
# now_time4 = ''
# now_time = datetime.now().strftime('%Y-01-01 00:00:00')
# now_time1 = (datetime.now() + relativedelta(years=1)).strftime('%Y-01-01 00:00:00')
#
# if data_time:
# if data_time[0] and data_time[1]:
# now_time3 = ('{}-{}-01 00:00:00').format(data_time[0], data_time[1])
# if data_time[2]:
# now_time4 = ('{}-{}-01 00:00:00').format(data_time[0], data_time[2])
#
# try:
# for district in district_li:
# if not data_time:
# # 签约项目个数
# sign_num = ProjectManagement.query.filter(
# ProjectManagement.is_delete == 0,
# # ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
# ProjectManagement.sign_time < now_time1,
# ProjectManagement.sign_time >= now_time,
# ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
# ).count()
# # 开工项目数
# start_num = ProjectManagement.query.filter(
# ProjectManagement.is_delete == 0,
# # ProjectManagement.start_time.like('%{}%'.format(str(current_year))),
# ProjectManagement.start_time < now_time1,
# ProjectManagement.start_time >= now_time,
# ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
# ).count()
# else:
# # 签约项目数
# sign_num = ProjectManagement.query.filter(
# ProjectManagement.is_delete == 0,
# # ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
# ProjectManagement.start_time < now_time4 if now_time4 else text(""),
# ProjectManagement.start_time >= now_time3,
# ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
# ).count()
# # 开工项目数
# start_num = ProjectManagement.query.filter(
# ProjectManagement.is_delete == 0,
# # ProjectManagement.start_time.like('%{}%'.format(str(current_year))),
# ProjectManagement.start_time < now_time4 if now_time4 else text(""),
# ProjectManagement.start_time >= now_time3,
# ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
# ).count()
# data = {
# "name": district,
# "data": start_num,
# "target": sign_num,
# "value": round(start_num / sign_num * 100, 2) if sign_num and sign_num != 0 else 0
# }
# data_li2.append(data)
# continue
# except Exception as e:
# current_app.logger.error(e)
# print('项目开工率计算出错', e)
# return 'error'
# data_li2 = sorted(data_li2, key=lambda x: x['value'], reverse=False)
# return data_li2
#
#
# # 新开工项目计划投资额完成率
# def get_data3(data_time, district_li, current_year):
# data_li3 = []
# now_time3 = ''
# now_time4 = ''
# now_time = datetime.now().strftime('%Y-%m-01 00:00:00')
# now_time1 = (datetime.now() - relativedelta(years=1)).strftime('%Y-%m-01 00:00:00')
#
# if data_time:
# if data_time[0] and data_time[1]:
# now_time3 = ('{}-{}-01 00:00:00').format(data_time[0], data_time[1])
# if data_time[2]:
# now_time4 = ('{}-{}-01 00:00:00').format(data_time[0], data_time[2])
# try:
# for district in district_li:
# if not data_time:
# project_obj_list = ProjectManagement.query.filter(
# ProjectManagement.is_delete == 0,
# ProjectManagement.start_time < now_time,
# ProjectManagement.start_time >= now_time1,
# ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
# ).all()
# else:
# project_obj_list = ProjectManagement.query.filter(
# ProjectManagement.is_delete == 0,
# ProjectManagement.start_time < now_time4 if now_time4 else text(""),
# ProjectManagement.start_time >= now_time3,
# # ProjectManagement.start_time == now_time3 if now_time4 else text(""),
# ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
# ).all()
# if not project_obj_list:
# investment_volume = 0
# else:
# investment_volume = sum([project_obj.investment_volume for project_obj in project_obj_list])
# # 年度目标
# jc_obj = JcTarget.query.filter(
# JcTarget.district_name == district if district != '全市' else text(''),
# JcTarget.year.like('%{}%'.format(str(data_time[0])) if data_time else str(current_year)),
# JcTarget.is_delete == 0
# ).first()
# if not jc_obj:
# year_target = 0
# else:
# year_target = jc_obj.money_plan_invest
#
# data = {
# "name": district,
# "data": round(investment_volume / 10000, 2),
# "target": year_target,
# "value": round(investment_volume / 10000 / year_target * 100, 2) if year_target and year_target != 0 else 0
# }
# data_li3.append(data)
# continue
# except Exception as e:
# current_app.logger.error(e)
# print('新开工项目计划投资额完成率计算出错', e)
# return 'error'
# data_li3 = sorted(data_li3, key=lambda x: x['value'], reverse=False)
# return data_li3
#
#
# # 固定资产投资项目到位资金完成率
# def get_data4(data_time, district_li, current_year):
# data_li4 = []
#
# try:
# for district in district_li:
# project_obj = MoneyArrive.query.filter(
# MoneyArrive.data_time.like('%{}%'.format(data_time[0]) if data_time else str(current_year)),
# MoneyArrive.is_delete == 0,
# MoneyArrive.district_name.like('%{}%'.format(str(district))) if district != '全市' else text('')
# ).first()
# if not project_obj:
# arrive_money = 0
# else:
# arrive_money = project_obj.arrive_money
# # 年度目标
# jc_obj = JcTarget.query.filter(
# JcTarget.district_name == district if district != '全市' else text(''),
# JcTarget.year.like('%{}%'.format(data_time[0]) if data_time else str(current_year)),
# JcTarget.is_delete == 0
# ).first()
# if not jc_obj:
# year_target = 0
# else:
# year_target = jc_obj.money_arrive_target1
#
# data = {
# "name": district,
# "data": arrive_money,
# "target": year_target,
# "value": round(arrive_money / year_target * 100, 2) if year_target and year_target != 0 else 0
# }
# data_li4.append(data)
# continue
# except Exception as e:
# current_app.logger.error(e)
# print('固定资产投资项目到位资金完成率计算出错', e)
# return 'error'
# data_li4 = sorted(data_li4, key=lambda x: x['value'], reverse=False)
# return data_li4
#
#
# # 非固定资产投资项目到位资金完成率
# def get_data5(data_time, district_li, current_year):
# data_li5 = []
# now_time3 = ''
# now_time4 = ''
# now_time = datetime.now().strftime('%Y-%m-01 00:00:00')
# now_time1 = (datetime.now() - relativedelta(years=1)).strftime('%Y-%m-01 00:00:00')
#
# if data_time:
# if data_time[0] and data_time[1]:
# now_time3 = ('{}-{}-01 00:00:00').format(data_time[0], data_time[1])
# if data_time[2]:
# now_time4 = ('{}-{}-01 00:00:00').format(data_time[0], data_time[2])
#
# try:
# for district in district_li:
# if not data_time:
# project_obj_list = ProjectManagement.query.filter(
# ProjectManagement.is_delete == 0,
# ProjectManagement.is_fixed_investment == '否',
# # ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
# ProjectManagement.sign_time < now_time,
# ProjectManagement.sign_time >= now_time1,
# ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
# ).all()
# else:
# project_obj_list = ProjectManagement.query.filter(
# ProjectManagement.is_delete == 0,
# ProjectManagement.is_fixed_investment == '否',
# # ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
# ProjectManagement.sign_time < now_time4 if now_time4 else text(""),
# ProjectManagement.sign_time >= now_time3,
# ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
# ).all()
# if not project_obj_list:
# investment_volume = 0
# else:
# investment_volume = sum([float(project_obj.investment_year) for project_obj in project_obj_list])
# # 年度目标
# jc_obj = JcTarget.query.filter(
# JcTarget.district_name == district if district != '全市' else text(''),
# JcTarget.year.like('%{}%'.format(data_time[0]) if data_time else str(current_year)),
# JcTarget.is_delete == 0
# ).first()
# if not jc_obj:
# year_target = 0
# else:
# year_target = jc_obj.money_arrive_target0
# data = {
# "name": district,
# "data": round(investment_volume / 10000, 2),
# "target": year_target,
# "value": round(investment_volume / 10000 / year_target * 100, 2) if year_target and year_target != 0 else 0
# }
# data_li5.append(data)
# continue
# except Exception as e:
# current_app.logger.error(e)
# print('非固定资产投资项目到位资金完成率计算出错', e)
# return 'error'
# data_li5 = sorted(data_li5, key=lambda x: x['value'], reverse=False)
# return data_li5
#
#
# # 综合得分
# def get_data6(district_li, data_li1, data_li2, data_li3, data_li4, data_li5):
# # data_li1, data_li2, data_li3, data_li4, data_li5 = get_data_li(district_li, current_year)
# data_li6 = []
# # 项目签约情况得分=完成率(%)*赋分(15 上传后获取)如果小于赋分(15 上传后获取),
# # 则输出完成率(%)*赋分(15 上传后获取)的结果,否则输出赋分(15)
# grade_li1 = []
# for data in data_li1:
# grade = data["value"] * 15
# if grade < 15:
# grade_li1.append({"name": data["name"], "grade": grade})
# else:
# grade_li1.append({"name": data["name"], "grade": 15})
# # 项目开工率情况得分=如果开工率进度小于0.4,则输出开工率进度*赋分(5分)/0.4,否则输出赋分(5分);
# grade_li2 = []
# for data in data_li2:
# grade = data["value"]
# if grade < 0.4:
# grade_li2.append({"name": data["name"], "grade": grade * 5 / 0.4})
# else:
# grade_li2.append({"name": data["name"], "grade": 5})
# # 新开工固定资产投资项目计划投资额完成情况得分=如果完成率(%)小于1,
# # 则输出完成率(%)*赋分(25 上传后获取)的结果,否则输出赋分(25);
# grade_li3 = []
# for data in data_li3:
# grade = data["value"]
# if grade < 1:
# grade_li3.append({"name": data["name"], "grade": grade * 25})
# else:
# grade_li3.append({"name": data["name"], "grade": 25})
# # 固定资产投资项目资金到位情况得分=如果完成率(%)小于1,
# # 则输出完成率(%)*赋分(25 上传后获取)的结果,否则输出赋分(25);
# grade_li4 = []
# for data in data_li4:
# grade = data["value"]
# if grade < 1:
# grade_li4.append({"name": data["name"], "grade": grade * 25})
# else:
# grade_li4.append({"name": data["name"], "grade": 25})
# # 非固定资产投资项目资金到位情况得分=如果完成率(%)小于1,
# # 则输出完成率(%)*赋分(5 上传后获取)的结果,否则输出赋分(5);
# grade_li5 = []
# for data in data_li5:
# grade = data["value"]
# if grade < 1:
# grade_li5.append({"name": data["name"], "grade": grade * 5})
# else:
# grade_li5.append({"name": data["name"], "grade": 5})
# grade1 = 0
# grade2 = 0
# grade3 = 0
# grade4 = 0
# grade5 = 0
# for district in district_li:
# # 签约情况得分
# for grade_dic in grade_li1:
# if grade_dic["name"] == district:
# grade1 = grade_dic["grade"]
# # 项目开工率情况得分
# for grade_dic in grade_li2:
# if grade_dic["name"] == district:
# grade2 = grade_dic["grade"]
# # 新开工得分
# for grade_dic in grade_li3:
# if grade_dic["name"] == district:
# grade3 = grade_dic["grade"]
# # 固定资产得分
# for grade_dic in grade_li4:
# if grade_dic["name"] == district:
# grade4 = grade_dic["grade"]
# # 非固定资产得分
# for grade_dic in grade_li5:
# if grade_dic["name"] == district:
# grade5 = grade_dic["grade"]
# total_grade = grade1 + grade2 + grade3 + grade4 + grade5
# data_li6.append({"name": district, "value": total_grade})
# data_li6 = sorted(data_li6, key=lambda x: x['value'], reverse=False)
# return data_li6
#
#
# def get_data_li(data_time, district_li, current_year):
# # 一。项目签约完成率(签约项目完成率:完成率(%):签约金额(亿元)/ 年度目标(亿元))
# data_li1 = get_data1(data_time, district_li, current_year)
# if data_li1 == 'error':
# return jsonify(code=RET.DBERR, msg='项目签约完成率计算出错')
#
# # 二。项目开工率(开工率进度:当年签约当年开工个数/签约个数)
# data_li2 = get_data2(data_time, district_li, current_year)
# if data_li2 == 'error':
# return jsonify(code=RET.DBERR, msg='项目开工率计算出错')
#
# # 三。新开工项目计划投资额完成率(完成率(%):新开工项目计划投资额(亿元)/ 年度目标(亿元))
# data_li3 = get_data3(data_time, district_li, current_year)
# if data_li3 == 'error':
# return jsonify(code=RET.DBERR, msg='新开工项目计划投资额完成率计算出错')
#
# # 四。固定资产投资项目到位资金完成率(完成率(%):固定资产投资项目资金到位额(亿元)/ 年度目标(亿元))
# data_li4 = get_data4(data_time, district_li, current_year)
# if data_li4 == 'error':
# return jsonify(code=RET.DBERR, msg='固定资产投资项目到位资金完成率计算出错')
#
# # 五。非固定资产投资项目到位资金完成率(完成率(%):非固定资产投资项目资金到位额(亿元)/ 年度目标(亿元))
# data_li5 = get_data5(data_time, district_li, current_year)
# if data_li5 == 'error':
# return jsonify(code=RET.DBERR, msg='非固定资产投资项目到位资金完成率计算出错')
#
# return data_li1, data_li2, data_li3, data_li4, data_li5
""""""
def
get_data2
(
data_time
,
district_li
,
current_year
):
data_li2
=
[]
now_time3
=
''
now_time4
=
''
now_time
=
datetime
.
now
()
.
strftime
(
'
%
Y-
%
m
-01 00:00:00'
)
now_time1
=
(
datetime
.
now
()
-
relativedelta
(
years
=
1
))
.
strftime
(
'
%
Y-
%
m
-01 00:00:00'
)
now_time
=
datetime
.
now
()
.
strftime
(
'
%
Y-
01
-01 00:00:00'
)
now_time1
=
(
datetime
.
now
()
+
relativedelta
(
years
=
1
))
.
strftime
(
'
%
Y-01
-01 00:00:00'
)
if
data_time
:
if
data_time
[
0
]
and
data_time
[
1
]:
...
...
@@ -145,16 +555,16 @@ def get_data2(data_time, district_li, current_year):
sign_num
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
is_delete
==
0
,
# ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
ProjectManagement
.
sign_time
<
now_time
,
ProjectManagement
.
sign_time
>=
now_time
1
,
ProjectManagement
.
sign_time
<
now_time
1
,
ProjectManagement
.
sign_time
>=
now_time
,
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
)
.
count
()
# 开工项目数
start_num
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
is_delete
==
0
,
# ProjectManagement.start_time.like('%{}%'.format(str(current_year))),
ProjectManagement
.
start_time
<
now_time
,
ProjectManagement
.
start_time
>=
now_time
1
,
ProjectManagement
.
start_time
<
now_time
1
,
ProjectManagement
.
start_time
>=
now_time
,
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
)
.
count
()
else
:
...
...
@@ -193,26 +603,32 @@ def get_data2(data_time, district_li, current_year):
# 新开工项目计划投资额完成率
def
get_data3
(
data_time
,
district_li
,
current_year
):
data_li3
=
[]
now_time3
=
''
now_time4
=
''
now_time
=
datetime
.
now
()
.
strftime
(
'
%
Y-
%
m-01 00:00:00'
)
now_time1
=
(
datetime
.
now
()
-
relativedelta
(
years
=
1
))
.
strftime
(
'
%
Y-
%
m-01 00:00:00'
)
if
data_time
:
if
data_time
[
0
]
and
data_time
[
1
]:
now_time3
=
(
'{}-{}-01 00:00:00'
)
.
format
(
data_time
[
0
],
data_time
[
1
])
if
data_time
[
2
]:
now_time4
=
(
'{}-{}-01 00:00:00'
)
.
format
(
data_time
[
0
],
data_time
[
2
])
max_year
=
''
try
:
for
district
in
district_li
:
if
not
data_time
:
# 获取晋城年度目标表中的最新数据看看是哪一年的
jc_obj_list
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
if
district
!=
'全市'
else
text
(
''
),
JcTarget
.
is_delete
==
0
)
.
all
()
year_list
=
[]
for
jc_obj
in
jc_obj_list
:
year_list
.
append
(
int
(
jc_obj
.
year
.
split
(
'年'
)[
0
]))
max_year
=
max
(
set
(
year_list
))
now_time
=
'{}-01-01 00:00:00'
.
format
(
max_year
)
now_time1
=
'{}-01-01 00:00:00'
.
format
(
max_year
+
1
)
project_obj_list
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
is_delete
==
0
,
ProjectManagement
.
start_time
<
now_time
,
ProjectManagement
.
start_time
>=
now_time
1
,
ProjectManagement
.
start_time
<
now_time
1
,
ProjectManagement
.
start_time
>=
now_time
,
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
)
.
all
()
else
:
if
data_time
[
0
]
and
data_time
[
1
]:
now_time3
=
(
'{}-{}-01 00:00:00'
)
.
format
(
data_time
[
0
],
data_time
[
1
])
if
data_time
[
2
]:
now_time4
=
(
'{}-{}-01 00:00:00'
)
.
format
(
data_time
[
0
],
data_time
[
2
])
project_obj_list
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
is_delete
==
0
,
ProjectManagement
.
start_time
<
now_time4
if
now_time4
else
text
(
""
),
...
...
@@ -227,7 +643,7 @@ def get_data3(data_time, district_li, current_year):
# 年度目标
jc_obj
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
if
district
!=
'全市'
else
text
(
''
),
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
data_time
[
0
]))
if
data_time
else
str
(
current
_year
)),
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
data_time
[
0
]))
if
data_time
else
str
(
max
_year
)),
JcTarget
.
is_delete
==
0
)
.
first
()
if
not
jc_obj
:
...
...
@@ -257,8 +673,18 @@ def get_data4(data_time, district_li, current_year):
try
:
for
district
in
district_li
:
# 获取晋城年度目标表中的最新数据看看是哪一年的
jc_obj_list
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
if
district
!=
'全市'
else
text
(
''
),
JcTarget
.
is_delete
==
0
)
.
all
()
year_list
=
[]
for
jc_obj
in
jc_obj_list
:
year_list
.
append
(
int
(
jc_obj
.
year
.
split
(
'年'
)[
0
]))
max_year
=
max
(
set
(
year_list
))
project_obj
=
MoneyArrive
.
query
.
filter
(
MoneyArrive
.
data_time
.
like
(
'
%
{}
%
'
.
format
(
data_time
[
0
])
if
data_time
else
str
(
current
_year
)),
MoneyArrive
.
data_time
.
like
(
'
%
{}
%
'
.
format
(
data_time
[
0
])
if
data_time
else
str
(
max
_year
)),
MoneyArrive
.
is_delete
==
0
,
MoneyArrive
.
district_name
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
)
.
first
()
...
...
@@ -269,7 +695,7 @@ def get_data4(data_time, district_li, current_year):
# 年度目标
jc_obj
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
if
district
!=
'全市'
else
text
(
''
),
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
data_time
[
0
])
if
data_time
else
str
(
current
_year
)),
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
data_time
[
0
])
if
data_time
else
str
(
max
_year
)),
JcTarget
.
is_delete
==
0
)
.
first
()
if
not
jc_obj
:
...
...
@@ -296,29 +722,38 @@ def get_data4(data_time, district_li, current_year):
# 非固定资产投资项目到位资金完成率
def
get_data5
(
data_time
,
district_li
,
current_year
):
data_li5
=
[]
now_time3
=
''
now_time4
=
''
now_time
=
datetime
.
now
()
.
strftime
(
'
%
Y-
%
m-01 00:00:00'
)
now_time1
=
(
datetime
.
now
()
-
relativedelta
(
years
=
1
))
.
strftime
(
'
%
Y-
%
m-01 00:00:00'
)
if
data_time
:
if
data_time
[
0
]
and
data_time
[
1
]:
now_time3
=
(
'{}-{}-01 00:00:00'
)
.
format
(
data_time
[
0
],
data_time
[
1
])
if
data_time
[
2
]:
now_time4
=
(
'{}-{}-01 00:00:00'
)
.
format
(
data_time
[
0
],
data_time
[
2
])
try
:
for
district
in
district_li
:
if
not
data_time
:
# 获取晋城年度目标表中的最新数据看看是哪一年的
jc_obj_list
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
if
district
!=
'全市'
else
text
(
''
),
JcTarget
.
is_delete
==
0
)
.
all
()
year_list
=
[]
for
jc_obj
in
jc_obj_list
:
year_list
.
append
(
int
(
jc_obj
.
year
.
split
(
'年'
)[
0
]))
max_year
=
max
(
set
(
year_list
))
now_time
=
'{}-01-01 00:00:00'
.
format
(
max_year
)
now_time1
=
'{}-01-01 00:00:00'
.
format
(
max_year
+
1
)
project_obj_list
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
is_delete
==
0
,
ProjectManagement
.
is_fixed_investment
==
'否'
,
# ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
ProjectManagement
.
sign_time
<
now_time
,
ProjectManagement
.
sign_time
>=
now_time
1
,
ProjectManagement
.
sign_time
<
now_time
1
,
ProjectManagement
.
sign_time
>=
now_time
,
ProjectManagement
.
district
.
like
(
'
%
{}
%
'
.
format
(
str
(
district
)))
if
district
!=
'全市'
else
text
(
''
)
)
.
all
()
else
:
if
data_time
[
0
]
and
data_time
[
1
]:
now_time3
=
(
'{}-{}-01 00:00:00'
)
.
format
(
data_time
[
0
],
data_time
[
1
])
if
data_time
[
2
]:
now_time4
=
(
'{}-{}-01 00:00:00'
)
.
format
(
data_time
[
0
],
data_time
[
2
])
project_obj_list
=
ProjectManagement
.
query
.
filter
(
ProjectManagement
.
is_delete
==
0
,
ProjectManagement
.
is_fixed_investment
==
'否'
,
...
...
@@ -334,7 +769,7 @@ def get_data5(data_time, district_li, current_year):
# 年度目标
jc_obj
=
JcTarget
.
query
.
filter
(
JcTarget
.
district_name
==
district
if
district
!=
'全市'
else
text
(
''
),
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
data_time
[
0
])
if
data_time
else
str
(
current
_year
)),
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
data_time
[
0
])
if
data_time
else
str
(
max
_year
)),
JcTarget
.
is_delete
==
0
)
.
first
()
if
not
jc_obj
:
...
...
@@ -535,14 +970,25 @@ def statistic_jc_data():
district_li
=
[
"全市"
,
"城区"
,
"泽州县"
,
"高平市"
,
"阳城县"
,
"陵川县"
,
"沁水县"
,
"晋城经济技术开发区"
]
try
:
# 获取晋城年度目标表中的最新数据看看是哪一年的
jc_obj_list
=
JcTarget
.
query
.
filter
(
# JcTarget.district_name == district if district != '全市' else text(''),
JcTarget
.
is_delete
==
0
)
.
all
()
year_list
=
[]
for
jc_obj
in
jc_obj_list
:
year_list
.
append
(
int
(
jc_obj
.
year
.
split
(
'年'
)[
0
]))
max_year
=
max
(
set
(
year_list
))
data_li1
,
data_li2
,
data_li3
,
data_li4
,
data_li5
=
get_data_li
(
data_time
,
district_li
,
current_year
)
# 六。综合得分
data_li6
=
get_data6
(
district_li
,
data_li1
,
data_li2
,
data_li3
,
data_li4
,
data_li5
)
if
not
data_time
:
now_time
=
(
datetime
.
now
()
-
relativedelta
(
years
=
1
))
.
strftime
(
'
%
Y-
%
m-
%
d'
)
now_time
=
now_time
.
split
(
'-'
)
data_time1
=
now_time
[
0
]
+
'年'
+
now_time
[
1
]
+
'月'
+
now_time
[
2
]
+
'号-至今'
# now_time = (datetime.now() - relativedelta(years=1)).strftime('%Y-%m-%d')
# now_time = now_time.split('-')
# data_time1 = now_time[0] + '年' + now_time[1] + '月' + now_time[2] + '号-至今'
data_time1
=
str
(
max_year
)
+
'年'
elif
not
data_time
[
2
]:
data_time1
=
data_time
[
0
]
+
'年'
+
data_time
[
1
]
+
'月'
# ["2022", "01", ""]
else
:
...
...
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