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
88aa9901
Commit
88aa9901
authored
Nov 25, 2022
by
dong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix20221125
parent
b89d70af
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
807 additions
and
122 deletions
+807
-122
apps/inves_manage/project_manager.py
+738
-103
apps/inves_manage/siku_view.py
+0
-12
apps/models.py
+68
-0
apps/view_mobile/view_user.py
+1
-1
apps/view_user/view.py
+0
-6
No files found.
apps/inves_manage/project_manager.py
View file @
88aa9901
...
@@ -31,7 +31,7 @@ def file_delete(file_del_list, project_id):
...
@@ -31,7 +31,7 @@ def file_delete(file_del_list, project_id):
if
file_del_list
:
if
file_del_list
:
for
file_id
in
file_del_list
:
for
file_id
in
file_del_list
:
if
file_id
:
if
file_id
:
file_obj
=
ProjectFile
.
query
.
filter_by
(
id
=
file_id
,
project_id
=
project_id
,
file_type
=
1
)
.
first
()
file_obj
=
ProjectFile
.
query
.
filter_by
(
id
=
file_id
,
project_
manager_
id
=
project_id
,
file_type
=
1
)
.
first
()
db
.
session
.
delete
(
file_obj
)
db
.
session
.
delete
(
file_obj
)
db
.
session
.
commit
()
db
.
session
.
commit
()
return
'ok'
return
'ok'
...
@@ -70,19 +70,20 @@ def search_project1():
...
@@ -70,19 +70,20 @@ def search_project1():
try
:
try
:
project_obj
=
ProjectManagement
.
query
.
filter
(
project_obj
=
ProjectManagement
.
query
.
filter
(
and_
(
ProjectManagement
.
project_name
.
like
(
'
%
{}
%
'
.
format
(
project_name
))
if
project_name
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
==
project_stalker
if
project_stalker
else
text
(
''
),
ProjectManagement
.
project_name
==
project_name
if
project_name
else
text
(
''
),
ProjectManagement
.
project_name
==
project_name
if
project_name
else
text
(
''
),
ProjectManagement
.
district
==
district
if
district
else
text
(
''
),
ProjectManagement
.
district
==
district
if
district
else
text
(
''
),
ProjectManagement
.
development_area
==
development_area
if
development_area
else
text
(
''
),
ProjectManagement
.
development_area
==
development_area
if
development_area
else
text
(
''
),
ProjectManagement
.
investor_name
>=
investor_name
[
0
]
if
investor_name
else
text
(
''
),
ProjectManagement
.
investor_name
>=
investor_name
[
0
]
if
investor_name
else
text
(
''
),
ProjectManagement
.
investor_name
<
investor_name
[
1
]
if
investor_name
else
text
(
''
),
ProjectManagement
.
investor_name
<
investor_name
[
1
]
if
investor_name
else
text
(
''
),
ProjectManagement
.
investor_district
==
investor_district
if
investor_district
else
text
(
''
),
ProjectManagement
.
investor_district
.
like
(
'
%
{}
%
'
.
format
(
investor_district
))
if
investor_district
else
text
(
''
),
ProjectManagement
.
industry
==
industry
if
industry
else
text
(
''
),
ProjectManagement
.
industry
==
industry
if
industry
else
text
(
''
),
ProjectManagement
.
investment_volume
==
investment_volume
if
investment_volume
else
text
(
''
),
ProjectManagement
.
investment_volume
==
investment_volume
if
investment_volume
else
text
(
''
),
ProjectManagement
.
project_progress
==
project_progress
if
project_progress
else
text
(
''
),
ProjectManagement
.
project_progress
==
project_progress
if
project_progress
else
text
(
''
),
ProjectManagement
.
project_year
==
project_year
if
project_year
else
text
(
''
),
ProjectManagement
.
project_year
==
project_year
if
project_year
else
text
(
''
),
))
ProjectManagement
.
is_delete
==
0
)
if
not
project_obj
.
all
():
if
not
project_obj
.
all
():
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
'没有符合条件的数据!'
)
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
'没有符合条件的数据!'
)
...
@@ -128,8 +129,8 @@ def check_project_detail1():
...
@@ -128,8 +129,8 @@ def check_project_detail1():
if
not
project_id
:
if
not
project_id
:
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"参数不能为空!"
)
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"参数不能为空!"
)
try
:
try
:
project_obj
_list
=
ProjectManagement
.
query
.
filter_by
(
id
=
project_id
)
project_obj
=
ProjectManagement
.
query
.
filter_by
(
id
=
project_id
)
.
first
(
)
data
=
[
{
"id"
:
project_obj
.
id
,
project_data
=
{
"id"
:
project_obj
.
id
,
"project_stalker"
:
project_obj
.
project_stalker
,
# 项目跟踪
"project_stalker"
:
project_obj
.
project_stalker
,
# 项目跟踪
"project_name"
:
project_obj
.
project_name
,
# 项目名称
"project_name"
:
project_obj
.
project_name
,
# 项目名称
"district"
:
project_obj
.
district
,
# 项目所在地
"district"
:
project_obj
.
district
,
# 项目所在地
...
@@ -146,7 +147,7 @@ def check_project_detail1():
...
@@ -146,7 +147,7 @@ def check_project_detail1():
"project_year"
:
project_obj
.
project_year
,
# 项目年份
"project_year"
:
project_obj
.
project_year
,
# 项目年份
"upload_unity"
:
project_obj
.
upload_unity
,
# 上传部门
"upload_unity"
:
project_obj
.
upload_unity
,
# 上传部门
"upload_people"
:
project_obj
.
upload_people
,
# 上传人
"upload_people"
:
project_obj
.
upload_people
,
# 上传人
"upload_time"
:
project_obj
.
upload_time
,
# 上传时间
"upload_time"
:
project_obj
.
upload_time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
,
# 上传时间
"project_num"
:
project_obj
.
project_num
,
# 项目编号
"project_num"
:
project_obj
.
project_num
,
# 项目编号
"project_source"
:
project_obj
.
project_source
,
# 项目来源
"project_source"
:
project_obj
.
project_source
,
# 项目来源
"project_unity"
:
project_obj
.
project_unity
,
# 项目申报单位
"project_unity"
:
project_obj
.
project_unity
,
# 项目申报单位
...
@@ -173,8 +174,14 @@ def check_project_detail1():
...
@@ -173,8 +174,14 @@ def check_project_detail1():
"investor_people"
:
project_obj
.
investor_people
,
# 投资方联系人
"investor_people"
:
project_obj
.
investor_people
,
# 投资方联系人
"investor_mobile"
:
project_obj
.
investor_mobile
,
# 投资方电话
"investor_mobile"
:
project_obj
.
investor_mobile
,
# 投资方电话
"investor_address"
:
project_obj
.
investor_address
,
# 投资方联系地址
"investor_address"
:
project_obj
.
investor_address
,
# 投资方联系地址
}
for
project_obj
in
project_obj_list
]
}
return
jsonify
(
code
=
RET
.
OK
,
data
=
{
"data"
:
data
,
"msg"
:
"数据获取成功!"
})
file_obj_list
=
project_obj
.
project_files1
file_data
=
[{
"id"
:
file_obj
.
id
,
"file_url"
:
file_obj
.
file_url
,
"file_name"
:
file_obj
.
file_name
,
}
for
file_obj
in
file_obj_list
]
return
jsonify
(
code
=
RET
.
OK
,
data
=
{
"data"
:
project_data
,
"file_data"
:
file_data
,
"msg"
:
"数据获取成功!"
})
except
Exception
as
e
:
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"操作失败!数据库查询错误"
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"操作失败!数据库查询错误"
)
...
@@ -196,10 +203,6 @@ def download_project_template():
...
@@ -196,10 +203,6 @@ def download_project_template():
# 批量导入
# 批量导入
@api_manage.route
(
"/UploadProjectData2"
,
methods
=
[
"POST"
])
@api_manage.route
(
"/UploadProjectData2"
,
methods
=
[
"POST"
])
def
upload_project_data2
():
def
upload_project_data2
():
# 获取上传的文件
token
=
request
.
headers
[
'token'
]
action_name
=
'批量导入'
token
=
request
.
headers
[
'token'
]
token
=
request
.
headers
[
'token'
]
try
:
try
:
user_obj
=
verify_token
(
token
)
user_obj
=
verify_token
(
token
)
...
@@ -305,8 +308,9 @@ def upload_project_data2():
...
@@ -305,8 +308,9 @@ def upload_project_data2():
country
=
country
,
country
=
country
,
provence
=
provence
,
provence
=
provence
,
city
=
city
,
city
=
city
,
investor_district
=
provence
+
"/"
+
city
,
industry
=
industry1
+
'/'
+
industry2
,
industry
=
industry1
+
'/'
+
industry2
,
investment_volume
=
investment_volume
,
investment_volume
=
country
+
provence
+
city
,
construction_content
=
construction_content
,
construction_content
=
construction_content
,
construction_nature
=
construction_nature
,
construction_nature
=
construction_nature
,
project_address
=
project_address
,
project_address
=
project_address
,
...
@@ -325,6 +329,7 @@ def upload_project_data2():
...
@@ -325,6 +329,7 @@ def upload_project_data2():
upload_unity
=
user_unity
,
upload_unity
=
user_unity
,
upload_people
=
user_name
,
upload_people
=
user_name
,
upload_time
=
file_time
,
upload_time
=
file_time
,
is_delete
=
0
)
)
db
.
session
.
add
(
project_obj
)
db
.
session
.
add
(
project_obj
)
db
.
session
.
commit
()
db
.
session
.
commit
()
...
@@ -498,88 +503,6 @@ def batch_delete1():
...
@@ -498,88 +503,6 @@ def batch_delete1():
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"批量删除操作失败!"
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"批量删除操作失败!"
)
# # 项目详情信息/编辑页的数据展示
# @api_manage.route("/CheckProjectDetail2", methods=["POST"])
# def check_project_detail2():
# req_dic = request.get_json()
# project_id = req_dic['project_id']
# token = request.headers['token']
# # year = str(datetime.now().year)
# try:
# project_obj = ProjectManagement.query.filter_by(id=project_id).first()
# # project_num = project_obj1.project_num
# # # 先查找本年份的,确保是最新的项目信息。如果没有本年的就用往年的
# # project_obj2 = ProjectManagement.query.filter(
# # ProjectManagement.project_num == project_num,
# # ProjectManagement.upload_time.like('%{}%'.format(year))
# # ).first()
# # if project_obj2:
# # project_obj = project_obj2
# # project_id = project_obj2.id
# # else:
# # project_obj = project_obj1
# project_data = {"project_stalker": project_obj.project_stalker,
# "project_name": project_obj.project_name,
# "district": project_obj.district,
# "development_area": project_obj.development_area,
# "attract_name": project_obj.attract_name,
# "investor_name": project_obj.investor_name,
# "industry": project_obj.industry,
# "investment_volume": project_obj.investment_volume,
# "construction_content": project_obj.construction_content,
# "project_address": project_obj.project_address,
# "project_progress": project_obj.project_progress,
# "project_problem": project_obj.project_problem,
# "upload_unity": project_obj.upload_unity,
# "upload_people": project_obj.upload_people,
# "upload_time": project_obj.upload_time,
# "project_num": project_obj.project_num,
# "project_source": project_obj.project_source,
# "project_unity": project_obj.project_unity,
# "is_development_project": project_obj.is_development_project,
# "sign_time": project_obj.sign_time,
# "start_time": project_obj.start_time,
# "end_time": project_obj.end_time,
# "investor_rank": project_obj.investor_rank,
# "is_transf_project": project_obj.is_transf_project,
# "country": project_obj.country,
# "provence": project_obj.provence,
# "city": project_obj.city,
# "job_num": project_obj.job_num,
# "new_value": project_obj.new_value,
# "revenue": project_obj.revenue,
# "use_land": project_obj.use_land,
# "new_land": project_obj.new_land,
# "construction_nature": project_obj.construction_nature,
# "is_fixed_investment": project_obj.is_fixed_investment,
# "investment_year": project_obj.investment_year,
#
# "investment_history": project_obj.investment_history,
# "cooperation_way": project_obj.cooperation_way,
# "set_project_status": project_obj.set_project_status,
# "investor_people": project_obj.investor_people,
# "investor_mobile": project_obj.investor_mobile,
# "investor_address": project_obj.investor_address,
# }
# file_obj_list = ProjectFile.query.filter_by(project_id=project_id, file_type=1, flag=5).all()
# file_data = []
# if file_obj_list:
# file_data = [{
# "id": file_obj.id,
# "file_url": file_obj.file_url,
# "file_name": file_obj.file_name,
# "project_id": file_obj.project_id,
# "file_type": file_obj.file_type
# } for file_obj in file_obj_list]
#
# return jsonify(code=RET.OK, data={"project_data": project_data,
# "file_data": file_data,
# "msg": "数据获取成功!"})
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="操作失败!数据库查询错误")
# 项目编辑
# 项目编辑
@api_manage.route
(
"/ProjectEdit1"
,
methods
=
[
"POST"
])
@api_manage.route
(
"/ProjectEdit1"
,
methods
=
[
"POST"
])
def
project_edit
():
def
project_edit
():
...
@@ -600,7 +523,6 @@ def project_edit():
...
@@ -600,7 +523,6 @@ def project_edit():
project_problem
=
request
.
form
[
'project_problem'
]
project_problem
=
request
.
form
[
'project_problem'
]
upload_unity
=
request
.
form
[
'upload_unity'
]
upload_unity
=
request
.
form
[
'upload_unity'
]
upload_people
=
request
.
form
[
'upload_people'
]
upload_people
=
request
.
form
[
'upload_people'
]
upload_time
=
request
.
form
[
'upload_time'
]
project_num
=
request
.
form
[
'project_num'
]
project_num
=
request
.
form
[
'project_num'
]
project_source
=
request
.
form
[
'project_source'
]
project_source
=
request
.
form
[
'project_source'
]
project_unity
=
request
.
form
[
'project_unity'
]
project_unity
=
request
.
form
[
'project_unity'
]
...
@@ -631,8 +553,7 @@ def project_edit():
...
@@ -631,8 +553,7 @@ def project_edit():
token
=
request
.
headers
[
'token'
]
token
=
request
.
headers
[
'token'
]
edit_time
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
upload_time
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
flag
=
0
# 记录是否更新了最新进展、待解决问题
try
:
try
:
user_obj
=
verify_token
(
token
)
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
user_name
=
user_obj
.
real_name
...
@@ -658,7 +579,7 @@ def project_edit():
...
@@ -658,7 +579,7 @@ def project_edit():
project_obj
.
project_problem
=
project_problem
project_obj
.
project_problem
=
project_problem
project_obj
.
upload_unity
=
upload_unity
project_obj
.
upload_unity
=
upload_unity
project_obj
.
upload_people
=
upload_people
project_obj
.
upload_people
=
upload_people
project_obj
.
upload_time
=
upload_time
#
project_obj.upload_time = upload_time
project_obj
.
project_num
=
project_num
project_obj
.
project_num
=
project_num
project_obj
.
project_source
=
project_source
project_obj
.
project_source
=
project_source
project_obj
.
project_unity
=
project_unity
project_obj
.
project_unity
=
project_unity
...
@@ -671,6 +592,7 @@ def project_edit():
...
@@ -671,6 +592,7 @@ def project_edit():
project_obj
.
country
=
country
project_obj
.
country
=
country
project_obj
.
provence
=
provence
project_obj
.
provence
=
provence
project_obj
.
city
=
city
project_obj
.
city
=
city
project_obj
.
investor_district
=
country
+
provence
+
city
project_obj
.
job_num
=
job_num
project_obj
.
job_num
=
job_num
project_obj
.
new_value
=
new_value
project_obj
.
new_value
=
new_value
project_obj
.
revenue
=
revenue
project_obj
.
revenue
=
revenue
...
@@ -685,7 +607,6 @@ def project_edit():
...
@@ -685,7 +607,6 @@ def project_edit():
project_obj
.
investor_people
=
investor_people
project_obj
.
investor_people
=
investor_people
project_obj
.
investor_mobile
=
investor_mobile
project_obj
.
investor_mobile
=
investor_mobile
project_obj
.
investor_address
=
investor_address
project_obj
.
investor_address
=
investor_address
db
.
session
.
commit
()
# 删除文件和图片
# 删除文件和图片
result
=
file_delete
(
file_del_list
,
project_id
)
result
=
file_delete
(
file_del_list
,
project_id
)
if
result
==
'error'
:
if
result
==
'error'
:
...
@@ -701,19 +622,20 @@ def project_edit():
...
@@ -701,19 +622,20 @@ def project_edit():
# 存入数据库
# 存入数据库
file_obj
=
ProjectFile
(
flag
=
5
,
file_obj
=
ProjectFile
(
flag
=
5
,
file_type
=
1
,
file_type
=
1
,
# project_id=project_id,
file_url
=
file_url
,
file_url
=
file_url
,
file_name
=
file_name
,
file_name
=
file_name
,
upload_time
=
upload_time
,
upload_time
=
upload_time
,
upload_people
=
upload_people
,
upload_people
=
upload_people
,
upload_people_id
=
user_id
,
upload_people_id
=
user_id
,
project_id
=
project_id
project_
manager_
id
=
project_id
)
)
db
.
session
.
add
(
file_obj
)
db
.
session
.
add
(
file_obj
)
db
.
session
.
commit
()
db
.
session
.
commit
()
except
Exception
as
e
:
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"文件上传失败!"
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"文件上传失败!"
)
db
.
session
.
commit
()
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"修改成功!"
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"修改成功!"
)
except
Exception
as
e
:
except
Exception
as
e
:
db
.
session
.
rollback
()
db
.
session
.
rollback
()
...
@@ -721,3 +643,716 @@ def project_edit():
...
@@ -721,3 +643,716 @@ def project_edit():
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"查询数据库错误!"
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"查询数据库错误!"
)
"""指标分析 山西指标数据"""
# 下载模板
@api_manage.route
(
"/DownloadProjectTemplate1"
,
methods
=
[
"POST"
])
def
download_project_template1
():
token
=
request
.
headers
[
'token'
]
req_dic
=
request
.
get_json
()
flag
=
req_dic
[
'flag'
]
# 1为山西省各市完成情况表,2为晋城市及县区年度目标表,3为晋城市及县区固投到位资金完成情况
try
:
user_obj
=
verify_token
(
token
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"进行操作时用户信息校验失败,请重新登陆后尝试!"
)
project_template
=
''
if
flag
==
1
:
project_template
=
"http://39.100.39.50:8008/aaa_statics/template_file/山西省各市完成情况表.xlsx"
if
flag
==
2
:
project_template
=
"http://39.100.39.50:8008/aaa_statics/template_file/晋城市及县区年度目标表.xls"
if
flag
==
3
:
project_template
=
"http://39.100.39.50:8008/aaa_statics/template_file/晋城市及县区固投到位资金完成情况.xls"
return
jsonify
(
code
=
RET
.
OK
,
data
=
project_template
,
msg
=
"模板下载成功!"
)
# 上传山西省地市指标
@api_manage.route
(
"/UploadShanxiData"
,
methods
=
[
"POST"
])
def
upload_shanxi_data
():
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
user_unity
=
user_obj
.
belong_organization
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"进行操作时用户信息校验失败,请重新登陆后尝试!"
)
# 上传的文件
file
=
request
.
files
[
'file'
]
print
(
file
.
filename
)
# 打印文件名
data_time
=
request
.
form
[
'data_time'
]
# file_name = file.filename
upload_time
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
try
:
f
=
file
.
read
()
# 文件内容
data
=
xlrd
.
open_workbook
(
file_contents
=
f
)
table
=
data
.
sheets
()[
0
]
names
=
data
.
sheet_names
()
# 返回book中所有工作表的名字
status
=
data
.
sheet_loaded
(
names
[
0
])
# 检查sheet1是否导入完毕
print
(
status
)
nrows
=
table
.
nrows
# 获取该sheet中的有效行数
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
THIRDERR
,
msg
=
"读取文件失败!"
)
success_num
=
0
row_list
=
[
table
.
row_values
(
i
)
for
i
in
range
(
3
,
nrows
)]
for
i
in
range
(
0
,
len
(
row_list
)):
row_content
=
row_list
[
i
]
if
not
row_content
:
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"表格内无有效数据!请尝试 <清空浏览器缓存> 后下载最新模板,根据模板提示信息编辑数据后再次上传。(注:第三行为首行有效数据不能为空、第一行和第二行无法读取。)"
)
try
:
district_name
=
row_content
[
0
]
# 区县名称
sign_money
=
row_content
[
1
]
# 签约金额
sign_target_money
=
row_content
[
2
]
# 目标金额
sign_finish_rate
=
row_content
[
3
]
# 完成率
plan_invest_money
=
row_content
[
4
]
# 计划投资额
plan_target_money
=
row_content
[
5
]
# 目标计划投资额
plan_finish_rate
=
row_content
[
6
]
# 计划投资额完成率
arrive_money
=
row_content
[
7
]
# 资金到位
arrive_target_money
=
row_content
[
8
]
# 目标资金到位
arrive_finish_rate
=
row_content
[
9
]
# 计划投资额完成率
except
Exception
as
e
:
# 表示操作失败,回滚数据库操作
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据异常!请尝试 <清空浏览器缓存> 后下载最新模板,根据模板提示信息编辑数据后再次上传。"
)
if
not
district_name
:
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
'区县名称不能为空!'
)
try
:
target_obj
=
ShanxiTarget
.
query
.
filter_by
(
district_name
=
district_name
,
data_time
=
data_time
)
.
first
()
if
target_obj
:
# 更新
# target_obj.file_name = target_obj.data_time + '全省数据'
target_obj
.
data_time
=
data_time
target_obj
.
upload_time
=
upload_time
target_obj
.
upload_unit
=
user_unity
target_obj
.
upload_people
=
user_name
target_obj
.
district_name
=
district_name
target_obj
.
sign_money
=
sign_money
target_obj
.
sign_target_money
=
sign_target_money
target_obj
.
sign_finish_rate
=
sign_finish_rate
target_obj
.
plan_invest_money
=
plan_invest_money
target_obj
.
plan_target_money
=
plan_target_money
target_obj
.
plan_finish_rate
=
plan_finish_rate
target_obj
.
arrive_money
=
arrive_money
target_obj
.
arrive_target_money
=
arrive_target_money
target_obj
.
arrive_finish_rate
=
arrive_finish_rate
db
.
session
.
commit
()
success_num
+=
1
continue
else
:
# 写入数据库
# file_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
target_obj
=
ShanxiTarget
(
# file_name=file_name,
is_delete
=
0
,
data_time
=
data_time
,
upload_time
=
upload_time
,
upload_unit
=
user_unity
,
upload_people
=
user_name
,
district_name
=
district_name
,
sign_money
=
sign_money
,
sign_target_money
=
sign_target_money
,
sign_finish_rate
=
sign_finish_rate
,
plan_invest_money
=
plan_invest_money
,
plan_target_money
=
plan_target_money
,
plan_finish_rate
=
plan_finish_rate
,
arrive_money
=
arrive_money
,
arrive_target_money
=
arrive_target_money
,
arrive_finish_rate
=
arrive_finish_rate
,
)
db
.
session
.
add
(
target_obj
)
db
.
session
.
commit
()
success_num
+=
1
continue
except
Exception
as
e
:
# 表示操作失败,回滚数据库操作
db
.
session
.
rollback
()
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库异常"
)
if
success_num
>
0
:
return
jsonify
(
code
=
RET
.
OK
,
msg
=
'上传成功!数据上传 {} 条数据'
.
format
(
success_num
))
else
:
return
jsonify
(
code
=
RET
.
DATAERR
,
msg
=
'无新数据上传。'
)
# 概览数据列表(山西指标上传页数据列表展示)
@api_manage.route
(
"/ShanxiDataList"
,
methods
=
[
"POST"
])
def
shanxi_data_list
():
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
user_unity
=
user_obj
.
belong_organization
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"进行操作时用户信息校验失败,请重新登陆后尝试!"
)
req_dic
=
request
.
get_json
()
year
=
req_dic
[
'year'
]
current_year
=
datetime
.
now
()
.
year
try
:
target_obj_list
=
ShanxiTarget
.
query
.
filter
(
ShanxiTarget
.
data_time
.
like
(
'
%
{}
%
'
.
format
(
year
)
if
year
else
current_year
))
.
all
()
data_time_set
=
set
(
target_obj
.
data_time
for
target_obj
in
target_obj_list
)
# 收集上传周期
data_li
=
[]
for
data_time
in
list
(
data_time_set
):
target_obj
=
ShanxiTarget
.
query
.
filter_by
(
data_time
=
data_time
)
.
first
()
data
=
{
"data_time"
:
target_obj
.
data_time
,
"upload_time"
:
target_obj
.
upload_time
,
"upload_unit"
:
target_obj
.
upload_unit
,
"upload_people"
:
target_obj
.
upload_people
}
data_li
.
append
(
data
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
data_li
,
msg
=
'获取成功!'
)
except
Exception
as
e
:
db
.
session
.
rollback
()
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"查询数据库错误!"
)
# 新增/编辑山西指标上传页数据
@api_manage.route
(
"/AddEditShanxiData"
,
methods
=
[
"POST"
])
def
add_shanxi_data
():
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
user_unity
=
user_obj
.
belong_organization
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"进行操作时用户信息校验失败,请重新登陆后尝试!"
)
req_dic
=
request
.
get_json
()
data_list
=
req_dic
[
"data_list"
]
upload_time
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
for
data
in
data_list
:
data_time
=
data
[
'data_time'
]
# 数据年份
district_name
=
data
[
'district_name'
]
# 区县名称
sign_money
=
data
[
'sign_money'
]
# 签约金额
sign_target_money
=
data
[
'sign_target_money'
]
# 目标金额
sign_finish_rate
=
data
[
'sign_finish_rate'
]
# 完成率
plan_invest_money
=
data
[
'plan_invest_money'
]
# 计划投资额
plan_target_money
=
data
[
'plan_target_money'
]
# 目标计划投资额
plan_finish_rate
=
data
[
'plan_finish_rate'
]
# 计划投资额完成率
arrive_money
=
data
[
'arrive_money'
]
# 资金到位
arrive_target_money
=
data
[
'arrive_target_money'
]
# 目标资金到位
arrive_finish_rate
=
data
[
'arrive_finish_rate'
]
# 计划投资额完成率
try
:
target_obj
=
ShanxiTarget
.
query
.
filter_by
(
district_name
=
district_name
,
data_time
=
data_time
)
.
first
()
if
target_obj
:
# 更新
target_obj
.
data_time
=
data_time
target_obj
.
upload_time
=
upload_time
target_obj
.
upload_unit
=
user_unity
target_obj
.
upload_people
=
user_name
target_obj
.
district_name
=
district_name
target_obj
.
sign_money
=
sign_money
target_obj
.
sign_target_money
=
sign_target_money
target_obj
.
sign_finish_rate
=
sign_finish_rate
target_obj
.
plan_invest_money
=
plan_invest_money
target_obj
.
plan_target_money
=
plan_target_money
target_obj
.
plan_finish_rate
=
plan_finish_rate
target_obj
.
arrive_money
=
arrive_money
target_obj
.
arrive_target_money
=
arrive_target_money
target_obj
.
arrive_finish_rate
=
arrive_finish_rate
db
.
session
.
commit
()
else
:
target_obj
=
ShanxiTarget
(
is_delete
=
0
,
data_time
=
data_time
,
upload_time
=
upload_time
,
upload_unit
=
user_unity
,
upload_people
=
user_name
,
district_name
=
district_name
,
sign_money
=
sign_money
,
sign_target_money
=
sign_target_money
,
sign_finish_rate
=
sign_finish_rate
,
plan_invest_money
=
plan_invest_money
,
plan_target_money
=
plan_target_money
,
plan_finish_rate
=
plan_finish_rate
,
arrive_money
=
arrive_money
,
arrive_target_money
=
arrive_target_money
,
arrive_finish_rate
=
arrive_finish_rate
)
db
.
session
.
add
(
target_obj
)
db
.
session
.
commit
()
continue
except
Exception
as
e
:
# 表示操作失败,回滚数据库操作
db
.
session
.
rollback
()
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库异常,新增失败!"
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
'新增成功!'
)
# 详情数据列表(某周期山西各地市指标数据列表展示)
@api_manage.route
(
"/ShanxiDataDetail"
,
methods
=
[
"POST"
])
def
shanxi_data_detail
():
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
user_unity
=
user_obj
.
belong_organization
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"进行操作时用户信息校验失败,请重新登陆后尝试!"
)
req_dic
=
request
.
get_json
()
data_time
=
req_dic
[
"data_time"
]
try
:
target_obj_li
=
ShanxiTarget
.
query
.
filter_by
(
data_time
=
data_time
)
.
all
()
data
=
[{
"data_time"
:
target_obj
.
data_time
,
"upload_time"
:
target_obj
.
upload_time
,
"upload_unit"
:
target_obj
.
upload_unit
,
"upload_people"
:
target_obj
.
upload_people
,
"district_name"
:
target_obj
.
district_name
,
"sign_money"
:
target_obj
.
sign_money
,
"sign_target_money"
:
target_obj
.
sign_target_money
,
"sign_finish_rate"
:
target_obj
.
sign_finish_rate
,
"plan_invest_money"
:
target_obj
.
plan_invest_money
,
"plan_target_money"
:
target_obj
.
plan_target_money
,
"plan_finish_rate"
:
target_obj
.
plan_finish_rate
,
"arrive_money"
:
target_obj
.
arrive_money
,
"arrive_target_money"
:
target_obj
.
arrive_target_money
,
"arrive_finish_rate"
:
target_obj
.
arrive_finish_rate
,
}
for
target_obj
in
target_obj_li
]
return
jsonify
(
code
=
RET
.
OK
,
data
=
data
,
msg
=
"获取成功!"
)
except
Exception
as
e
:
# 表示操作失败,回滚数据库操作
db
.
session
.
rollback
()
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库异常"
)
# 下载数据详情
@api_manage.route
(
"/DownloadShanxiData"
,
methods
=
[
"POST"
])
def
download_shanxi_data
():
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"进行操作时用户信息校验失败,请重新登陆后尝试!"
)
req_dic
=
request
.
get_json
()
data_time
=
req_dic
[
"data_time"
]
path
=
'./apps/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/'
# 项目路径
if
not
data_time
:
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"参数不能为空!"
)
target_data_list
=
[]
try
:
target_obj_li
=
ShanxiTarget
.
query
.
filter_by
(
data_time
=
data_time
)
.
all
()
for
target_obj
in
target_obj_li
:
# 提取数据,写入xslx表格
data_list
=
[]
district_name
=
target_obj
.
district_name
data_list
.
append
(
district_name
)
# 区县名称
sign_money
=
target_obj
.
sign_money
data_list
.
append
(
sign_money
)
# 签约金额
sign_target_money
=
target_obj
.
sign_target_money
data_list
.
append
(
sign_target_money
)
# 目标金额
sign_finish_rate
=
target_obj
.
sign_finish_rate
data_list
.
append
(
sign_finish_rate
)
# 完成率
plan_invest_money
=
target_obj
.
plan_invest_money
data_list
.
append
(
plan_invest_money
)
# 计划投资额
plan_target_money
=
target_obj
.
plan_target_money
data_list
.
append
(
plan_target_money
)
# 目标计划投资额
plan_finish_rate
=
target_obj
.
plan_finish_rate
data_list
.
append
(
plan_finish_rate
)
# 计划投资额完成率
arrive_money
=
target_obj
.
arrive_money
data_list
.
append
(
arrive_money
)
# 资金到位
arrive_target_money
=
target_obj
.
arrive_target_money
data_list
.
append
(
arrive_target_money
)
# 目标资金到位
arrive_finish_rate
=
target_obj
.
arrive_finish_rate
data_list
.
append
(
arrive_finish_rate
)
# 计划投资额完成率
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
:
sheet_name_titles
=
{
"sheet1"
:
[
"市"
,
"签约金额(亿元)"
,
"年度目标(亿元)"
,
"完成率(
%
)"
,
"新开工项目计划投资额(亿元)"
,
"年度目标(亿元)"
,
"完成率(
%
)"
,
"固定资产投资项目资金到位额(亿元)"
,
"年度目标(亿元)"
,
"完成率(
%
)"
]}
excel
=
xlwt
.
Workbook
(
encoding
=
'utf-8'
)
# 写入表头
for
i
in
range
(
len
(
sheet_name_titles
)):
for
k
,
v
in
sheet_name_titles
.
items
():
sheet_name
=
k
sheet
=
excel
.
add_sheet
(
sheet_name
)
head_list
=
v
print
(
head_list
)
for
j
in
range
(
len
(
head_list
)):
sheet
.
write
(
0
,
j
,
head_list
[
j
])
# 写入数据,从第二行(i+1)
rows
=
len
(
target_data_list
)
cols
=
len
(
head_list
)
for
i
in
range
(
rows
):
for
j
in
range
(
cols
):
sheet
.
write
(
i
+
1
,
j
,
target_data_list
[
i
][
j
])
time_stamp
=
'{0:
%
Y
%
m
%
d
%
H
%
M
%
S}'
.
format
(
datetime
.
now
())
file_name
=
"山西省各地市指标完成情况表{}.xlsx"
.
format
(
time_stamp
)
excel
.
save
(
path
+
file_name
)
return
jsonify
(
code
=
RET
.
OK
,
url
=
pro_path
+
file_name
,
msg
=
"导出/下载成功!"
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"批量导出操作失败!"
)
# 删除某时间周期的数据
@api_manage.route
(
"/DeleteShanxiData"
,
methods
=
[
"POST"
])
def
delete_shanxi_data
():
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"进行操作时用户信息校验失败,请重新登陆后尝试!"
)
req_dic
=
request
.
get_json
()
data_time
=
req_dic
[
"data_time"
]
try
:
target_obj_li
=
ShanxiTarget
.
query
.
filter_by
(
data_time
=
data_time
)
.
all
()
for
target_obj
in
target_obj_li
:
target_obj
.
is_delete
=
1
db
.
session
.
commit
()
continue
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"删除成功!"
)
except
Exception
as
e
:
db
.
session
.
rollback
()
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"查询数据库错误!"
)
"""指标分析 晋城指标数据"""
# 上传晋城省地市指标
@api_manage.route
(
"/UploadJcData"
,
methods
=
[
"POST"
])
def
upload_jc_data
():
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
user_unity
=
user_obj
.
belong_organization
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"进行操作时用户信息校验失败,请重新登陆后尝试!"
)
# 上传的文件
file
=
request
.
files
[
'file'
]
year
=
request
.
files
[
'year'
]
# 年份,如'2022年'
print
(
file
.
filename
)
# 打印文件名
upload_time
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
current_year
=
str
(
datetime
.
now
()
.
year
)
+
'年'
try
:
f
=
file
.
read
()
# 文件内容
data
=
xlrd
.
open_workbook
(
file_contents
=
f
)
table
=
data
.
sheets
()[
0
]
names
=
data
.
sheet_names
()
# 返回book中所有工作表的名字
status
=
data
.
sheet_loaded
(
names
[
0
])
# 检查sheet1是否导入完毕
print
(
status
)
nrows
=
table
.
nrows
# 获取该sheet中的有效行数
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
THIRDERR
,
msg
=
"读取文件失败!"
)
success_num
=
0
row_list
=
[
table
.
row_values
(
i
)
for
i
in
range
(
4
,
nrows
)]
for
i
in
range
(
0
,
len
(
row_list
)):
row_content
=
row_list
[
i
]
if
not
row_content
:
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"表格内无有效数据!请尝试 <清空浏览器缓存> 后下载最新模板,根据模板提示信息编辑数据后再次上传。(注:第三行为首行有效数据不能为空、第一行和第二行无法读取。)"
)
try
:
district_name
=
row_content
[
0
]
# 区县名称
money_sign
=
row_content
[
1
]
# 签约项目金额
rate_start
=
row_content
[
2
]
# 项目开工率
money_plan_invest
=
row_content
[
3
]
# 新开工固定资产投资项目计划投资额
money_arrive_target1
=
row_content
[
4
]
# 固定资产投资项目资金到位额
money_arrive_target0
=
row_content
[
5
]
# 非固定资产投资项目资金到位额
except
Exception
as
e
:
# 表示操作失败,回滚数据库操作
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据异常!请尝试 <清空浏览器缓存> 后下载最新模板,根据模板提示信息编辑数据后再次上传。"
)
if
not
district_name
:
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
'区县名称不能为空!'
)
try
:
target_obj
=
JcTarget
.
query
.
filter_by
(
district_name
=
district_name
,
year
=
year
)
.
first
()
if
target_obj
:
# 更新
target_obj
.
file_name
=
current_year
+
'年度目标数据'
target_obj
.
year
=
current_year
target_obj
.
upload_time
=
upload_time
target_obj
.
upload_unit
=
user_unity
target_obj
.
upload_people
=
user_name
target_obj
.
district_name
=
district_name
target_obj
.
money_sign
=
money_sign
target_obj
.
rate_start
=
rate_start
target_obj
.
money_plan_invest
=
money_plan_invest
target_obj
.
money_arrive_target1
=
money_arrive_target1
target_obj
.
money_arrive_target0
=
money_arrive_target0
db
.
session
.
commit
()
success_num
+=
1
continue
else
:
# 写入数据库
target_obj
=
JcTarget
(
file_name
=
current_year
+
'年度目标数据'
,
is_delete
=
0
,
year
=
current_year
,
upload_time
=
upload_time
,
upload_unit
=
user_unity
,
upload_people
=
user_name
,
district_name
=
district_name
,
money_sign
=
money_sign
,
rate_start
=
rate_start
,
money_plan_invest
=
money_plan_invest
,
money_arrive_target1
=
money_arrive_target1
,
money_arrive_target0
=
money_arrive_target0
,
)
db
.
session
.
add
(
target_obj
)
db
.
session
.
commit
()
success_num
+=
1
continue
except
Exception
as
e
:
# 表示操作失败,回滚数据库操作
db
.
session
.
rollback
()
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库异常"
)
if
success_num
>
0
:
return
jsonify
(
code
=
RET
.
OK
,
msg
=
'上传成功!数据上传 {} 条数据'
.
format
(
success_num
))
else
:
return
jsonify
(
code
=
RET
.
DATAERR
,
msg
=
'无新数据上传。'
)
# 新增/编辑晋城指标上传页数据
@api_manage.route
(
"/AddEditJcData"
,
methods
=
[
"POST"
])
def
add_jc_data
():
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
user_unity
=
user_obj
.
belong_organization
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"进行操作时用户信息校验失败,请重新登陆后尝试!"
)
req_dic
=
request
.
get_json
()
data_list
=
req_dic
[
"data_list"
]
upload_time
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
current_year
=
str
(
datetime
.
now
()
.
year
)
+
'年'
for
data
in
data_list
:
year
=
data
[
'year'
]
# 所属年份
district_name
=
data
[
'district_name'
]
# 区县名称
money_sign
=
data
[
'money_sign'
]
# 签约项目金额
rate_start
=
data
[
'rate_start'
]
# 项目开工率
money_plan_invest
=
data
[
'money_plan_invest'
]
# 新开工固定资产投资项目计划投资额
money_arrive_target1
=
data
[
'money_arrive_target1'
]
# 固定资产投资项目资金到位额
money_arrive_target0
=
data
[
'money_arrive_target0'
]
# 非固定资产投资项目资金到位额
try
:
target_obj
=
JcTarget
.
query
.
filter_by
(
district_name
=
district_name
,
year
=
year
)
.
first
()
if
target_obj
:
# 更新
target_obj
.
district_name
=
district_name
target_obj
.
money_sign
=
money_sign
target_obj
.
rate_start
=
rate_start
target_obj
.
money_plan_invest
=
money_plan_invest
target_obj
.
money_arrive_target1
=
money_arrive_target1
target_obj
.
money_arrive_target0
=
money_arrive_target0
db
.
session
.
commit
()
else
:
target_obj
=
ShanxiTarget
(
is_delete
=
0
,
year
=
current_year
,
upload_time
=
upload_time
,
upload_unit
=
user_unity
,
upload_people
=
user_name
,
district_name
=
district_name
,
money_sign
=
money_sign
,
rate_start
=
rate_start
,
money_plan_invest
=
money_plan_invest
,
money_arrive_target1
=
money_arrive_target1
,
money_arrive_target0
=
money_arrive_target0
,
)
db
.
session
.
add
(
target_obj
)
db
.
session
.
commit
()
continue
except
Exception
as
e
:
# 表示操作失败,回滚数据库操作
db
.
session
.
rollback
()
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库异常,新增失败!"
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
'新增成功!'
)
# 概览数据列表(晋城指标上传页数据列表展示)
@api_manage.route
(
"/JcDataList"
,
methods
=
[
"POST"
])
def
jc_data_list
():
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
user_unity
=
user_obj
.
belong_organization
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"进行操作时用户信息校验失败,请重新登陆后尝试!"
)
req_dic
=
request
.
get_json
()
year
=
req_dic
[
'year'
]
current_year
=
datetime
.
now
()
.
year
try
:
target_obj_list
=
JcTarget
.
query
.
filter
(
JcTarget
.
year
.
like
(
'
%
{}
%
'
.
format
(
str
(
year
))
if
year
else
text
(
''
)),
JcTarget
.
is_delete
==
0
)
.
all
()
data_time_set
=
set
(
target_obj
.
year
for
target_obj
in
target_obj_list
)
# 收集上传周期
data_li
=
[]
for
data_time
in
list
(
data_time_set
):
target_obj
=
JcTarget
.
query
.
filter_by
(
year
=
year
)
.
first
()
data
=
{
"year"
:
target_obj
.
year
,
"file_name"
:
target_obj
.
file_name
,
"upload_time"
:
target_obj
.
upload_time
,
"upload_unit"
:
target_obj
.
upload_unit
,
"upload_people"
:
target_obj
.
upload_people
}
data_li
.
append
(
data
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
data_li
,
msg
=
'获取成功!'
)
except
Exception
as
e
:
db
.
session
.
rollback
()
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"查询数据库错误!"
)
# 详情数据列表(某周期山西各地市指标数据列表展示)
@api_manage.route
(
"/JcDataDetail"
,
methods
=
[
"POST"
])
def
jc_data_detail
():
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
user_unity
=
user_obj
.
belong_organization
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"进行操作时用户信息校验失败,请重新登陆后尝试!"
)
req_dic
=
request
.
get_json
()
data_time
=
req_dic
[
"data_time"
]
try
:
target_obj_li
=
ShanxiTarget
.
query
.
filter_by
(
data_time
=
data_time
)
.
all
()
data
=
[{
"data_time"
:
target_obj
.
data_time
,
"upload_time"
:
target_obj
.
upload_time
,
"upload_unit"
:
target_obj
.
upload_unit
,
"upload_people"
:
target_obj
.
upload_people
,
"district_name"
:
target_obj
.
district_name
,
"sign_money"
:
target_obj
.
sign_money
,
"sign_target_money"
:
target_obj
.
sign_target_money
,
"sign_finish_rate"
:
target_obj
.
sign_finish_rate
,
"plan_invest_money"
:
target_obj
.
plan_invest_money
,
"plan_target_money"
:
target_obj
.
plan_target_money
,
"plan_finish_rate"
:
target_obj
.
plan_finish_rate
,
"arrive_money"
:
target_obj
.
arrive_money
,
"arrive_target_money"
:
target_obj
.
arrive_target_money
,
"arrive_finish_rate"
:
target_obj
.
arrive_finish_rate
,
}
for
target_obj
in
target_obj_li
]
return
jsonify
(
code
=
RET
.
OK
,
data
=
data
,
msg
=
"获取成功!"
)
except
Exception
as
e
:
# 表示操作失败,回滚数据库操作
db
.
session
.
rollback
()
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库异常"
)
apps/inves_manage/siku_view.py
View file @
88aa9901
...
@@ -742,18 +742,6 @@ def upload_project_data1():
...
@@ -742,18 +742,6 @@ def upload_project_data1():
msg
=
"{}表格内无有效数据!"
.
format
(
'线索库'
if
data_type
==
1
else
'对接库'
if
data_type
==
2
msg
=
"{}表格内无有效数据!"
.
format
(
'线索库'
if
data_type
==
1
else
'对接库'
if
data_type
==
2
else
'签约库'
if
data_type
==
3
else
'开工库'
if
data_type
==
4
else
''
))
else
'签约库'
if
data_type
==
3
else
'开工库'
if
data_type
==
4
else
''
))
if
int
(
data_type
)
==
1
:
# 上传线索库
if
int
(
data_type
)
==
1
:
# 上传线索库
# 判断该项目名称是否已经存在
# project_num = row_content[0]
# project_name = row_content[1]
# project_obj = SikuProject.query.filter(
# SikuProject.project_name == project_name,
# SikuProject.is_delete == 0,
# ).first()
# 记录同名的项目名称
# if project_obj and project_name == project_obj.project_name:
# rep_project_num += 1
# continue
ret
=
upload_xiansuo_project
(
row_content
,
time_strf
,
upload_time
,
upload_unity
,
upload_people
)
ret
=
upload_xiansuo_project
(
row_content
,
time_strf
,
upload_time
,
upload_unity
,
upload_people
)
if
ret
==
'continue'
:
if
ret
==
'continue'
:
add_num
+=
1
add_num
+=
1
...
...
apps/models.py
View file @
88aa9901
...
@@ -1134,6 +1134,9 @@ class ProjectFile(db.Model):
...
@@ -1134,6 +1134,9 @@ class ProjectFile(db.Model):
project_id
=
db
.
Column
(
db
.
Integer
,
db
.
ForeignKey
(
"siku_project.id"
),
comment
=
'外键id,项目id'
)
project_id
=
db
.
Column
(
db
.
Integer
,
db
.
ForeignKey
(
"siku_project.id"
),
comment
=
'外键id,项目id'
)
project
=
db
.
relationship
(
'SikuProject'
,
backref
=
db
.
backref
(
'project_files'
))
# 项目1-N项目对接情况
project
=
db
.
relationship
(
'SikuProject'
,
backref
=
db
.
backref
(
'project_files'
))
# 项目1-N项目对接情况
project_manager_id
=
db
.
Column
(
db
.
Integer
,
db
.
ForeignKey
(
"project_management.id"
),
comment
=
'外键id,项目id'
)
project_manager
=
db
.
relationship
(
'ProjectManagement'
,
backref
=
db
.
backref
(
'project_files1'
))
# 项目1-N项目对接情况
# 签约库-签约的第三方
# 签约库-签约的第三方
class
SignThree
(
db
.
Model
):
class
SignThree
(
db
.
Model
):
...
@@ -1217,4 +1220,69 @@ class ProjectManagement(db.Model):
...
@@ -1217,4 +1220,69 @@ class ProjectManagement(db.Model):
investor_address
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'投资方联系地址'
)
investor_address
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'投资方联系地址'
)
# 项目化管理-山西省地市指标表
class
ShanxiTarget
(
db
.
Model
):
__tablename_
=
"shanxi_target"
__table_args__
=
({
'comment'
:
'项目化管理-山西省地市指标表'
})
# 添加表注释
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
comment
=
'主键id'
)
# file_name = db.Column(db.String(30), comment='文件名称')
is_delete
=
db
.
Column
(
db
.
Integer
,
comment
=
'逻辑删除'
)
data_time
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'数据年份'
)
upload_time
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'上传日期'
)
upload_unit
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'上传部门'
)
upload_people
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'上传人'
)
district_name
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'区县名称'
)
# 签约项目情况
sign_money
=
db
.
Column
(
db
.
Float
,
comment
=
'签约金额'
)
sign_target_money
=
db
.
Column
(
db
.
Float
,
comment
=
'目标金额'
)
sign_finish_rate
=
db
.
Column
(
db
.
Float
,
comment
=
'完成率'
)
# 新开工固定资产投资项目计划投资完成情况
plan_invest_money
=
db
.
Column
(
db
.
Float
,
comment
=
'计划投资额'
)
plan_target_money
=
db
.
Column
(
db
.
Float
,
comment
=
'目标计划投资额'
)
plan_finish_rate
=
db
.
Column
(
db
.
Float
,
comment
=
'计划投资额完成率'
)
# 固定资产投资项目资金到位情况
arrive_money
=
db
.
Column
(
db
.
Float
,
comment
=
'资金到位'
)
arrive_target_money
=
db
.
Column
(
db
.
Float
,
comment
=
'目标资金到位'
)
arrive_finish_rate
=
db
.
Column
(
db
.
Float
,
comment
=
'计划投资额完成率'
)
# 项目化管理-晋城市县(市、区)、开发区指标表
class
JcTarget
(
db
.
Model
):
__tablename_
=
"jc_target"
__table_args__
=
({
'comment'
:
'项目化管理-晋城市县(市、区)、开发区指标表'
})
# 添加表注释
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
comment
=
'主键id'
)
file_name
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'文件名称'
)
is_delete
=
db
.
Column
(
db
.
Integer
,
comment
=
'逻辑删除'
)
year
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'数据年份'
)
upload_time
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'上传日期'
)
upload_unit
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'上传部门'
)
upload_people
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'上传人'
)
grade_sign
=
db
.
Column
(
db
.
Float
,
comment
=
'签约项目金额'
)
grade_start
=
db
.
Column
(
db
.
Float
,
comment
=
'项目开工率'
)
grade_plan_invest
=
db
.
Column
(
db
.
Float
,
comment
=
'新开工固定资产投资项目计划投资额'
)
grade_arrive_target1
=
db
.
Column
(
db
.
Float
,
comment
=
'固定资产投资项目资金到位额'
)
grade_arrive_target0
=
db
.
Column
(
db
.
Float
,
comment
=
'非固定资产投资项目资金到位额'
)
district_name
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'区县名称'
)
money_sign
=
db
.
Column
(
db
.
Float
,
comment
=
'签约项目金额'
)
rate_start
=
db
.
Column
(
db
.
Float
,
comment
=
'项目开工率'
)
money_plan_invest
=
db
.
Column
(
db
.
Float
,
comment
=
'新开工固定资产投资项目计划投资额'
)
money_arrive_target1
=
db
.
Column
(
db
.
Float
,
comment
=
'固定资产投资项目资金到位额'
)
money_arrive_target0
=
db
.
Column
(
db
.
Float
,
comment
=
'非固定资产投资项目资金到位额'
)
apps/view_mobile/view_user.py
View file @
88aa9901
...
@@ -33,7 +33,7 @@ def user_info():
...
@@ -33,7 +33,7 @@ def user_info():
"email"
:
user
.
email
if
user
.
email
else
""
# 邮箱
"email"
:
user
.
email
if
user
.
email
else
""
# 邮箱
}
}
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"查询成功"
,
data
=
data
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"查询成功"
,
data
=
data
)
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"无法获取信息"
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"无法获取信息"
)
except
Exception
as
e
:
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"参数错误"
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"参数错误"
)
...
...
apps/view_user/view.py
View file @
88aa9901
...
@@ -548,17 +548,14 @@ def fix_user_info():
...
@@ -548,17 +548,14 @@ def fix_user_info():
token
=
request
.
headers
[
"token"
]
token
=
request
.
headers
[
"token"
]
user
=
verify_token
(
token
)
user
=
verify_token
(
token
)
user_id
=
user
.
id
user_id
=
user
.
id
req_dict
=
request
.
get_json
()
req_dict
=
request
.
get_json
()
real_name
=
req_dict
.
get
(
"real_name"
)
real_name
=
req_dict
.
get
(
"real_name"
)
age
=
req_dict
.
get
(
"age"
)
age
=
req_dict
.
get
(
"age"
)
sex
=
req_dict
.
get
(
"sex"
)
sex
=
req_dict
.
get
(
"sex"
)
name
=
req_dict
.
get
(
"name"
)
name
=
req_dict
.
get
(
"name"
)
position
=
req_dict
.
get
(
"position"
)
position
=
req_dict
.
get
(
"position"
)
try
:
try
:
user_information
=
User
.
query
.
get
(
user_id
)
user_information
=
User
.
query
.
get
(
user_id
)
# 姓名
# 姓名
if
real_name
:
if
real_name
:
user_information
.
real_name
=
real_name
user_information
.
real_name
=
real_name
...
@@ -566,15 +563,12 @@ def fix_user_info():
...
@@ -566,15 +563,12 @@ def fix_user_info():
# 年龄
# 年龄
if
age
:
if
age
:
user_information
.
age
=
age
user_information
.
age
=
age
# 性别 1 - 男 2 - 女
# 性别 1 - 男 2 - 女
if
sex
:
if
sex
:
user_information
.
sex
=
sex
user_information
.
sex
=
sex
# 职务
# 职务
if
position
:
if
position
:
user_information
.
position
=
position
user_information
.
position
=
position
# 用户名
# 用户名
if
name
:
if
name
:
user
=
User
.
query
.
filter_by
(
name
=
name
)
.
filter
(
User
.
id
!=
user_id
)
.
first
()
user
=
User
.
query
.
filter_by
(
name
=
name
)
.
filter
(
User
.
id
!=
user_id
)
.
first
()
...
...
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