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
837174d2
Commit
837174d2
authored
Nov 17, 2022
by
dong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix20221117
parent
c59cb590
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
1043 additions
and
174 deletions
+1043
-174
apps/inves_manage/view.py
+990
-173
apps/models.py
+53
-1
No files found.
apps/inves_manage/view.py
View file @
837174d2
...
@@ -3,6 +3,8 @@ import time
...
@@ -3,6 +3,8 @@ import time
import
datetime
import
datetime
import
random
import
random
import
re
import
re
import
oss2
import
pandas
as
pd
import
pandas
as
pd
import
xlrd
import
xlrd
import
xlsxwriter
import
xlsxwriter
...
@@ -328,6 +330,69 @@ def update_star_project(row_content):
...
@@ -328,6 +330,69 @@ def update_star_project(row_content):
return
'error1'
return
'error1'
def
upload_daily_picture
(
file_type
,
file_name
,
file
):
try
:
access_key_id
=
"LTAI4Fkgi7DUf6jCVW3KNGwT"
access_key_secret
=
"ynr6TWWNOnpALn3YUICUaXwpp9w4er"
auth
=
oss2
.
Auth
(
access_key_id
,
access_key_secret
)
bucket_name
=
"zysf-store"
endpoint
=
"oss-cn-beijing.aliyuncs.com"
bucket
=
oss2
.
Bucket
(
auth
,
endpoint
,
bucket_name
)
file_name
=
file_name
.
split
(
'.'
)
time_stamp
=
'{0:
%
Y
%
m
%
d
%
H
%
M
%
S}'
.
format
(
datetime
.
now
())
file_name
=
file_name
[
0
]
+
time_stamp
+
'.'
+
file_name
[
1
]
file_url
=
''
if
file_type
==
1
:
bucket
.
put_object
(
'/晋城招商图谱平台/四库管理文件/文件/'
+
file_name
,
file
)
file_url
=
"https://{}.{}/{}"
.
format
(
bucket_name
,
endpoint
,
'/晋城招商图谱平台/四库管理文件/文件/'
+
file_name
)
if
file_type
==
2
:
bucket
.
put_object
(
'/晋城招商图谱平台/四库管理文件/图片/'
+
file_name
,
file
)
file_url
=
"https://{}.{}/{}"
.
format
(
bucket_name
,
endpoint
,
'/晋城招商图谱平台/四库管理文件/图片/'
+
file_name
)
time
.
sleep
(
1
)
return
file_url
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
THIRDERR
,
msg
=
'第三方系统(阿里云oss存储)出错!'
)
# 编辑页文件图片删除接口
def
file_delete
(
file_del_list
,
img_del_list
,
project_id
,
flag
):
if
file_del_list
:
try
:
for
file_id
in
file_del_list
:
if
file_id
:
file_obj
=
ProjectFile
.
query
.
filter_by
(
flag
=
flag
,
id
=
file_id
,
project_id
=
project_id
,
file_type
=
1
)
.
first
()
db
.
session
.
delete
(
file_obj
)
db
.
session
.
commit
()
except
Exception
as
e
:
db
.
session
.
rollback
()
current_app
.
logger
.
error
(
e
)
return
'error'
if
img_del_list
:
try
:
for
img_id
in
img_del_list
:
if
img_id
:
img_obj
=
ProjectFile
.
query
.
filter_by
(
flag
=
flag
,
id
=
img_id
,
project_id
=
project_id
,
file_type
=
2
)
.
first
()
db
.
session
.
delete
(
img_obj
)
db
.
session
.
commit
()
except
Exception
as
e
:
db
.
session
.
rollback
()
current_app
.
logger
.
error
(
e
)
return
'error'
return
'ok'
# 记录项目动态
def
write_dynamic
(
user_name
,
project_id
,
item
,
time
):
dynamic_obj
=
ProjectDynamicLog
(
operation_people
=
user_name
,
project_id
=
project_id
,
item
=
item
,
time
=
time
,
)
db
.
session
.
add
(
dynamic_obj
)
db
.
session
.
commit
()
# 线索库搜索接口
# 线索库搜索接口
@api_manage.route
(
"/SearchProject"
,
methods
=
[
"POST"
])
@api_manage.route
(
"/SearchProject"
,
methods
=
[
"POST"
])
def
search_project
():
def
search_project
():
...
@@ -607,7 +672,7 @@ def batch_del():
...
@@ -607,7 +672,7 @@ def batch_del():
for
select_id
in
select_id_list
:
for
select_id
in
select_id_list
:
project_obj
=
SikuProject
.
query
.
get
(
select_id
)
project_obj
=
SikuProject
.
query
.
get
(
select_id
)
if
not
project_obj
:
if
not
project_obj
:
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"查无此
数据
!"
)
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"查无此
项目
!"
)
project_obj
.
is_delete
=
1
project_obj
.
is_delete
=
1
db
.
session
.
commit
()
db
.
session
.
commit
()
continue
continue
...
@@ -752,6 +817,7 @@ def distribute_project():
...
@@ -752,6 +817,7 @@ def distribute_project():
token
=
request
.
headers
[
'token'
]
token
=
request
.
headers
[
'token'
]
try
:
try
:
user_obj
=
verify_token
(
token
)
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
except
Exception
as
e
:
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"用户信息校验失败,请重新登陆后尝试!"
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"用户信息校验失败,请重新登陆后尝试!"
)
...
@@ -761,7 +827,7 @@ def distribute_project():
...
@@ -761,7 +827,7 @@ def distribute_project():
for
district
in
district_list
:
for
district
in
district_list
:
old_project_obj
=
SikuProject
.
query
.
get
(
project_id
)
old_project_obj
=
SikuProject
.
query
.
get
(
project_id
)
if
not
old_project_obj
:
if
not
old_project_obj
:
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"查无此
数据
!"
)
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"查无此
项目
!"
)
old_distribute_condition
=
old_project_obj
.
distribute_condition
old_distribute_condition
=
old_project_obj
.
distribute_condition
if
old_distribute_condition
and
old_distribute_condition
==
district
:
if
old_distribute_condition
and
old_distribute_condition
==
district
:
continue
continue
...
@@ -776,6 +842,14 @@ def distribute_project():
...
@@ -776,6 +842,14 @@ def distribute_project():
# 构造项目编号
# 构造项目编号
time_strf
=
datetime
.
now
()
.
strftime
(
"
%
Y
%
m
%
d"
)
time_strf
=
datetime
.
now
()
.
strftime
(
"
%
Y
%
m
%
d"
)
project_obj_list
=
SikuProject
.
query
.
all
()
project_obj_list
=
SikuProject
.
query
.
all
()
flag
=
False
for
project_obj
in
project_obj_list
:
if
project_obj
.
project_name
==
old_project_obj
.
project_name
and
\
project_obj
.
distribute_condition
==
district
:
flag
=
True
break
if
flag
:
continue
max_project_num
=
''
max_project_num
=
''
if
project_obj_list
:
if
project_obj_list
:
max_project_num
=
max
([
project_obj
.
project_num
for
project_obj
in
project_obj_list
])
max_project_num
=
max
([
project_obj
.
project_num
for
project_obj
in
project_obj_list
])
...
@@ -820,14 +894,20 @@ def distribute_project():
...
@@ -820,14 +894,20 @@ def distribute_project():
db
.
session
.
add
(
new_project
)
db
.
session
.
add
(
new_project
)
db
.
session
.
commit
()
db
.
session
.
commit
()
district_list1
.
append
(
district
)
district_list1
.
append
(
district
)
if
district_list1
:
if
district_list1
:
# 记录项目动态
time1
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
write_dynamic
(
user_name
,
project_id
,
'分发至 {} 对接库'
.
format
(
district_list1
),
time1
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"该项目已分发至 {} 对接库。"
.
format
(
district_list1
))
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"该项目已分发至 {} 对接库。"
.
format
(
district_list1
))
else
:
else
:
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"
不可重复分发!"
.
format
(
district_list1
))
return
jsonify
(
code
=
RET
.
DATAEXIST
,
msg
=
"已存在,
不可重复分发!"
.
format
(
district_list1
))
except
Exception
as
e
:
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
D
ATA
ERR
,
msg
=
"分发操作出错!"
)
return
jsonify
(
code
=
RET
.
D
B
ERR
,
msg
=
"分发操作出错!"
)
# 获取项目详情
# 获取项目详情
...
@@ -846,7 +926,7 @@ def get_project_detail():
...
@@ -846,7 +926,7 @@ def get_project_detail():
try
:
try
:
project_obj
=
SikuProject
.
query
.
get
(
project_id
)
project_obj
=
SikuProject
.
query
.
get
(
project_id
)
if
not
project_obj
:
if
not
project_obj
:
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"查无此
数据
!"
)
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"查无此
项目
!"
)
data
=
{
data
=
{
"project_name"
:
project_obj
.
project_name
,
"project_name"
:
project_obj
.
project_name
,
...
@@ -874,18 +954,25 @@ def get_project_detail():
...
@@ -874,18 +954,25 @@ def get_project_detail():
return
jsonify
(
code
=
RET
.
OK
,
data
=
data
,
msg
=
"项目详情获取成功!"
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
data
,
msg
=
"项目详情获取成功!"
)
except
Exception
as
e
:
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
D
ATA
ERR
,
msg
=
"数据查询失败!"
)
return
jsonify
(
code
=
RET
.
D
B
ERR
,
msg
=
"数据查询失败!"
)
# 编辑项目详情
# 编辑项目详情
@api_manage.route
(
"/EditProjectDetail"
,
methods
=
[
"POST"
])
@api_manage.route
(
"/EditProjectDetail"
,
methods
=
[
"POST"
])
def
edit_project_detail
():
def
edit_project_detail
():
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"用户信息校验失败,请重新登陆后尝试!"
)
req_dic
=
request
.
get_json
()
req_dic
=
request
.
get_json
()
project_id
=
req_dic
[
'project_id'
]
project_id
=
req_dic
[
'project_id'
]
try
:
try
:
project_obj
=
SikuProject
.
query
.
get
(
project_id
)
project_obj
=
SikuProject
.
query
.
get
(
project_id
)
if
not
project_obj
:
if
not
project_obj
:
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"查无此
数据
!"
)
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"查无此
项目
!"
)
project_obj
.
project_name
=
req_dic
[
'project_name'
]
project_obj
.
project_name
=
req_dic
[
'project_name'
]
project_obj
.
investor_name
=
req_dic
[
'investor_name'
]
project_obj
.
investor_name
=
req_dic
[
'investor_name'
]
project_obj
.
investor_district
=
req_dic
[
'investor_district'
]
project_obj
.
investor_district
=
req_dic
[
'investor_district'
]
...
@@ -904,10 +991,14 @@ def edit_project_detail():
...
@@ -904,10 +991,14 @@ def edit_project_detail():
project_obj
.
other_source
=
req_dic
[
'other_source'
]
project_obj
.
other_source
=
req_dic
[
'other_source'
]
project_obj
.
remark
=
req_dic
[
'remark'
]
project_obj
.
remark
=
req_dic
[
'remark'
]
db
.
session
.
commit
()
db
.
session
.
commit
()
# 记录项目动态
time1
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
write_dynamic
(
user_name
,
project_id
,
'编辑了项目'
,
time1
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"编辑成功!"
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"编辑成功!"
)
except
Exception
as
e
:
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
D
ATA
ERR
,
msg
=
"编辑操作出错!"
)
return
jsonify
(
code
=
RET
.
D
B
ERR
,
msg
=
"编辑操作出错!"
)
# 转办功能(转办个其他区县,改变拟落地区域字段内容)
# 转办功能(转办个其他区县,改变拟落地区域字段内容)
...
@@ -916,6 +1007,7 @@ def project_transition():
...
@@ -916,6 +1007,7 @@ def project_transition():
token
=
request
.
headers
[
'token'
]
token
=
request
.
headers
[
'token'
]
try
:
try
:
user_obj
=
verify_token
(
token
)
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
except
Exception
as
e
:
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"用户信息校验失败,请重新登陆后尝试!"
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"用户信息校验失败,请重新登陆后尝试!"
)
...
@@ -927,7 +1019,7 @@ def project_transition():
...
@@ -927,7 +1019,7 @@ def project_transition():
try
:
try
:
project_obj
=
SikuProject
.
query
.
filter_by
(
id
=
project_id
,
flag
=
flag
)
.
first
()
project_obj
=
SikuProject
.
query
.
filter_by
(
id
=
project_id
,
flag
=
flag
)
.
first
()
if
not
project_obj
:
if
not
project_obj
:
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"查无此
数据
!"
)
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"查无此
项目
!"
)
if
flag
==
2
:
if
flag
==
2
:
# 对接库 转办:把选定的项目转给其它县区,此项目的拟落地区域,变为新的县区
# 对接库 转办:把选定的项目转给其它县区,此项目的拟落地区域,变为新的县区
...
@@ -939,188 +1031,913 @@ def project_transition():
...
@@ -939,188 +1031,913 @@ def project_transition():
project_obj
.
project_to_area
=
district
project_obj
.
project_to_area
=
district
project_obj
.
flag
=
2
project_obj
.
flag
=
2
db
.
session
.
commit
()
db
.
session
.
commit
()
# 记录项目动态
time1
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
write_dynamic
(
user_name
,
project_id
,
'将项目转办至{}。'
.
format
(
district
),
time1
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"转办成功!"
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"转办成功!"
)
except
Exception
as
e
:
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
D
ATA
ERR
,
msg
=
"转办操作出错!"
)
return
jsonify
(
code
=
RET
.
D
B
ERR
,
msg
=
"转办操作出错!"
)
# 流转功能
@api_manage.route
(
"/ProjectMove"
,
methods
=
[
"POST"
])
def
project_move
():
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"用户信息校验失败,请重新登陆后尝试!"
)
try
:
req_dic
=
request
.
get_json
()
project_id
=
req_dic
[
'project_id'
]
flag
=
req_dic
[
'flag'
]
# 流转到:3为签约库, 4为开工库
project_obj
=
SikuProject
.
query
.
get
(
project_id
)
if
not
project_obj
:
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"查无此项目!"
)
if
project_obj
.
flag
==
flag
:
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"参数错误!"
)
pass
project_obj
.
flag
=
flag
db
.
session
.
commit
()
# 记录项目动态
time1
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
write_dynamic
(
user_name
,
project_id
,
'将项目流转至 {} 。'
.
format
(
'签约库'
if
flag
==
3
else
'开工库'
if
flag
==
4
else
''
),
time1
)
# 批量导出-线索库数据
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"流转成功!"
)
# @api_manage.route("/BatchExportProject", methods=["POST"])
except
Exception
as
e
:
# def batch_export_project():
current_app
.
logger
.
error
(
e
)
# req_dic = request.get_json()
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"流转操作出错!"
)
# token = request.headers['token']
#
# try:
# user_obj = verify_token(token)
# user_name = user_obj.real_name
# 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/'
# path = 'D:/中研项目代码/flask_jincheng/apps/statics/project_file/'
# # pro_path = 'http://39.100.39.50:5051/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 = SikuProject.query.filter_by(id=select_id).first()
# # 提取数据,写入xslx表格
# data_list = []
# distribute_condition = project_obj.distribute_condition # 分发情况
# data_list.append(distribute_condition)
# project_name = project_obj.project_name # 项目名称
# data_list.append(project_name)
# investor_name = project_obj.investor_name # 投资方名称
# data_list.append(investor_name)
# investor_district = project_obj.investor_district # 投资方所在地
# data_list.append(investor_district)
# project_type = project_obj.project_type # 项目类型
# data_list.append(project_type)
# investment_volume = project_obj.investment_volume # 总投资额(万元)
# data_list.append(investment_volume)
# project_year = project_obj.project_year # 项目年份
# data_list.append(project_year)
# project_info = project_obj.project_info # 项目基本情况
# data_list.append(project_info)
# thread_people = project_obj.thread_people # 线索提供人
# data_list.append(thread_people)
# thread_people_mobile = project_obj.thread_people_mobile # 线索提供人联系方式
# data_list.append(thread_people_mobile)
# thread_progress = project_obj.thread_progress # 线索进展
# data_list.append(thread_progress)
# target_data_list.append(data_list)
# # 记录项目动态
# time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误!")
# try:
# sheet_name_titles = {
# "sheet1": ["项目编号(自动生成)", "项目名称", "投资方名称", "投资方所在地", "项目类型",
# "总投资额(万元)", "拟引资额(万元)", "项目基本情况", "项目方基本情况", "线索提供人",
# "单位及职务", "联系方式", "备注",]}
#
# # 大标题(居中、加粗、字号)
# style = xlwt.XFStyle()
# al = xlwt.Alignment()
# al.horz = 0x02 # 设置水平居中
# al.vert = 0x01 # 设置垂直居中
# style.alignment = al
# # 为样式创建字体
# font = xlwt.Font()
# font.name = 'Times New Roman' # 字体
# font.bold = True # 加粗
# font.height = 0x00C8 * 2
# # 设置样式
# style.font = font
#
# # 表头(居中、加粗)
# style1 = xlwt.XFStyle()
# al1 = xlwt.Alignment()
# al1.horz = 0x02 # 设置水平居中
# al1.vert = 0x01 # 设置垂直居中
# style1.alignment = al1
# # style1.alignment.wrap = 1 # 设置自动换行
# # 为样式创建字体
# font = xlwt.Font()
# font.name = 'Times New Roman' # 字体
# font.bold = True # 加粗
# # 设置样式
# style1.font = font
# # 设置边框(THIN实线/DASHED虚线)
# borders = xlwt.Borders()
# borders.left = xlwt.Borders.THIN
# borders.right = xlwt.Borders.THIN
# borders.top = xlwt.Borders.THIN
# borders.bottom = xlwt.Borders.THIN
# style1.borders = borders # Add Borders to Style
#
# # 普通内容
# style2 = xlwt.XFStyle()
# al2 = xlwt.Alignment()
# al2.horz = 0x02 # 设置水平居中
# al2.vert = 0x01 # 设置垂直居中
# style2.alignment = al2
# style2.alignment.wrap = 1 # 设置自动换行
# # 设置边框(THIN实线/DASHED虚线)
# borders = xlwt.Borders()
# borders.left = xlwt.Borders.THIN
# borders.right = xlwt.Borders.THIN
# borders.top = xlwt.Borders.THIN
# borders.bottom = xlwt.Borders.THIN
# style2.borders = borders # Add Borders to Style
#
# # 需要左对齐的 7建设内容、12最新进展、13需要解决的问题
# style3 = xlwt.XFStyle()
# al3 = xlwt.Alignment()
# al3.horz = 0x01 # 设置左对齐
# al3.vert = 0x01 # 设置垂直居中
# style3.alignment = al3
# style3.alignment.wrap = 1 # 设置自动换行
# # 设置边框(THIN实线/DASHED虚线)
# borders = xlwt.Borders()
# borders.left = xlwt.Borders.THIN
# borders.right = xlwt.Borders.THIN
# borders.top = xlwt.Borders.THIN
# borders.bottom = xlwt.Borders.THIN
# style3.borders = borders # Add Borders to Style
#
# # 创建excel
# excel = xlwt.Workbook(encoding='utf-8')
# # 写入表头
# for k, v in sheet_name_titles.items():
# sheet_name = k
# sheet = excel.add_sheet(sheet_name)
# # 写入大标题
# title_name = '线索库'
# # 合并单元格,合并第2行到第4行的第4列到第5列
# sheet.write_merge(0, 0, 0, 17, title_name, style)
# tall_style = xlwt.easyxf('font:height 720')
# sheet.row(0).set_style(tall_style)
# # 写入表头
# head_list = v
# for j in range(len(head_list)):
# sheet.write(1, j, head_list[j], style1)
# # 设置单元格列宽
# if j in [7, 12, 13]:
# sheet.col(j).width = 50 * 256
# else:
# sheet.col(j).width = 30 * 256
#
# """===================我是一条木得感情的分割线============================="""
#
# # 写入内容
# for index, value_list in enumerate(target_data_list, 2):
# for i, value in enumerate(value_list):
# if i in [7, 12, 13]:
# sheet.write(index, i, value, style3)
# else:
# sheet.write(index, i, value, style2)
# 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
(
"/AddProgress"
,
methods
=
[
"POST"
])
def
add_progress
():
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"用户信息校验失败,请重新登陆后尝试!"
)
add_time
=
datetime
.
now
()
try
:
req_dic
=
request
.
get_json
()
project_id
=
req_dic
[
'project_id'
]
info
=
req_dic
[
'info'
]
flag
=
req_dic
[
'flag'
]
# 2为对接库,3为签约库,4为开工库
progress_obj
=
ProgressCondition
(
flag
=
flag
,
add_time
=
add_time
,
info
=
info
,
project_id
=
project_id
)
db
.
session
.
add
(
progress_obj
)
db
.
session
.
commit
()
# 记录项目动态
time1
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
write_dynamic
(
user_name
,
project_id
,
'新增了进展情况。'
,
time1
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"进展情况新增成功!"
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"进展情况新增失败!"
)
# 编辑项目对接/推进情况(进展)
@api_manage.route
(
"/EditProgress"
,
methods
=
[
"POST"
])
# 对接库-编辑项目对接情况(进展)
def
edit_progress
():
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"用户信息校验失败,请重新登陆后尝试!"
)
try
:
req_dic
=
request
.
get_json
()
progress_id
=
req_dic
[
'progress_id'
]
info
=
req_dic
[
'info'
]
if
not
info
:
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"无变更内容!"
)
progress_obj
=
ProgressCondition
.
query
.
get
(
progress_id
)
project_id
=
progress_obj
.
project_id
progress_obj
.
info
=
info
db
.
session
.
commit
()
# 记录项目动态
time1
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
write_dynamic
(
user_name
,
project_id
,
'编辑了进展情况。'
,
time1
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"进展情况编辑成功!"
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"进展情况编辑失败!"
)
# 获取项目详情信息(对接库、签约库、开工库)
@api_manage.route
(
"/CheckProjectDetail"
,
methods
=
[
"POST"
])
def
check_project_detail
():
req_dic
=
request
.
get_json
()
project_id
=
req_dic
[
'project_id'
]
# flag = req_dic['flag'] # 2为对接库,3为签约库,4为开工库
token
=
request
.
headers
[
'token'
]
try
:
project_obj
=
SikuProject
.
query
.
get
(
project_id
)
flag
=
project_obj
.
flag
if
flag
==
2
:
project_data
=
{
"id"
:
project_obj
.
id
,
"project_name"
:
project_obj
.
project_name
,
# 项目名称
"investor_name"
:
project_obj
.
investor_name
,
# 投资方名称
"investor_district"
:
project_obj
.
investor_district
,
# 投资方所在地
"project_type"
:
project_obj
.
project_type
,
# 项目类型
"investment_volume"
:
project_obj
.
investment_volume
,
# 总投资额(万元)
"project_num"
:
project_obj
.
project_num
,
# 项目编号
"investment_volume1"
:
project_obj
.
investment_volume1
,
# 拟引资额(万元)
"project_schedule"
:
project_obj
.
project_schedule
,
# 项目进展
"stop_reason"
:
project_obj
.
stop_reason
,
# 暂停或终止原因
"remark"
:
project_obj
.
remark
,
# 备注
"project_to_area"
:
project_obj
.
project_to_area
,
# 拟落地区域
"development_area"
:
project_obj
.
development_area
,
# 开发区
"garden"
:
project_obj
.
garden
,
# 园区
"project_address"
:
project_obj
.
project_address
,
# 项目详细地址
# "joint_condition": project_obj.joint_condition, # 项目对接情况
"project_problem"
:
project_obj
.
project_problem
,
# 项目当前存在的问题
"project_stalker"
:
project_obj
.
project_stalker
,
# 项目跟踪人
"joint_person"
:
project_obj
.
joint_person
,
# 对接人
"joint_person_unity"
:
project_obj
.
joint_person_unity
,
# 对接人单位及职务
"joint_person_mobile"
:
project_obj
.
joint_person_mobile
,
# 对接人联系方式
"project_people"
:
project_obj
.
project_people
,
# 项目方联系人
"project_people_unity"
:
project_obj
.
project_people_unity
,
# 项目方单位或职务
"project_people_mobile"
:
project_obj
.
project_people_mobile
,
# 项目方联系方式
}
if
flag
==
3
:
project_data
=
{
"id"
:
project_obj
.
id
,
"project_name"
:
project_obj
.
project_name
,
# 项目名称
"investor_name"
:
project_obj
.
investor_name
,
# 投资方名称
"investor_district"
:
project_obj
.
investor_district
,
# 投资方所在地
"project_type"
:
project_obj
.
project_type
,
# 项目类型
"investment_volume"
:
project_obj
.
investment_volume
,
# 总投资额(万元总投资额(万元)
"project_num"
:
project_obj
.
project_num
,
# 项目编号
"investment_volume1"
:
project_obj
.
investment_volume1
,
# 拟引资额(万元拟引资额(万元)
"project_schedule"
:
project_obj
.
project_schedule
,
# 项目进展
"stop_reason"
:
project_obj
.
stop_reason
,
# 暂停或终止原因
"remark"
:
project_obj
.
remark
,
# 备注
"development_area"
:
project_obj
.
development_area
,
# 开发区
"garden"
:
project_obj
.
garden
,
# 园区
"project_address"
:
project_obj
.
project_address
,
# 项目详细地址
# "joint_condition": project_obj.joint_condition, # 项目对接情况
"project_stalker"
:
project_obj
.
project_stalker
,
# 项目跟踪人
"joint_person"
:
project_obj
.
joint_person
,
# 对接人
"joint_person_unity"
:
project_obj
.
joint_person_unity
,
# 对接人单位及职务
"joint_person_mobile"
:
project_obj
.
joint_person_mobile
,
# 对接人联系方式
"project_people"
:
project_obj
.
project_people
,
# 项目方联系人
"project_people_unity"
:
project_obj
.
project_people_unity
,
# 项目方单位或职务
"project_people_mobile"
:
project_obj
.
project_people_mobile
,
# 项目方联系方式
"attract_name"
:
project_obj
.
attract_name
,
# 引资方名称
"Party_A_name"
:
project_obj
.
Party_A_name
,
# 签约甲方名称
"Party_A_people"
:
project_obj
.
Party_A_people
,
# 签约甲方联系人
"Party_A_mobile"
:
project_obj
.
Party_A_mobile
,
# 签约甲方联系方式
"Party_B_name"
:
project_obj
.
Party_B_name
,
# 签约乙方名称
"Party_B_people"
:
project_obj
.
Party_B_people
,
# 签约乙方联系人
"Party_B_mobile"
:
project_obj
.
Party_B_mobile
,
# 签约乙方联系方式
"sign_time"
:
project_obj
.
sign_time
.
strftime
(
"
%
Y-
%
m-
%
d"
),
# 签约时间
"project_to_area1"
:
project_obj
.
project_to_area1
,
# 落地区域
"sign_style"
:
project_obj
.
sign_style
,
# 签约方式
"sign_explain"
:
project_obj
.
sign_explain
,
# 其他签约说明
}
if
flag
==
4
:
project_data
=
{
"id"
:
project_obj
.
id
,
"project_name"
:
project_obj
.
project_name
,
# 项目名称
"investor_name"
:
project_obj
.
investor_name
,
# 投资方名称
"investor_district"
:
project_obj
.
investor_district
,
# 投资方所在地
"project_type"
:
project_obj
.
project_type
,
# 项目类型
"investment_volume"
:
project_obj
.
investment_volume
,
# 总投资额(万元)
"project_num"
:
project_obj
.
project_num
,
# 项目编号
"investment_volume1"
:
project_obj
.
investment_volume1
,
# 拟引资额(万元)
"project_schedule"
:
project_obj
.
project_schedule
,
# 项目进展
"development_area"
:
project_obj
.
development_area
,
# 开发区
"garden"
:
project_obj
.
garden
,
# 园区
"project_address"
:
project_obj
.
project_address
,
# 项目详细地址
"project_problem"
:
project_obj
.
project_problem
,
# 项目当前存在的问题
"project_stalker"
:
project_obj
.
project_stalker
,
# 项目跟踪人
"joint_person"
:
project_obj
.
joint_person
,
# 对接人
"joint_person_unity"
:
project_obj
.
joint_person_unity
,
# 对接人单位及职务
"joint_person_mobile"
:
project_obj
.
joint_person_mobile
,
# 对接人联系方式
"project_people"
:
project_obj
.
project_people
,
# 项目方联系人
"project_people_unity"
:
project_obj
.
project_people_unity
,
# 项目方单位或职务
"project_people_mobile"
:
project_obj
.
project_people_mobile
,
# 项目方联系方式
"attract_name"
:
project_obj
.
attract_name
,
# 引资方名称
"progress_condition"
:
project_obj
.
progress_condition
,
# 项目推进情况
"sign_time"
:
project_obj
.
sign_time
,
# 签约时间
"investment"
:
project_obj
.
investment
.
strftime
(
"
%
Y-
%
m-
%
d"
),
# 到位资金
"project_to_area1"
:
project_obj
.
project_to_area1
,
# 落地区域
"start_time"
:
project_obj
.
start_time
.
strftime
(
"
%
Y-
%
m-
%
d"
),
# 开工时间
"remark"
:
project_obj
.
remark
,
# 备注
}
# 项目进展
progress_obj_list
=
project_obj
.
progress_conditions
progress_data
=
[]
if
progress_obj_list
:
progress_data
=
[{
"id"
:
progress_obj
.
id
,
"time"
:
progress_obj
.
add_time
,
"info"
:
progress_obj
.
info
}
for
progress_obj
in
progress_obj_list
if
progress_obj
.
flag
==
flag
]
progress_data
=
sorted
(
progress_data
,
key
=
lambda
x
:
x
[
'time'
],
reverse
=
True
)
file_obj_list
=
project_obj
.
project_files
file_data
=
[]
three_data
=
[]
if
flag
==
3
:
# 文件
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
if
file_obj
.
file_type
==
1
and
file_obj
.
flag
==
flag
]
# 第三方联系人
three_list
=
project_obj
.
sign_threes
three_data
=
[{
"name"
:
three_obj
.
name
,
"people"
:
three_obj
.
people
,
"mobile"
:
three_obj
.
mobile
,
}
for
three_obj
in
three_list
]
# 图片
img_data
=
[]
if
file_obj_list
:
img_data
=
[{
"id"
:
img_obj
.
id
,
"file_url"
:
img_obj
.
file_url
,
"file_name"
:
img_obj
.
file_name
,
"project_id"
:
img_obj
.
project_id
,
"file_type"
:
img_obj
.
file_type
}
for
img_obj
in
file_obj_list
if
img_obj
.
file_type
==
2
and
img_obj
.
flag
==
flag
]
return
jsonify
(
code
=
RET
.
OK
,
data
=
{
"project_data"
:
project_data
,
"three_data"
:
three_data
,
"file_data"
:
file_data
,
"img_data"
:
img_data
,
"progress_data"
:
progress_data
,
"msg"
:
"数据获取成功!"
})
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"操作失败!数据库查询错误"
)
# 编辑对接库、签约库、开工库
@api_manage.route
(
"/EditProject"
,
methods
=
[
"POST"
])
def
edit_project
():
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
user_id
=
user_obj
.
id
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"用户信息校验失败,请重新登陆后尝试!"
)
# 三库共有的
project_id
=
request
.
form
[
'project_id'
]
# flag = request.form['flag'] # 2为对接库,3为签约库,4为开工库
three_list
=
request
.
files
.
getlist
(
'three_list'
)
img_list
=
request
.
files
.
getlist
(
'img_list'
)
file_list
=
request
.
files
.
getlist
(
'file_list'
)
file_del_list
=
request
.
form
.
getlist
(
'file_del_list'
)
img_del_list
=
request
.
form
.
getlist
(
'img_del_list'
)
project_name
=
request
.
form
[
"project_name"
]
investor_name
=
request
.
form
[
"investor_name"
]
investor_district
=
request
.
form
[
"investor_district"
]
project_type
=
request
.
form
[
"project_type"
]
investment_volume
=
request
.
form
[
"investment_volume"
]
investment_volume1
=
request
.
form
[
"investment_volume1"
]
project_schedule
=
request
.
form
[
"project_schedule"
]
stop_reason
=
request
.
form
[
"stop_reason"
]
remark
=
request
.
form
[
"remark"
]
development_area
=
request
.
form
[
"development_area"
]
garden
=
request
.
form
[
"garden"
]
project_address
=
request
.
form
[
"project_address"
]
project_problem
=
request
.
form
[
"project_problem"
]
project_stalker
=
request
.
form
[
"project_stalker"
]
joint_person
=
request
.
form
[
"joint_person"
]
joint_person_unity
=
request
.
form
[
"joint_person_unity"
]
joint_person_mobile
=
request
.
form
[
"joint_person_mobile"
]
project_people
=
request
.
form
[
"project_people"
]
project_people_unity
=
request
.
form
[
"project_people_unity"
]
project_people_mobile
=
request
.
form
[
"project_people_mobile"
]
# 个别的
project_to_area
=
request
.
form
[
"project_to_area"
]
attract_name
=
request
.
form
[
"attract_name"
]
investment
=
request
.
form
[
"investment"
]
project_to_area1
=
request
.
form
[
"project_to_area1"
]
sign_time
=
request
.
form
[
"sign_time"
]
start_time
=
request
.
form
[
"start_time"
]
Party_A_name
=
request
.
form
[
"Party_A_name"
]
Party_A_people
=
request
.
form
[
"Party_A_people"
]
Party_A_mobile
=
request
.
form
[
"Party_A_mobile"
]
Party_B_name
=
request
.
form
[
"Party_B_name"
]
Party_B_people
=
request
.
form
[
"Party_B_people"
]
Party_B_mobile
=
request
.
form
[
"Party_B_mobile"
]
sign_style
=
request
.
form
[
"sign_style"
]
sign_explain
=
request
.
form
[
"sign_explain"
]
try
:
project_obj
=
SikuProject
.
query
.
get
(
project_id
)
flag
=
project_obj
.
flag
project_obj
.
project_name
=
project_name
project_obj
.
investor_name
=
investor_name
project_obj
.
investor_district
=
investor_district
project_obj
.
project_type
=
project_type
project_obj
.
investment_volume
=
investment_volume
project_obj
.
investment_volume1
=
investment_volume1
project_obj
.
project_schedule
=
project_schedule
project_obj
.
stop_reason
=
stop_reason
project_obj
.
remark
=
remark
project_obj
.
development_area
=
development_area
project_obj
.
garden
=
garden
project_obj
.
project_address
=
project_address
project_obj
.
project_problem
=
project_problem
project_obj
.
project_stalker
=
project_stalker
project_obj
.
joint_person
=
joint_person
project_obj
.
joint_person_unity
=
joint_person_unity
project_obj
.
joint_person_mobile
=
joint_person_mobile
project_obj
.
project_people
=
project_people
project_obj
.
project_people_unity
=
project_people_unity
project_obj
.
project_people_mobile
=
project_people_mobile
if
project_to_area
and
flag
==
2
:
project_obj
.
project_to_area
=
project_to_area
if
attract_name
and
flag
in
[
3
,
4
]:
project_obj
.
attract_name
=
attract_name
if
investment
and
flag
==
4
:
project_obj
.
investment
=
investment
if
project_to_area1
and
flag
in
[
3
,
4
]:
project_obj
.
project_to_area1
=
project_to_area1
if
sign_time
and
flag
in
[
3
,
4
]:
project_obj
.
sign_time
=
sign_time
if
start_time
and
flag
in
[
3
,
4
]:
project_obj
.
start_time
=
start_time
if
Party_A_name
and
flag
==
4
:
project_obj
.
Party_A_name
=
Party_A_name
if
Party_A_people
and
flag
==
4
:
project_obj
.
Party_A_people
=
Party_A_people
if
Party_A_mobile
and
flag
==
4
:
project_obj
.
Party_A_mobile
=
Party_A_mobile
if
Party_B_name
and
flag
==
4
:
project_obj
.
Party_B_name
=
Party_B_name
if
Party_B_people
and
flag
==
4
:
project_obj
.
Party_B_people
=
Party_B_people
if
Party_B_mobile
and
flag
==
4
:
project_obj
.
Party_B_mobile
=
Party_B_mobile
if
sign_style
and
flag
==
4
:
project_obj
.
sign_style
=
sign_style
if
sign_explain
and
flag
==
4
:
project_obj
.
sign_explain
=
sign_explain
try
:
if
three_list
:
for
three_obj
in
three_list
:
three_obj
=
SignThree
(
name
=
three_obj
.
name
,
people
=
three_obj
.
people
,
mobile
=
three_obj
.
mobile
,
project_id
=
project_id
)
db
.
session
.
add
(
three_obj
)
db
.
session
.
commit
()
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"第三方保存出错,编辑失败!"
)
# 删除文件和图片
if
file_del_list
or
img_del_list
:
result
=
file_delete
(
file_del_list
,
img_del_list
,
project_id
,
flag
)
if
result
==
'error'
:
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"附件删除异常,编辑失败!"
)
edit_time
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
# flag1 = 0
# flag2 = 0
try
:
# 上传文件
if
file_list
:
for
file_obj
in
file_list
:
file_name
=
file_obj
.
filename
file_url
=
upload_daily_picture
(
1
,
file_name
,
file_obj
)
# 存入数据库
file_obj
=
ProjectFile
(
project_id
=
project_id
,
flag
=
flag
,
file_type
=
1
,
file_name
=
file_name
,
file_url
=
file_url
,
upload_time
=
edit_time
,
upload_people
=
user_name
,
upload_people_id
=
user_id
)
db
.
session
.
add
(
file_obj
)
db
.
session
.
commit
()
flag1
=
1
# 上传图片
if
img_list
:
for
img_obj
in
img_list
:
img_name
=
img_obj
.
filename
img_url
=
upload_daily_picture
(
2
,
img_name
,
img_obj
)
# 存入数据库
img_obj
=
ProjectFile
(
project_id
=
project_id
,
flag
=
flag
,
file_type
=
2
,
file_name
=
img_name
,
file_url
=
img_url
,
upload_time
=
edit_time
,
upload_people
=
user_name
,
upload_people_id
=
user_id
)
db
.
session
.
add
(
img_obj
)
db
.
session
.
commit
()
flag2
=
1
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"文件/图片上传出错,编辑失败!"
)
# msg1 = ''
# msg2 = ''
# if flag1 == 1:
# msg1 = '文件上传成功。'
# if flag2 == 1:
# msg2 = '图片上传成功。'
# return jsonify(code=RET.OK, msg="编辑成功!" + msg1 + msg2)
db
.
session
.
commit
()
# 记录项目动态
time1
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
write_dynamic
(
user_name
,
project_id
,
'编辑了项目详情信息。'
,
time1
)
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
(
"/BatchExportProject1"
,
methods
=
[
"POST"
])
def
batch_export_project1
():
req_dic
=
request
.
get_json
()
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"用户信息校验失败,请重新登陆后尝试!"
)
select_id_list
=
req_dic
[
"select_id_list"
]
path
=
'./apps/statics/project_file/'
pro_path
=
'D:/中研项目代码/flask_jincheng/apps/statics/project_file/'
# pro_path = 'http://39.100.39.50:5051/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
=
SikuProject
.
query
.
filter_by
(
id
=
select_id
)
.
first
()
# 提取数据,写入xslx表格
data_list
=
[]
project_num
=
project_obj
.
project_num
# 项目名称
data_list
.
append
(
project_num
)
project_name
=
project_obj
.
project_name
# 项目名称
data_list
.
append
(
project_name
)
investor_name
=
project_obj
.
investor_name
# 投资方名称
data_list
.
append
(
investor_name
)
investor_district
=
project_obj
.
investor_district
# 投资方所在地
data_list
.
append
(
investor_district
)
project_type
=
project_obj
.
project_type
# 项目类型
data_list
.
append
(
project_type
)
investment_volume
=
project_obj
.
investment_volume
# 总投资额(万元)
data_list
.
append
(
investment_volume
)
investment_volume1
=
project_obj
.
investment_volume1
# ni投资额(万元)
data_list
.
append
(
investment_volume1
)
project_info
=
project_obj
.
project_info
# 项目基本情况
data_list
.
append
(
project_info
)
project_info1
=
project_obj
.
project_info1
# 项目方基本情况
data_list
.
append
(
project_info1
)
thread_people
=
project_obj
.
thread_people
# 线索提供人
data_list
.
append
(
thread_people
)
thread_people_unity
=
project_obj
.
thread_people_unity
# 线索提供人单位
data_list
.
append
(
thread_people_unity
)
thread_people_mobile
=
project_obj
.
thread_people_mobile
# 线索提供人联系方式
data_list
.
append
(
thread_people_mobile
)
remark
=
project_obj
.
remark
# 备注
data_list
.
append
(
remark
)
target_data_list
.
append
(
data_list
)
# 记录项目动态
time
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库查询错误!"
)
try
:
sheet_name_titles
=
{
"sheet1"
:
[
"项目编号(自动生成)"
,
"项目名称"
,
"投资方名称"
,
"投资方所在地"
,
"项目类型"
,
"总投资额(万元)"
,
"拟引资额(万元)"
,
"项目基本情况"
,
"项目方基本情况"
,
"线索提供人"
,
"单位及职务"
,
"联系方式"
,
"备注"
,]}
head_list
=
''
sheet
=
''
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
)
# 记录项目动态
for
project_id
in
select_id_list
:
time1
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
write_dynamic
(
user_name
,
project_id
,
'导出了项目文件。'
,
time1
)
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
(
"/BatchExportProject2"
,
methods
=
[
"POST"
])
def
batch_export_project2
():
req_dic
=
request
.
get_json
()
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"用户信息校验失败,请重新登陆后尝试!"
)
select_id_list
=
req_dic
[
"select_id_list"
]
path
=
'./apps/statics/project_file/'
pro_path
=
'D:/中研项目代码/flask_jincheng/apps/statics/project_file/'
# pro_path = 'http://39.100.39.50:5051/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
=
SikuProject
.
query
.
filter_by
(
id
=
select_id
)
.
first
()
# 提取数据,写入xslx表格
data_list
=
[]
project_num
=
project_obj
.
project_num
# 项目名称
data_list
.
append
(
project_num
)
project_name
=
project_obj
.
project_name
# 项目名称
data_list
.
append
(
project_name
)
investor_name
=
project_obj
.
investor_name
# 投资方名称
data_list
.
append
(
investor_name
)
investor_district
=
project_obj
.
investor_district
# 投资方所在地
data_list
.
append
(
investor_district
)
project_type
=
project_obj
.
project_type
# 项目类型
data_list
.
append
(
project_type
)
investment_volume
=
project_obj
.
investment_volume
# 总投资额(万元)
data_list
.
append
(
investment_volume
)
investment_volume1
=
project_obj
.
investment_volume1
# ni投资额(万元)
data_list
.
append
(
investment_volume1
)
project_to_area1
=
project_obj
.
project_to_area1
# ni投资额(万元)
data_list
.
append
(
project_to_area1
)
development_area
=
project_obj
.
development_area
# ni投资额(万元)
data_list
.
append
(
development_area
)
project_address
=
project_obj
.
project_address
# ni投资额(万元)
data_list
.
append
(
project_address
)
joint_condition
=
project_obj
.
joint_condition
# ni投资额(万元)
data_list
.
append
(
joint_condition
)
project_problem
=
project_obj
.
project_problem
# ni投资额(万元)
data_list
.
append
(
project_problem
)
project_stalker
=
project_obj
.
project_stalker
# ni投资额(万元)
data_list
.
append
(
project_stalker
)
joint_person
=
project_obj
.
joint_person
# ni投资额(万元)
data_list
.
append
(
joint_person
)
joint_person_unity
=
project_obj
.
joint_person_unity
# ni投资额(万元)
data_list
.
append
(
joint_person_unity
)
joint_person_mobile
=
project_obj
.
joint_person_mobile
# ni投资额(万元)
data_list
.
append
(
joint_person_mobile
)
project_people
=
project_obj
.
project_people
# ni投资额(万元)
data_list
.
append
(
project_people
)
project_people_unity
=
project_obj
.
project_people_unity
# ni投资额(万元)
data_list
.
append
(
project_people_unity
)
project_people_mobile
=
project_obj
.
project_people_mobile
# ni投资额(万元)
data_list
.
append
(
project_people_mobile
)
remark
=
project_obj
.
remark
# 备注
data_list
.
append
(
remark
)
target_data_list
.
append
(
data_list
)
# 记录项目动态
time
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库查询错误!"
)
try
:
sheet_name_titles
=
{
"sheet1"
:
[
"项目编号(自动生成)"
,
"项目名称"
,
"投资方名称"
,
"投资方所在地"
,
"项目类型"
,
"总投资额(万元)"
,
"拟投资额(万元)"
,
"拟落地区域"
,
"开发区"
,
"项目详细地址"
,
"项目对接情况"
,
"项目当前存在问题"
,
"项目跟踪人"
,
"对接人"
,
"对接人单位及职务"
,
"对接人联系方式"
,
"项目方联系人"
,
"项目方单位及职务"
,
"项目方联系方式"
,
"备注"
,]}
head_list
=
''
sheet
=
''
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
)
# 记录项目动态
for
project_id
in
select_id_list
:
time1
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
write_dynamic
(
user_name
,
project_id
,
'导出了项目文件。'
,
time1
)
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
(
"/BatchExportProject3"
,
methods
=
[
"POST"
])
def
batch_export_project3
():
req_dic
=
request
.
get_json
()
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"用户信息校验失败,请重新登陆后尝试!"
)
select_id_list
=
req_dic
[
"select_id_list"
]
path
=
'./apps/statics/project_file/'
pro_path
=
'D:/中研项目代码/flask_jincheng/apps/statics/project_file/'
# pro_path = 'http://39.100.39.50:5051/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
=
SikuProject
.
query
.
filter_by
(
id
=
select_id
)
.
first
()
# 提取数据,写入xslx表格
data_list
=
[]
project_num
=
project_obj
.
project_num
# 项目名称
data_list
.
append
(
project_num
)
project_name
=
project_obj
.
project_name
# 项目名称
data_list
.
append
(
project_name
)
attract_name
=
project_obj
.
attract_name
# 投资方名称
data_list
.
append
(
attract_name
)
investor_name
=
project_obj
.
investor_name
# 投资方名称
data_list
.
append
(
investor_name
)
investor_district
=
project_obj
.
investor_district
# 投资方所在地
data_list
.
append
(
investor_district
)
project_type
=
project_obj
.
project_type
# 项目类型
data_list
.
append
(
project_type
)
investment_volume
=
project_obj
.
investment_volume
# 总投资额(万元)
data_list
.
append
(
investment_volume
)
investment_volume1
=
project_obj
.
investment_volume1
# ni投资额(万元)
data_list
.
append
(
investment_volume1
)
project_to_area
=
project_obj
.
project_to_area
# ni投资额(万元)
data_list
.
append
(
project_to_area
)
development_area
=
project_obj
.
development_area
# ni投资额(万元)
data_list
.
append
(
development_area
)
project_address
=
project_obj
.
project_address
# ni投资额(万元)
data_list
.
append
(
project_address
)
progress_condition
=
project_obj
.
progress_condition
# ni投资额(万元)
data_list
.
append
(
progress_condition
)
Party_A_name
=
project_obj
.
Party_A_name
# ni投资额(万元)
data_list
.
append
(
Party_A_name
)
Party_A_people
=
project_obj
.
Party_A_people
# ni投资额(万元)
data_list
.
append
(
Party_A_people
)
Party_A_mobile
=
project_obj
.
Party_A_mobile
# ni投资额(万元)
data_list
.
append
(
Party_A_mobile
)
Party_B_name
=
project_obj
.
Party_B_name
# ni投资额(万元)
data_list
.
append
(
Party_B_name
)
Party_B_people
=
project_obj
.
Party_B_people
# ni投资额(万元)
data_list
.
append
(
Party_B_people
)
Party_B_mobile
=
project_obj
.
Party_B_mobile
# ni投资额(万元)
data_list
.
append
(
Party_B_mobile
)
sign_time
=
project_obj
.
sign_time
# ni投资额(万元)
data_list
.
append
(
sign_time
)
project_stalker
=
project_obj
.
project_stalker
# ni投资额(万元)
data_list
.
append
(
project_stalker
)
joint_person
=
project_obj
.
joint_person
# ni投资额(万元)
data_list
.
append
(
joint_person
)
joint_person_unity
=
project_obj
.
joint_person_unity
# ni投资额(万元)
data_list
.
append
(
joint_person_unity
)
joint_person_mobile
=
project_obj
.
joint_person_mobile
# ni投资额(万元)
data_list
.
append
(
joint_person_mobile
)
project_people
=
project_obj
.
project_people
# ni投资额(万元)
data_list
.
append
(
project_people
)
project_people_unity
=
project_obj
.
project_people_unity
# ni投资额(万元)
data_list
.
append
(
project_people_unity
)
project_people_mobile
=
project_obj
.
project_people_mobile
# ni投资额(万元)
data_list
.
append
(
project_people_mobile
)
remark
=
project_obj
.
remark
# 备注
data_list
.
append
(
remark
)
target_data_list
.
append
(
data_list
)
# 记录项目动态
time
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库查询错误!"
)
try
:
sheet_name_titles
=
{
"sheet1"
:
[
"项目编号(自动生成)"
,
"项目名称"
,
"引资方名称"
,
"投资方名称"
,
"投资方所在地"
,
"项目类型"
,
"总投资额(万元)"
,
"拟投资额(万元)"
,
"落地区域"
,
"开发区"
,
"项目详细地址"
,
"项目推进情况"
,
"签约甲方名称"
,
"签约甲方联系人"
,
"签约甲方联系方式"
,
"签约乙方名称"
,
"签约乙方联系人"
,
"签约乙方联系方式"
,
"签约时间"
,
"项目跟踪人"
,
"对接人"
,
"对接人单位及职务"
,
"对接人联系方式"
,
"项目方联系人"
,
"项目方单位及职务"
,
"项目方联系方式"
,
"备注"
]}
head_list
=
''
sheet
=
''
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
)
# 记录项目动态
for
project_id
in
select_id_list
:
time1
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
write_dynamic
(
user_name
,
project_id
,
'导出了项目文件。'
,
time1
)
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
(
"/BatchExportProject4"
,
methods
=
[
"POST"
])
def
batch_export_project4
():
req_dic
=
request
.
get_json
()
token
=
request
.
headers
[
'token'
]
try
:
user_obj
=
verify_token
(
token
)
user_name
=
user_obj
.
real_name
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"用户信息校验失败,请重新登陆后尝试!"
)
select_id_list
=
req_dic
[
"select_id_list"
]
path
=
'./apps/statics/project_file/'
pro_path
=
'D:/中研项目代码/flask_jincheng/apps/statics/project_file/'
# pro_path = 'http://39.100.39.50:5051/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
=
SikuProject
.
query
.
filter_by
(
id
=
select_id
)
.
first
()
# 提取数据,写入xslx表格
data_list
=
[]
project_num
=
project_obj
.
project_num
# 项目名称
data_list
.
append
(
project_num
)
project_name
=
project_obj
.
project_name
# 项目名称
data_list
.
append
(
project_name
)
attract_name
=
project_obj
.
attract_name
# 投资方名称
data_list
.
append
(
attract_name
)
investor_name
=
project_obj
.
investor_name
# 投资方名称
data_list
.
append
(
investor_name
)
investor_district
=
project_obj
.
investor_district
# 投资方所在地
data_list
.
append
(
investor_district
)
project_type
=
project_obj
.
project_type
# 项目类型
data_list
.
append
(
project_type
)
investment_volume
=
project_obj
.
investment_volume
# 总投资额(万元)
data_list
.
append
(
investment_volume
)
investment_volume1
=
project_obj
.
investment_volume1
# ni投资额(万元)
data_list
.
append
(
investment_volume1
)
investment
=
project_obj
.
investment
# ni投资额(万元)
data_list
.
append
(
investment
)
project_to_area
=
project_obj
.
project_to_area
# ni投资额(万元)
data_list
.
append
(
project_to_area
)
development_area
=
project_obj
.
development_area
# ni投资额(万元)
data_list
.
append
(
development_area
)
project_address
=
project_obj
.
project_address
# ni投资额(万元)
data_list
.
append
(
project_address
)
progress_condition
=
project_obj
.
progress_condition
# ni投资额(万元)
data_list
.
append
(
progress_condition
)
project_problem
=
project_obj
.
project_problem
# ni投资额(万元)
data_list
.
append
(
project_problem
)
sign_time
=
project_obj
.
sign_time
# ni投资额(万元)
data_list
.
append
(
sign_time
)
start_time
=
project_obj
.
start_time
# ni投资额(万元)
data_list
.
append
(
start_time
)
project_stalker
=
project_obj
.
project_stalker
# ni投资额(万元)
data_list
.
append
(
project_stalker
)
joint_person
=
project_obj
.
joint_person
# ni投资额(万元)
data_list
.
append
(
joint_person
)
joint_person_unity
=
project_obj
.
joint_person_unity
# ni投资额(万元)
data_list
.
append
(
joint_person_unity
)
joint_person_mobile
=
project_obj
.
joint_person_mobile
# ni投资额(万元)
data_list
.
append
(
joint_person_mobile
)
project_people
=
project_obj
.
project_people
# ni投资额(万元)
data_list
.
append
(
project_people
)
project_people_unity
=
project_obj
.
project_people_unity
# ni投资额(万元)
data_list
.
append
(
project_people_unity
)
project_people_mobile
=
project_obj
.
project_people_mobile
# ni投资额(万元)
data_list
.
append
(
project_people_mobile
)
remark
=
project_obj
.
remark
# 备注
data_list
.
append
(
remark
)
target_data_list
.
append
(
data_list
)
# 记录项目动态
time
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库查询错误!"
)
try
:
sheet_name_titles
=
{
"sheet1"
:
[
"项目编号(自动生成)"
,
"项目名称"
,
"引资方名称"
,
"投资方名称"
,
"投资方所在地"
,
"项目类型"
,
"总投资额(万元)"
,
"拟投资额(万元)"
,
"到位资金(万元)"
,
"落地区域"
,
"开发区"
,
"项目详细地址"
,
"项目推进情况"
,
"项目当前存在问题"
,
"签约时间"
,
"开工时间"
,
"项目跟踪人"
,
"对接人"
,
"对接人单位及职务"
,
"对接人联系方式"
,
"项目方联系人"
,
"项目方单位及职务"
,
"项目方联系方式"
,
"备注"
]}
head_list
=
''
sheet
=
''
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
)
# 记录项目动态
for
project_id
in
select_id_list
:
time1
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
write_dynamic
(
user_name
,
project_id
,
'导出了项目文件。'
,
time1
)
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
=
"批量导出操作失败!"
)
...
...
apps/models.py
View file @
837174d2
...
@@ -1034,7 +1034,8 @@ class GovDepartment(db.Model):
...
@@ -1034,7 +1034,8 @@ class GovDepartment(db.Model):
"""招商资源管理"""
"""招商资源管理"""
class
SikuProject
(
db
.
Model
):
# 四库管理-项目信息表
# 四库管理-项目信息表
class
SikuProject
(
db
.
Model
):
__tablename_
=
"siku_project"
__tablename_
=
"siku_project"
__table_args__
=
({
'comment'
:
'四库管理-项目信息表'
})
# 添加表注释
__table_args__
=
({
'comment'
:
'四库管理-项目信息表'
})
# 添加表注释
# 项目标签
# 项目标签
...
@@ -1072,6 +1073,7 @@ class SikuProject(db.Model): # 四库管理-项目信息表
...
@@ -1072,6 +1073,7 @@ class SikuProject(db.Model): # 四库管理-项目信息表
# 对接库
# 对接库
project_to_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'拟落地区域'
)
project_to_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'拟落地区域'
)
development_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'开发区'
)
development_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'开发区'
)
garden
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'园区'
)
project_address
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'项目详细地址'
)
project_address
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'项目详细地址'
)
joint_condition
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'项目对接情况'
)
joint_condition
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'项目对接情况'
)
project_problem
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'项目当前存在的问题'
)
project_problem
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'项目当前存在的问题'
)
...
@@ -1094,6 +1096,8 @@ class SikuProject(db.Model): # 四库管理-项目信息表
...
@@ -1094,6 +1096,8 @@ class SikuProject(db.Model): # 四库管理-项目信息表
Party_B_mobile
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'签约乙方联系方式'
)
Party_B_mobile
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'签约乙方联系方式'
)
sign_time
=
db
.
Column
(
db
.
DateTime
,
comment
=
'签约时间'
)
sign_time
=
db
.
Column
(
db
.
DateTime
,
comment
=
'签约时间'
)
sign_year
=
db
.
Column
(
db
.
Integer
,
comment
=
'签约年份'
)
sign_year
=
db
.
Column
(
db
.
Integer
,
comment
=
'签约年份'
)
sign_style
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'签约方式'
)
sign_explain
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'其他签约说明'
)
# 开工库
# 开工库
investment
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'到位资金'
)
investment
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'到位资金'
)
...
@@ -1102,7 +1106,54 @@ class SikuProject(db.Model): # 四库管理-项目信息表
...
@@ -1102,7 +1106,54 @@ class SikuProject(db.Model): # 四库管理-项目信息表
start_year
=
db
.
Column
(
db
.
Integer
,
comment
=
'开工年份'
)
start_year
=
db
.
Column
(
db
.
Integer
,
comment
=
'开工年份'
)
# 四库管理对接库-项目进展(项目对接情况/项目推进情况)
class
ProgressCondition
(
db
.
Model
):
__tablename_
=
"progress_condition"
__table_args__
=
({
'comment'
:
'四库管理对接库-项目进展(项目对接情况/项目推进情况)'
})
# 添加表注释
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
comment
=
'主键id'
)
flag
=
db
.
Column
(
db
.
Integer
,
comment
=
'2为对接库,3为签约库,4为开工库'
)
add_time
=
db
.
Column
(
db
.
DateTime
,
comment
=
'添加时间'
)
info
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'项目对接情况'
)
project_id
=
db
.
Column
(
db
.
Integer
,
db
.
ForeignKey
(
"siku_project.id"
),
comment
=
'外键id,项目id'
)
project
=
db
.
relationship
(
'SikuProject'
,
backref
=
db
.
backref
(
'progress_conditions'
))
# 项目1-N项目对接情况
# 四库管理对接库-相关印证资料图片
class
ProjectFile
(
db
.
Model
):
__tablename_
=
"project_file"
__table_args__
=
({
'comment'
:
'四库管理对接库-相关印证资料图片'
})
# 添加表注释
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
comment
=
'主键id'
)
flag
=
db
.
Column
(
db
.
Integer
,
comment
=
'2为对接库,3为签约库,4为开工库'
)
file_type
=
db
.
Column
(
db
.
Integer
,
comment
=
'1文件,2图片'
)
file_url
=
db
.
Column
(
db
.
String
(
300
),
comment
=
'相关印证资料图片url'
)
file_name
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'相关印证资料图片名称'
)
upload_time
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'上传时间'
)
upload_people
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'上传人'
)
upload_people_id
=
db
.
Column
(
db
.
Integer
,
comment
=
'上传人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项目对接情况
# 签约库-签约的第三方
class
SignThree
(
db
.
Model
):
__tablename_
=
"sign_three"
__table_args__
=
({
'comment'
:
'签约库-签约的第三方'
})
# 添加表注释
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
comment
=
'主键id'
)
# flag = db.Column(db.Integer, comment='2为对接库,3为签约库,4为开工库')
name
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'第三方名称'
)
people
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'第三方联系人'
)
mobile
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'第三方联系方式'
)
project_id
=
db
.
Column
(
db
.
Integer
,
db
.
ForeignKey
(
"siku_project.id"
),
comment
=
'外键id,项目id'
)
project
=
db
.
relationship
(
'SikuProject'
,
backref
=
db
.
backref
(
'sign_threes'
))
# 项目1-N项目对接情况
# 四库管理-项目动态数据表
class
ProjectDynamicLog
(
db
.
Model
):
__tablename_
=
"project_dynamic_log"
__table_args__
=
({
'comment'
:
'四库管理-项目动态数据表'
})
# 添加表注释
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
comment
=
'主键id'
)
project_id
=
db
.
Column
(
db
.
Integer
,
comment
=
'项目id'
)
operation_people
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'操作人'
)
item
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'动态'
)
time
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'时间'
)
\ No newline at end of file
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