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
fdd55f2b
Commit
fdd55f2b
authored
Nov 21, 2022
by
dong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix20221121
parent
1337cddb
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
205 additions
and
186 deletions
+205
-186
apps/inves_manage/project_manager.py
+201
-182
apps/inves_manage/view.py
+3
-4
apps/models.py
+1
-0
No files found.
apps/inves_manage/project_manager.py
View file @
fdd55f2b
...
@@ -19,8 +19,10 @@ from apps.util import verify_token
...
@@ -19,8 +19,10 @@ from apps.util import verify_token
# 项目管理---项目列表
# 项目管理---项目列表
from
apps.inves_manage.view
import
get_num
# 获取项目列表
@api_manage.route
(
"/SearchProject1"
,
methods
=
[
"POST"
])
@api_manage.route
(
"/SearchProject1"
,
methods
=
[
"POST"
])
def
search_project1
():
def
search_project1
():
req_dic
=
request
.
get_json
()
req_dic
=
request
.
get_json
()
...
@@ -168,13 +170,13 @@ def download_project_template():
...
@@ -168,13 +170,13 @@ def download_project_template():
except
Exception
as
e
:
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"进行操作时用户信息校验失败,请重新登陆后尝试!"
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"进行操作时用户信息校验失败,请重新登陆后尝试!"
)
project_template
=
"http://39.100.39.50:
5050
/aaa_statics/招商引资项目表.xlsx"
project_template
=
"http://39.100.39.50:
8008
/aaa_statics/招商引资项目表.xlsx"
return
jsonify
(
code
=
RET
.
OK
,
data
=
project_template
,
msg
=
"
参数不能为空
!"
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
project_template
,
msg
=
"
模板下载成功
!"
)
# 批量导入
# 批量导入
@api_manage.route
(
"/UploadProjectData"
,
methods
=
[
"POST"
])
@api_manage.route
(
"/UploadProjectData
2
"
,
methods
=
[
"POST"
])
def
upload_project_data
():
def
upload_project_data
2
():
# 获取上传的文件
# 获取上传的文件
token
=
request
.
headers
[
'token'
]
token
=
request
.
headers
[
'token'
]
action_name
=
'批量导入'
action_name
=
'批量导入'
...
@@ -183,7 +185,7 @@ def upload_project_data():
...
@@ -183,7 +185,7 @@ def upload_project_data():
try
:
try
:
user_obj
=
verify_token
(
token
)
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
user_name
=
user_obj
.
real_name
user_unity
=
user_obj
.
unity
user_unity
=
user_obj
.
belong_organization
except
Exception
as
e
:
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"进行操作时用户信息校验失败,请重新登陆后尝试!"
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"进行操作时用户信息校验失败,请重新登陆后尝试!"
)
...
@@ -214,8 +216,8 @@ def upload_project_data():
...
@@ -214,8 +216,8 @@ def upload_project_data():
if
not
row_content
:
if
not
row_content
:
return
jsonify
(
code
=
RET
.
NODATA
,
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"表格内无有效数据!请尝试 <清空浏览器缓存> 后下载最新模板,根据模板提示信息编辑数据后再次上传。(注:第三行为首行有效数据不能为空、第一行和第二行无法读取。)"
)
msg
=
"表格内无有效数据!请尝试 <清空浏览器缓存> 后下载最新模板,根据模板提示信息编辑数据后再次上传。(注:第三行为首行有效数据不能为空、第一行和第二行无法读取。)"
)
# del (row_content[0])
project_name
=
row_content
[
0
]
# 项目名称
project_name
=
row_content
[
1
]
# 项目名称
# 判断该项目是否已经存在
# 判断该项目是否已经存在
project_obj
=
ProjectManagement
.
query
.
filter_by
(
project_name
=
project_name
)
.
first
()
project_obj
=
ProjectManagement
.
query
.
filter_by
(
project_name
=
project_name
)
.
first
()
if
project_obj
:
if
project_obj
:
...
@@ -223,33 +225,32 @@ def upload_project_data():
...
@@ -223,33 +225,32 @@ def upload_project_data():
rep_project_name_list
.
append
(
project_name
)
rep_project_name_list
.
append
(
project_name
)
continue
continue
try
:
try
:
project_num
=
row_content
[
1
]
# 项目编号
project_name
=
row_content
[
1
]
# 项目名称
project_name
=
row_content
[
2
]
# 项目名称
district
=
row_content
[
2
]
# 项目所在地
district
=
float
(
row_content
[
3
])
# 项目所在地
development_area
=
row_content
[
3
]
# 开发区
development_area
=
row_content
[
4
]
# 开发区
attract_name
=
row_content
[
4
]
# 引资方名称
attract_name
=
row_content
[
5
]
# 引资方名称
investor_name
=
row_content
[
5
]
# 投资方名称
investor_name
=
row_content
[
6
]
# 投资方名称
country
=
row_content
[
6
]
# 投资方国别
country
=
row_content
[
7
]
# 投资方国别
provence
=
row_content
[
7
]
# 投资方省份
provence
=
row_content
[
8
]
# 投资方省份
city
=
row_content
[
8
]
# 投资方市
city
=
row_content
[
9
]
# 投资方市
industry1
=
row_content
[
9
]
# 所属行业1
industry1
=
row_content
[
10
]
# 所属行业1
industry2
=
row_content
[
10
]
# 所属行业2
industry2
=
row_content
[
11
]
# 所属行业2
investment_volume
=
row_content
[
11
]
# 总投资额(万元)
investment_volume
=
row_content
[
12
]
# 总投资额(万元)
construction_content
=
row_content
[
12
]
# 建设内容
construction_content
=
row_content
[
13
]
# 建设内容
construction_nature
=
row_content
[
13
]
# 建设性质(亩)
construction_nature
=
row_content
[
14
]
# 建设性质(亩)
project_address
=
row_content
[
14
]
# 项目选址
project_address
=
row_content
[
15
]
# 项目选址
use_land
=
row_content
[
15
]
# 项目用地情况(亩)
use_land
=
row_content
[
16
]
# 项目用地情况(亩)
new_land
=
row_content
[
16
]
# 其中新增用地(亩)
new_land
=
row_content
[
17
]
# 其中新增用地(亩)
set_project_status
=
row_content
[
17
]
# 项目立项状态
set_project_status
=
row_content
[
18
]
# 项目立项状态
project_progress
=
row_content
[
18
]
# 项目进展
project_progress
=
row_content
[
19
]
# 项目进展
sign_time
=
row_content
[
19
]
# 签约时间
sign_time
=
row_content
[
20
]
# 签约时间
start_time
=
row_content
[
20
]
# 开工时间
start_time
=
row_content
[
21
]
# 开工时间
end_time
=
row_content
[
21
]
# 竣工时间
end_time
=
row_content
[
22
]
# 竣工时间
is_fixed_investment
=
row_content
[
22
]
# 固定资产投资项目
is_fixed_investment
=
row_content
[
23
]
# 固定资产投资项目
investment_year
=
row_content
[
23
]
# 资金到位本年累计(万元)
investment_year
=
row_content
[
24
]
# 资金到位本年累计(万元)
investment_history
=
row_content
[
24
]
# 资金到位历史累计(万元)
investment_history
=
row_content
[
25
]
# 资金到位历史累计(万元)
project_stalker
=
row_content
[
25
]
# 项目跟踪
project_stalker
=
row_content
[
26
]
# 项目跟踪
project_stalker_explain
=
row_content
[
26
]
# 项目跟踪说明
project_stalker_explain
=
row_content
[
27
]
# 项目跟踪说明
except
Exception
as
e
:
except
Exception
as
e
:
# 表示操作失败,回滚数据库操作
# 表示操作失败,回滚数据库操作
current_app
.
logger
.
error
(
e
)
current_app
.
logger
.
error
(
e
)
...
@@ -257,6 +258,21 @@ def upload_project_data():
...
@@ -257,6 +258,21 @@ def upload_project_data():
if
not
project_name
:
if
not
project_name
:
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
'项目名称不能为空!'
)
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
'项目名称不能为空!'
)
project_obj_list
=
ProjectManagement
.
query
.
all
()
# 项目编号
time_strf
=
datetime
.
now
()
.
strftime
(
"
%
Y
%
m
%
d"
)
max_project_num
=
''
if
project_obj_list
:
max_project_num
=
max
([
project_obj
.
project_num
for
project_obj
in
project_obj_list
])
if
max_project_num
:
max_project_num
=
max_project_num
[
8
:]
num
=
get_num
(
max_project_num
)
if
num
==
'error'
:
# return jsonify(code=RET.DATAERR, msg='编号超出三位的规定范围,请联系管理员')
return
'error'
project_num
=
time_strf
+
num
else
:
project_num
=
time_strf
+
'001'
try
:
try
:
# 写入数据库
# 写入数据库
file_time
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M"
)
file_time
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M"
)
...
@@ -270,8 +286,7 @@ def upload_project_data():
...
@@ -270,8 +286,7 @@ def upload_project_data():
country
=
country
,
country
=
country
,
provence
=
provence
,
provence
=
provence
,
city
=
city
,
city
=
city
,
industry1
=
industry1
,
industry
=
industry1
+
'/'
+
industry2
,
industry2
=
industry2
,
investment_volume
=
investment_volume
,
investment_volume
=
investment_volume
,
construction_content
=
construction_content
,
construction_content
=
construction_content
,
construction_nature
=
construction_nature
,
construction_nature
=
construction_nature
,
...
@@ -294,6 +309,7 @@ def upload_project_data():
...
@@ -294,6 +309,7 @@ def upload_project_data():
)
)
db
.
session
.
add
(
project_obj
)
db
.
session
.
add
(
project_obj
)
db
.
session
.
commit
()
db
.
session
.
commit
()
success_num
+=
1
continue
continue
except
Exception
as
e
:
except
Exception
as
e
:
# 表示操作失败,回滚数据库操作
# 表示操作失败,回滚数据库操作
...
@@ -301,23 +317,131 @@ def upload_project_data():
...
@@ -301,23 +317,131 @@ def upload_project_data():
current_app
.
logger
.
error
(
e
)
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库异常"
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库异常"
)
if
rep_num
>
0
and
success_num
>
0
:
if
success_num
>
0
:
return
jsonify
(
code
=
RET
.
OK
,
return
jsonify
(
code
=
RET
.
OK
,
msg
=
'上传成功!{}数据上传 {} 条数据,重复数据 {} 条,上传失败的重复数据为 {},请核实!'
.
format
(
name
,
success_num
,
rep_num
,
msg
=
'上传成功!数据上传 {} 条数据'
.
format
(
success_num
))
rep_project_name_list
))
if
rep_num
==
0
and
success_num
>
0
:
return
jsonify
(
code
=
RET
.
OK
,
msg
=
'上传成功!{}数据上传 {} 条数据,无重复数据。'
.
format
(
name
,
success_num
))
if
rep_num
>
0
and
success_num
==
0
:
return
jsonify
(
code
=
RET
.
DATAERR
,
msg
=
'操作失败!{}数据上传 {} 条数据,重复数据{} 条。'
.
format
(
name
,
success_num
,
rep_num
))
if
rep_num
==
0
and
success_num
==
0
:
return
jsonify
(
code
=
RET
.
DATAERR
,
msg
=
'无数据上传(请尝试 <清空浏览器缓存> 后下载最新模板,根据模板提示信息编辑数据后再次上传。)'
)
else
:
else
:
pass
return
jsonify
(
code
=
RET
.
DATAERR
,
msg
=
'无新数据上传。'
)
# 批量导出---项目信息台账
@api_manage.route
(
"/BatchExportProject5"
,
methods
=
[
"POST"
])
def
batch_export_project5
():
req_dic
=
request
.
get_json
()
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
=
"进行操作时用户信息校验失败,请重新登陆后尝试!"
)
select_id_list
=
req_dic
[
"select_id_list"
]
path
=
'./apps/statics/project_file/'
pro_path
=
'http://39.100.39.50:5050/aaa_statics/project_file/'
# 项目路径
# pro_path = 'http://192.168.1.4:5000/statics/project_file/' # 项目路径
if
not
select_id_list
:
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"参数不能为空!"
)
target_data_list
=
[]
for
select_id
in
select_id_list
:
try
:
project_obj
=
ProjectManagement
.
query
.
filter_by
(
id
=
select_id
)
.
first
()
# 提取数据,写入xslx表格
data_list
=
[]
project_num
=
project_obj
.
project_name
data_list
.
append
(
project_num
)
project_name
=
project_obj
.
class_project_manager
data_list
.
append
(
project_name
)
district
=
project_obj
.
project_executor
data_list
.
append
(
district
)
development_area
=
project_obj
.
invest_company
data_list
.
append
(
development_area
)
attract_name
=
project_obj
.
investment_volume
data_list
.
append
(
attract_name
)
investor_name
=
project_obj
.
project_scale
data_list
.
append
(
investor_name
)
country
=
project_obj
.
class_investor_name
data_list
.
append
(
country
)
provence
=
project_obj
.
class_investor_mobile
data_list
.
append
(
provence
)
city
=
project_obj
.
argument_opinion
data_list
.
append
(
city
)
industry1
=
project_obj
.
project_content
data_list
.
append
(
industry1
)
industry2
=
project_obj
.
project_appeal
data_list
.
append
(
industry2
)
investment_volume
=
project_obj
.
project_problem
data_list
.
append
(
investment_volume
)
construction_content
=
project_obj
.
project_source
data_list
.
append
(
construction_content
)
construction_nature
=
project_obj
.
district
data_list
.
append
(
construction_nature
)
project_address
=
project_obj
.
industry
data_list
.
append
(
project_address
)
use_land
=
project_obj
.
file_unit
data_list
.
append
(
use_land
)
new_land
=
project_obj
.
file_time
data_list
.
append
(
new_land
)
set_project_status
=
project_obj
.
file_time
data_list
.
append
(
set_project_status
)
project_progress
=
project_obj
.
file_time
data_list
.
append
(
project_progress
)
sign_time
=
project_obj
.
file_time
data_list
.
append
(
sign_time
)
start_time
=
project_obj
.
file_time
data_list
.
append
(
start_time
)
end_time
=
project_obj
.
file_time
data_list
.
append
(
end_time
)
is_fixed_investment
=
project_obj
.
file_time
data_list
.
append
(
is_fixed_investment
)
investment_year
=
project_obj
.
file_time
data_list
.
append
(
investment_year
)
investment_history
=
project_obj
.
file_time
data_list
.
append
(
investment_history
)
project_stalker
=
project_obj
.
file_time
data_list
.
append
(
project_stalker
)
project_stalker_explain
=
project_obj
.
file_time
data_list
.
append
(
project_stalker_explain
)
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
=
"批量导出操作失败!"
)
# def get_project_type(file_type):
# def get_project_type(file_type):
...
@@ -439,7 +563,7 @@ def upload_project_data():
...
@@ -439,7 +563,7 @@ def upload_project_data():
#
#
#
#
# # 项目事项---获取已上传事项文件
# # 项目事项---获取已上传事项文件
# @api_
project
.route("/GetItemList", methods=["POST"])
# @api_
manage
.route("/GetItemList", methods=["POST"])
# def get_item_list():
# def get_item_list():
# req_dic = request.get_json()
# req_dic = request.get_json()
# project_id = req_dic['project_id']
# project_id = req_dic['project_id']
...
@@ -701,7 +825,7 @@ def upload_project_data():
...
@@ -701,7 +825,7 @@ def upload_project_data():
#
#
#
#
# # 项目事项---上传项目事项相关文件
# # 项目事项---上传项目事项相关文件
# @api_
project
.route("/UploadProjectFile", methods=["POST"])
# @api_
manage
.route("/UploadProjectFile", methods=["POST"])
# def upload_build_picture():
# def upload_build_picture():
# file_type = request.form['file_type']
# file_type = request.form['file_type']
# # 1信息台账,文项-2项目投资意向书,文-3项目立项审批单,4项目化台账,
# # 1信息台账,文项-2项目投资意向书,文-3项目立项审批单,4项目化台账,
...
@@ -862,7 +986,7 @@ def upload_project_data():
...
@@ -862,7 +986,7 @@ def upload_project_data():
#
#
#
#
# # 下载模板
# # 下载模板
# @api_
project
.route("/DownloadProjectTemplate", methods=["POST"])
# @api_
manage
.route("/DownloadProjectTemplate", methods=["POST"])
# def download_project_template():
# def download_project_template():
# req_dic = request.get_json()
# req_dic = request.get_json()
#
#
...
@@ -897,7 +1021,7 @@ def upload_project_data():
...
@@ -897,7 +1021,7 @@ def upload_project_data():
#
#
#
#
# # 批量导入---项目信息台账批量导入(读取模板数据,保存到数据库)
# # 批量导入---项目信息台账批量导入(读取模板数据,保存到数据库)
# @api_
project
.route("/UploadProjectData", methods=["POST"])
# @api_
manage
.route("/UploadProjectData", methods=["POST"])
# def upload_project_data():
# def upload_project_data():
# # 获取上传的文件
# # 获取上传的文件
# token = request.headers['token']
# token = request.headers['token']
...
@@ -1120,113 +1244,8 @@ def upload_project_data():
...
@@ -1120,113 +1244,8 @@ def upload_project_data():
# pass
# pass
#
#
#
#
# # 批量导出---项目信息台账
# @api_project.route("/BatchExportProject1", methods=["POST"])
# def batch_export_project1():
# req_dic = request.get_json()
# # token = request.headers['token']
#
# # action_name = '批量导出项目信息台账'
# # try:
# # section, user_name, operation_mobile, user_id, role_id, belong_unit = verify_identity(token, action_name)
# # except Exception as e:
# # current_app.logger.error(e)
# # return jsonify(code=RETSESSIONERRDBERR, msg="进行{}操作时用户信息校验失败,请重新登陆后尝试!".format(action_name))
# token = request.headers['token']
#
# # 校验权限,仅限查看
# permission_list = get_permission_list(token)
# if 17 in permission_list:
# pass
# else:
# return jsonify(code=RET.ROLEERR, msg="暂无权限,请联系管理员!")
#
# select_id_list = req_dic["select_id_list"]
# path = './apps/statics/project_file/'
# pro_path = 'http://39.100.39.50:5051/statics/project_file/' # 项目路径
# # pro_path = 'http://192.168.1.4:5000/statics/project_file/' # 项目路径
# if not select_id_list:
# return jsonify(code=RET.PARAMERR, msg="参数不能为空!")
# target_data_list = []
# for select_id in select_id_list:
# try:
# project_obj = ProjectManagement.query.filter_by(id=select_id).first()
# # 提取数据,写入xslx表格
# data_list = []
# project_name = project_obj.project_name
# data_list.append(project_name)
# class_project_manager = project_obj.class_project_manager
# data_list.append(class_project_manager)
# project_executor = project_obj.project_executor
# data_list.append(project_executor)
# invest_company = project_obj.invest_company
# data_list.append(invest_company)
# investment_volume = project_obj.investment_volume
# data_list.append(investment_volume)
# project_scale = project_obj.project_scale
# data_list.append(project_scale)
# class_investor_name = project_obj.class_investor_name
# data_list.append(class_investor_name)
# class_investor_mobile = project_obj.class_investor_mobile
# data_list.append(class_investor_mobile)
# argument_opinion = project_obj.argument_opinion
# data_list.append(argument_opinion)
# project_content = project_obj.project_content
# data_list.append(project_content)
# project_appeal = project_obj.project_appeal
# data_list.append(project_appeal)
# project_problem = project_obj.project_problem
# data_list.append(project_problem)
# project_source = project_obj.project_source
# data_list.append(project_source)
# district = project_obj.district
# data_list.append(district)
# industry = project_obj.industry
# data_list.append(industry)
# file_unit = project_obj.file_unit
# data_list.append(file_unit)
# file_time = project_obj.file_time
# data_list.append(file_time)
# 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_
project
.route("/SearchProject", methods=["POST"])
# @api_
manage
.route("/SearchProject", methods=["POST"])
# def search_project():
# def search_project():
# req_dic = request.get_json()
# req_dic = request.get_json()
#
#
...
@@ -1348,7 +1367,7 @@ def upload_project_data():
...
@@ -1348,7 +1367,7 @@ def upload_project_data():
#
#
#
#
# # 信息台账---项目信息页,和编辑页的数据展示接口
# # 信息台账---项目信息页,和编辑页的数据展示接口
# @api_
project
.route("/CheckProjectDetail", methods=["POST"])
# @api_
manage
.route("/CheckProjectDetail", methods=["POST"])
# def check_project1_detail():
# def check_project1_detail():
# req_dic = request.get_json()
# req_dic = request.get_json()
# project_type = req_dic['project_type'] # 1为信息化台账,2为项目化台账
# project_type = req_dic['project_type'] # 1为信息化台账,2为项目化台账
...
@@ -1422,7 +1441,7 @@ def upload_project_data():
...
@@ -1422,7 +1441,7 @@ def upload_project_data():
#
#
#
#
# # 信息台账编辑---项目信息编辑
# # 信息台账编辑---项目信息编辑
# @api_
project
.route("/Project1Edit", methods=["POST"])
# @api_
manage
.route("/Project1Edit", methods=["POST"])
# def project1_edit():
# def project1_edit():
# req_dic = request.get_json()
# req_dic = request.get_json()
# project_id = req_dic['id']
# project_id = req_dic['id']
...
@@ -1515,7 +1534,7 @@ def upload_project_data():
...
@@ -1515,7 +1534,7 @@ def upload_project_data():
#
#
#
#
# # 项目化台账编辑---项目信息编辑
# # 项目化台账编辑---项目信息编辑
# @api_
project
.route("/Project2Edit", methods=["POST"])
# @api_
manage
.route("/Project2Edit", methods=["POST"])
# def project2_edit():
# def project2_edit():
# req_dic = request.get_json()
# req_dic = request.get_json()
# project_id = req_dic['id']
# project_id = req_dic['id']
...
@@ -1608,7 +1627,7 @@ def upload_project_data():
...
@@ -1608,7 +1627,7 @@ def upload_project_data():
#
#
#
#
# # 项目专班---信息展示
# # 项目专班---信息展示
# @api_
project
.route("/ClassProject1Show", methods=["POST"])
# @api_
manage
.route("/ClassProject1Show", methods=["POST"])
# def class_project_show():
# def class_project_show():
# req_dic = request.get_json()
# req_dic = request.get_json()
# project_id = req_dic['project_id']
# project_id = req_dic['project_id']
...
@@ -1662,7 +1681,7 @@ def upload_project_data():
...
@@ -1662,7 +1681,7 @@ def upload_project_data():
#
#
#
#
# # 信息台账---项目专班编辑
# # 信息台账---项目专班编辑
# @api_
project
.route("/ClassProjectEdit", methods=["POST"])
# @api_
manage
.route("/ClassProjectEdit", methods=["POST"])
# def class_project1_edit():
# def class_project1_edit():
# req_dic = request.get_json()
# req_dic = request.get_json()
# project_id = req_dic['id']
# project_id = req_dic['id']
...
@@ -1779,7 +1798,7 @@ def upload_project_data():
...
@@ -1779,7 +1798,7 @@ def upload_project_data():
#
#
#
#
# # 项目事项---项目相关文件审核页面数据展示(查看按钮)
# # 项目事项---项目相关文件审核页面数据展示(查看按钮)
# @api_
project
.route("/CheckProjectFile", methods=["POST"])
# @api_
manage
.route("/CheckProjectFile", methods=["POST"])
# def check_project_file():
# def check_project_file():
# req_dic = request.get_json()
# req_dic = request.get_json()
# file_type = req_dic['file_type'] # 1项目投资意向书,2项目立项审批单,
# file_type = req_dic['file_type'] # 1项目投资意向书,2项目立项审批单,
...
@@ -1835,7 +1854,7 @@ def upload_project_data():
...
@@ -1835,7 +1854,7 @@ def upload_project_data():
#
#
#
#
# # 项目事项---重点项目文件审核功能接口,需要上传批示文件
# # 项目事项---重点项目文件审核功能接口,需要上传批示文件
# @api_
project
.route("/AuditProjectFile2", methods=["POST"])
# @api_
manage
.route("/AuditProjectFile2", methods=["POST"])
# def audit_project_file2():
# def audit_project_file2():
# project_id = request.form['project_id']
# project_id = request.form['project_id']
# # 文-5重点项目专题报告,6项目专班,文-7项目目标管理计划书, 文项-8深入论证,文-9项目合作协议(初稿),
# # 文-5重点项目专题报告,6项目专班,文-7项目目标管理计划书, 文项-8深入论证,文-9项目合作协议(初稿),
...
@@ -1935,7 +1954,7 @@ def upload_project_data():
...
@@ -1935,7 +1954,7 @@ def upload_project_data():
#
#
#
#
# # 项目事项---项目相关文件审核功能接口
# # 项目事项---项目相关文件审核功能接口
# @api_
project
.route("/AuditProjectFile", methods=["POST"])
# @api_
manage
.route("/AuditProjectFile", methods=["POST"])
# def audit_project_file():
# def audit_project_file():
# req_dic = request.get_json()
# req_dic = request.get_json()
# project_id = req_dic['project_id']
# project_id = req_dic['project_id']
...
@@ -2110,7 +2129,7 @@ def upload_project_data():
...
@@ -2110,7 +2129,7 @@ def upload_project_data():
#
#
#
#
# # 项目事项---《综合审查》/项目综合审批/项目代办手续 编辑、查看接口
# # 项目事项---《综合审查》/项目综合审批/项目代办手续 编辑、查看接口
# @api_
project
.route("/EditThree", methods=["POST"])
# @api_
manage
.route("/EditThree", methods=["POST"])
# def edit_three():
# def edit_three():
# req_dic = request.get_json()
# req_dic = request.get_json()
# is_examine = req_dic['is_examine']
# is_examine = req_dic['is_examine']
...
@@ -2228,7 +2247,7 @@ def upload_project_data():
...
@@ -2228,7 +2247,7 @@ def upload_project_data():
#
#
#
#
# # 项目事项---提醒审核
# # 项目事项---提醒审核
# @api_
project
.route("/RemindAudit", methods=["POST"])
# @api_
manage
.route("/RemindAudit", methods=["POST"])
# def remind_audit():
# def remind_audit():
# req_dic = request.get_json()
# req_dic = request.get_json()
# project_id = req_dic['project_id']
# project_id = req_dic['project_id']
...
@@ -2288,7 +2307,7 @@ def upload_project_data():
...
@@ -2288,7 +2307,7 @@ def upload_project_data():
#
#
#
#
# # 项目日志---编辑项目日报功能接口
# # 项目日志---编辑项目日报功能接口
# @api_
project
.route("/EditDaily", methods=["POST"])
# @api_
manage
.route("/EditDaily", methods=["POST"])
# def edit_daily():
# def edit_daily():
# req_dic = request.get_json()
# req_dic = request.get_json()
# project_id = req_dic['project_id']
# project_id = req_dic['project_id']
...
@@ -2356,7 +2375,7 @@ def upload_project_data():
...
@@ -2356,7 +2375,7 @@ def upload_project_data():
#
#
#
#
# # 项目日志---编辑项目周报功能接口
# # 项目日志---编辑项目周报功能接口
# @api_
project
.route("/EditWeekly", methods=["POST"])
# @api_
manage
.route("/EditWeekly", methods=["POST"])
# def edit_weekly():
# def edit_weekly():
# project_id = request.form['project_id']
# project_id = request.form['project_id']
# week_finished = request.form['week_finished']
# week_finished = request.form['week_finished']
...
@@ -2427,7 +2446,7 @@ def upload_project_data():
...
@@ -2427,7 +2446,7 @@ def upload_project_data():
#
#
#
#
# # 项目日志---编辑项月通报功能接口
# # 项目日志---编辑项月通报功能接口
# @api_
project
.route("/EditMonth", methods=["POST"])
# @api_
manage
.route("/EditMonth", methods=["POST"])
# def edit_month():
# def edit_month():
# project_id = request.form['project_id']
# project_id = request.form['project_id']
# month_finished = request.form['month_finished']
# month_finished = request.form['month_finished']
...
@@ -2503,7 +2522,7 @@ def upload_project_data():
...
@@ -2503,7 +2522,7 @@ def upload_project_data():
#
#
#
#
# # 项目日志---编辑项季观摩报功能接口
# # 项目日志---编辑项季观摩报功能接口
# @api_
project
.route("/EditQuarter", methods=["POST"])
# @api_
manage
.route("/EditQuarter", methods=["POST"])
# def edit_quarter():
# def edit_quarter():
# req_dic = request.get_json()
# req_dic = request.get_json()
#
#
...
@@ -2570,7 +2589,7 @@ def upload_project_data():
...
@@ -2570,7 +2589,7 @@ def upload_project_data():
#
#
#
#
# # 项目日志---编辑项半年晾晒功能接口
# # 项目日志---编辑项半年晾晒功能接口
# @api_
project
.route("/EditHalfYear", methods=["POST"])
# @api_
manage
.route("/EditHalfYear", methods=["POST"])
# def edit_half_year():
# def edit_half_year():
# req_dic = request.get_json()
# req_dic = request.get_json()
#
#
...
@@ -2637,7 +2656,7 @@ def upload_project_data():
...
@@ -2637,7 +2656,7 @@ def upload_project_data():
#
#
#
#
# # 项目日志---编辑项年终总结功能接口
# # 项目日志---编辑项年终总结功能接口
# @api_
project
.route("/EditYear", methods=["POST"])
# @api_
manage
.route("/EditYear", methods=["POST"])
# def edit_year():
# def edit_year():
# req_dic = request.get_json()
# req_dic = request.get_json()
#
#
...
@@ -2703,7 +2722,7 @@ def upload_project_data():
...
@@ -2703,7 +2722,7 @@ def upload_project_data():
#
#
#
#
# # 项目日志---编辑督办通知功能接口
# # 项目日志---编辑督办通知功能接口
# @api_
project
.route("/EditSuperviseNotice", methods=["POST"])
# @api_
manage
.route("/EditSuperviseNotice", methods=["POST"])
# def edit_supervise():
# def edit_supervise():
# project_id = request.form['project_id']
# project_id = request.form['project_id']
# receive_people = request.form['receive_people']
# receive_people = request.form['receive_people']
...
@@ -2793,7 +2812,7 @@ def upload_project_data():
...
@@ -2793,7 +2812,7 @@ def upload_project_data():
#
#
#
#
# # 项目日志---编辑专项督查报告功能接口
# # 项目日志---编辑专项督查报告功能接口
# @api_
project
.route("/EditInspectionReport", methods=["POST"])
# @api_
manage
.route("/EditInspectionReport", methods=["POST"])
# def edit_report():
# def edit_report():
# project_id = request.form['project_id']
# project_id = request.form['project_id']
# receive_people = request.form['receive_people']
# receive_people = request.form['receive_people']
...
@@ -2874,7 +2893,7 @@ def upload_project_data():
...
@@ -2874,7 +2893,7 @@ def upload_project_data():
#
#
#
#
# # 项目日志---获取日志的历史记录
# # 项目日志---获取日志的历史记录
# @api_
project
.route("/GetLogList", methods=["POST"])
# @api_
manage
.route("/GetLogList", methods=["POST"])
# def get_log_list():
# def get_log_list():
# req_dic = request.get_json()
# req_dic = request.get_json()
#
#
...
@@ -2926,7 +2945,7 @@ def upload_project_data():
...
@@ -2926,7 +2945,7 @@ def upload_project_data():
#
#
#
#
# # 项目日志---查看日志详情
# # 项目日志---查看日志详情
# @api_
project
.route("/GetLogDetail", methods=["POST"])
# @api_
manage
.route("/GetLogDetail", methods=["POST"])
# def get_log_detail():
# def get_log_detail():
# req_dic = request.get_json()
# req_dic = request.get_json()
#
#
...
@@ -3068,7 +3087,7 @@ def upload_project_data():
...
@@ -3068,7 +3087,7 @@ def upload_project_data():
#
#
#
#
# # 项目详情---获取项目动态
# # 项目详情---获取项目动态
# @api_
project
.route("/GetDynamicLog", methods=["POST"])
# @api_
manage
.route("/GetDynamicLog", methods=["POST"])
# def get_dynamic_detail():
# def get_dynamic_detail():
# req_dic = request.get_json()
# req_dic = request.get_json()
#
#
...
@@ -3105,7 +3124,7 @@ def upload_project_data():
...
@@ -3105,7 +3124,7 @@ def upload_project_data():
#
#
#
#
# # 项目档案---下载
# # 项目档案---下载
# @api_
project
.route("/ItemDownload", methods=["POST"])
# @api_
manage
.route("/ItemDownload", methods=["POST"])
# def item_download():
# def item_download():
# req_dic = request.get_json()
# req_dic = request.get_json()
# project_id = req_dic['project_id']
# project_id = req_dic['project_id']
...
@@ -3155,7 +3174,7 @@ def upload_project_data():
...
@@ -3155,7 +3174,7 @@ def upload_project_data():
#
#
#
#
# # 根据专班名称获取专班信息
# # 根据专班名称获取专班信息
# @api_
project
.route("/GetClassInfo", methods=["POST"])
# @api_
manage
.route("/GetClassInfo", methods=["POST"])
# def class_info():
# def class_info():
# req_dic = request.get_json()
# req_dic = request.get_json()
# class_name = req_dic['class_name']
# class_name = req_dic['class_name']
...
@@ -3181,7 +3200,7 @@ def upload_project_data():
...
@@ -3181,7 +3200,7 @@ def upload_project_data():
#
#
#
#
# # 根据项目判断当前用户是否为此项目执行人
# # 根据项目判断当前用户是否为此项目执行人
# @api_
project
.route("/IsProjectExecutor", methods=["POST"])
# @api_
manage
.route("/IsProjectExecutor", methods=["POST"])
# def project_executor():
# def project_executor():
# req_dic = request.get_json()
# req_dic = request.get_json()
# project_id = req_dic['project_id']
# project_id = req_dic['project_id']
...
...
apps/inves_manage/view.py
View file @
fdd55f2b
...
@@ -1270,7 +1270,6 @@ def check_project_detail():
...
@@ -1270,7 +1270,6 @@ def check_project_detail():
"id"
:
progress_obj
.
id
,
"id"
:
progress_obj
.
id
,
"time"
:
progress_obj
.
add_time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
),
"time"
:
progress_obj
.
add_time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
),
"info"
:
progress_obj
.
info
"info"
:
progress_obj
.
info
# } for progress_obj in progress_obj_list if progress_obj.flag == flag]
}
for
progress_obj
in
progress_obj_list
]
}
for
progress_obj
in
progress_obj_list
]
progress_data
=
sorted
(
progress_data
,
key
=
lambda
x
:
x
[
'time'
],
reverse
=
True
)
progress_data
=
sorted
(
progress_data
,
key
=
lambda
x
:
x
[
'time'
],
reverse
=
True
)
...
@@ -1284,7 +1283,7 @@ def check_project_detail():
...
@@ -1284,7 +1283,7 @@ def check_project_detail():
file_data
=
[{
file_data
=
[{
"id"
:
file_obj
.
id
,
"id"
:
file_obj
.
id
,
"file_url"
:
file_obj
.
file_url
,
"file_url"
:
file_obj
.
file_url
,
"
file_
name"
:
file_obj
.
file_name
,
"name"
:
file_obj
.
file_name
,
"project_id"
:
file_obj
.
project_id
,
"project_id"
:
file_obj
.
project_id
,
"file_type"
:
file_obj
.
file_type
"file_type"
:
file_obj
.
file_type
}
for
file_obj
in
file_obj_list
if
file_obj
.
file_type
==
1
and
file_obj
.
flag
==
flag
]
}
for
file_obj
in
file_obj_list
if
file_obj
.
file_type
==
1
and
file_obj
.
flag
==
flag
]
...
@@ -1303,7 +1302,7 @@ def check_project_detail():
...
@@ -1303,7 +1302,7 @@ def check_project_detail():
img_data
=
[{
img_data
=
[{
"id"
:
img_obj
.
id
,
"id"
:
img_obj
.
id
,
"file_url"
:
img_obj
.
file_url
,
"file_url"
:
img_obj
.
file_url
,
"
file_
name"
:
img_obj
.
file_name
,
"name"
:
img_obj
.
file_name
,
"project_id"
:
img_obj
.
project_id
,
"project_id"
:
img_obj
.
project_id
,
"file_type"
:
img_obj
.
file_type
"file_type"
:
img_obj
.
file_type
}
for
img_obj
in
file_obj_list
if
img_obj
.
file_type
==
2
and
img_obj
.
flag
==
flag
]
}
for
img_obj
in
file_obj_list
if
img_obj
.
file_type
==
2
and
img_obj
.
flag
==
flag
]
...
@@ -2031,7 +2030,7 @@ def get_project_log():
...
@@ -2031,7 +2030,7 @@ def get_project_log():
per_page
=
req_dic
[
'per_page'
]
per_page
=
req_dic
[
'per_page'
]
try
:
try
:
log_obj_list
=
ProjectDynamicLog
.
query
.
filter
(
ProjectDynamicLog
.
project_id
==
project_id
)
log_obj_list
=
ProjectDynamicLog
.
query
.
filter
(
ProjectDynamicLog
.
project_id
==
project_id
)
size
=
len
(
log_obj_list
)
size
=
len
(
log_obj_list
.
all
()
)
log_obj_list
=
log_obj_list
.
order_by
(
ProjectDynamicLog
.
time
.
desc
())
.
paginate
(
page
,
per_page
)
.
items
log_obj_list
=
log_obj_list
.
order_by
(
ProjectDynamicLog
.
time
.
desc
())
.
paginate
(
page
,
per_page
)
.
items
data
=
[{
data
=
[{
"id"
:
log_obj
.
id
,
"id"
:
log_obj
.
id
,
...
...
apps/models.py
View file @
fdd55f2b
...
@@ -1169,6 +1169,7 @@ class ProjectManagement(db.Model):
...
@@ -1169,6 +1169,7 @@ class ProjectManagement(db.Model):
# 基本信息
# 基本信息
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
comment
=
'主键id'
)
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
comment
=
'主键id'
)
project_stalker
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'项目跟踪'
)
project_stalker
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'项目跟踪'
)
project_stalker_explain
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'项目跟踪说明'
)
project_name
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'项目名称'
)
project_name
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'项目名称'
)
district
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'项目所在地'
)
district
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'项目所在地'
)
development_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'开发区'
)
development_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'开发区'
)
...
...
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