Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in
Toggle navigation
F
fund_report
Project
Project
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
彭熊
fund_report
Commits
7a4b6c5c
Commit
7a4b6c5c
authored
Jan 14, 2021
by
pengxiong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
制作模版
parent
39dfe2cd
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
79 additions
and
52 deletions
+79
-52
report.py
app/controller/report.py
+10
-7
template_manage.py
app/controller/template_manage.py
+0
-1
report_service.py
app/service/report_service.py
+66
-1
template_manage_service.py
app/service/template_manage_service.py
+0
-42
jinjia2html_v2.py
app/utils/jinjia2html_v2.py
+3
-1
No files found.
app/controller/report.py
View file @
7a4b6c5c
...
@@ -16,8 +16,8 @@ from flask import request, render_template
...
@@ -16,8 +16,8 @@ from flask import request, render_template
from
flask
import
make_response
from
flask
import
make_response
from
app.api.engine
import
config
from
app.api.engine
import
config
from
app.service.report_service
import
get_report_list
,
delete_report
,
get_one_report
,
edit_report
from
app.service.report_service
import
get_report_list
,
delete_report
,
get_one_report
,
edit_report
,
make_report
from
app.service.template_manage_service
import
make_report
,
get_make_report_data
from
app.service.template_manage_service
import
get_make_report_data
from
app.utils.html_to_pdf
import
html_to_pdf
from
app.utils.html_to_pdf
import
html_to_pdf
from
app.api.engine
import
pdf_folder
,
redis
,
env
,
TAMP_SQL
,
tamp_diagnose_app_engine
from
app.api.engine
import
pdf_folder
,
redis
,
env
,
TAMP_SQL
,
tamp_diagnose_app_engine
from
app.utils.jinjia2html_v2
import
DataIntegrate
from
app.utils.jinjia2html_v2
import
DataIntegrate
...
@@ -55,10 +55,16 @@ class ReportHandlers(Resource):
...
@@ -55,10 +55,16 @@ class ReportHandlers(Resource):
self
.
parser
.
add_argument
(
'type'
,
type
=
int
,
required
=
True
,
help
=
'1为持仓报告2为诊断报告3周期报告'
)
self
.
parser
.
add_argument
(
'type'
,
type
=
int
,
required
=
True
,
help
=
'1为持仓报告2为诊断报告3周期报告'
)
self
.
parser
.
add_argument
(
'name'
,
type
=
str
,
required
=
False
,
help
=
'报告名称或者客户姓名'
)
self
.
parser
.
add_argument
(
'name'
,
type
=
str
,
required
=
False
,
help
=
'报告名称或者客户姓名'
)
self
.
parser
.
add_argument
(
'customer_id'
,
type
=
str
,
required
=
True
,
help
=
'customer_id不能为空'
)
self
.
parser
.
add_argument
(
'customer_id'
,
type
=
str
,
required
=
True
,
help
=
'customer_id不能为空'
)
self
.
parser
.
add_argument
(
'
template_data'
,
type
=
str
,
required
=
True
,
help
=
'template
_data不能为空'
)
self
.
parser
.
add_argument
(
'
report_data'
,
type
=
str
,
required
=
True
,
help
=
'report
_data不能为空'
)
args
=
self
.
parser
.
parse_args
()
args
=
self
.
parser
.
parse_args
()
args
[
'ifa_id'
]
=
self
.
ifa_id
args
[
'ifa_id'
]
=
self
.
ifa_id
make_report
(
args
)
make_report
(
args
)
resp
=
{
"statusCode"
:
"0000"
,
"message"
:
"成功"
,
"attributes"
:
[]
}
return
resp
def
put
(
self
,
id
):
def
put
(
self
,
id
):
...
@@ -103,10 +109,7 @@ class ReportList(Resource):
...
@@ -103,10 +109,7 @@ class ReportList(Resource):
def
post
(
self
):
def
post
(
self
):
"""保存报告."""
"""保存报告."""
self
.
parser
.
add_argument
(
'customer_id'
,
type
=
str
,
required
=
True
,
help
=
'customer_id不能为空'
)
pass
args
=
self
.
parser
.
parse_args
()
make_report
(
args
)
def
put
(
self
):
def
put
(
self
):
"""编辑报告."""
"""编辑报告."""
...
...
app/controller/template_manage.py
View file @
7a4b6c5c
...
@@ -67,7 +67,6 @@ class TemplateManage(Resource):
...
@@ -67,7 +67,6 @@ class TemplateManage(Resource):
def
put
(
self
):
def
put
(
self
):
"""更新模版."""
"""更新模版."""
self
.
parser
.
add_argument
(
'id'
,
type
=
str
,
required
=
True
,
help
=
'模版id'
)
self
.
parser
.
add_argument
(
'id'
,
type
=
str
,
required
=
True
,
help
=
'模版id'
)
# self.parser.add_argument('name', type=int, required=False, help='模版名称')
self
.
parser
.
add_argument
(
'template_data'
,
type
=
str
,
required
=
False
,
help
=
'模版数据'
)
self
.
parser
.
add_argument
(
'template_data'
,
type
=
str
,
required
=
False
,
help
=
'模版数据'
)
args
=
self
.
parser
.
parse_args
()
args
=
self
.
parser
.
parse_args
()
args
[
'ifa_id'
]
=
self
.
ifa_id
args
[
'ifa_id'
]
=
self
.
ifa_id
...
...
app/service/report_service.py
View file @
7a4b6c5c
...
@@ -7,12 +7,15 @@
...
@@ -7,12 +7,15 @@
# @Software : PyCharm
# @Software : PyCharm
# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------
import
datetime
import
datetime
import
os
import
uuid
from
sqlalchemy
import
and_
from
sqlalchemy
import
and_
# from sqlalchemy import union_all
# from sqlalchemy import union_all
from
app.api.engine
import
TAMP_SQL
,
tamp_diagnose_app_engine
from
app.api.engine
import
TAMP_SQL
,
tamp_diagnose_app_engine
from
app.model.tamp_diagnose_app
import
HoldReport
,
HoldDiagnoseReport
,
PeriodicReport
from
app.model.tamp_diagnose_app
import
HoldReport
,
HoldDiagnoseReport
,
PeriodicReport
from
app.utils.jinjia2html_v2
import
DataIntegrate
def
get_report_list
(
args
):
def
get_report_list
(
args
):
...
@@ -114,7 +117,7 @@ def get_one_report(args):
...
@@ -114,7 +117,7 @@ def get_one_report(args):
elif
type
==
3
:
elif
type
==
3
:
res
=
periodic_report
res
=
periodic_report
data
=
[
r
.
to_dict
()
for
r
in
res
]
data
=
[
r
.
to_dict
()
for
r
in
res
]
return
data
return
data
[
0
]
def
edit_report
(
args
):
def
edit_report
(
args
):
...
@@ -153,3 +156,65 @@ def edit_report(args):
...
@@ -153,3 +156,65 @@ def edit_report(args):
if
r
>
0
:
if
r
>
0
:
return
True
return
True
return
False
return
False
def
make_report
(
args
):
"""制作报告."""
ifa_id
=
args
.
get
(
'ifa_id'
)
customer_id
=
args
.
get
(
'customer_id'
)
type
=
args
.
get
(
'type'
)
name
=
args
.
get
(
'name'
)
report_data
=
args
.
get
(
'report_data'
)
pdf_name
=
str
(
uuid
.
uuid4
())
+
'.pdf'
args
[
'update_time'
]
=
datetime
.
datetime
.
now
()
args
[
'update_status'
]
=
1
record_id
=
0
with
TAMP_SQL
(
tamp_diagnose_app_engine
)
as
tamp_diagnose_app
:
tamp_diagnose_session
=
tamp_diagnose_app
.
session
report_record
=
None
if
type
==
1
:
report_record
=
HoldReport
(
**
args
)
elif
type
==
2
:
report_record
=
HoldDiagnoseReport
(
**
args
)
elif
type
==
3
:
report_record
=
PeriodicReport
(
**
args
)
if
not
report_record
:
return
False
tamp_diagnose_session
.
add
(
report_record
)
tamp_diagnose_session
.
flush
()
record_id
=
report_record
.
id
pid
=
os
.
fork
()
if
pid
==
0
:
try
:
dt
=
DataIntegrate
(
ifa_id
=
ifa_id
,
customer_id
=
customer_id
,
pdf_name
=
pdf_name
,
type
=
type
)
dt
.
render_data
(
data
=
report_data
)
hold_report
=
tamp_diagnose_session
.
query
(
HoldReport
)
.
filter
(
and_
(
HoldReport
.
id
==
record_id
,
HoldReport
.
ifa_id
==
ifa_id
,
))
hold_diagnose_report
=
tamp_diagnose_session
.
query
(
HoldDiagnoseReport
)
.
filter
(
and_
(
HoldDiagnoseReport
.
id
==
record_id
,
HoldDiagnoseReport
.
ifa_id
==
ifa_id
,
))
periodic_report
=
tamp_diagnose_session
.
query
(
PeriodicReport
)
.
filter
(
and_
(
PeriodicReport
.
id
==
record_id
,
PeriodicReport
.
ifa_id
==
ifa_id
,
))
if
type
==
1
:
res
=
hold_report
elif
type
==
2
:
res
=
hold_diagnose_report
elif
type
==
3
:
res
=
periodic_report
if
not
res
:
return
False
res
.
update
({
'file'
:
pdf_name
,
'update_status'
:
2
,
'update_time'
:
datetime
.
datetime
.
now
()
})
except
:
pass
else
:
return
True
app/service/template_manage_service.py
View file @
7a4b6c5c
...
@@ -223,45 +223,3 @@ def set_default_template(args):
...
@@ -223,45 +223,3 @@ def set_default_template(args):
return
True
return
True
return
False
return
False
def
make_report
(
args
):
"""制作报告."""
ifa_id
=
args
.
get
(
'ifa_id'
)
customer_id
=
args
.
get
(
'customer_id'
)
type
=
args
.
get
(
'type'
)
name
=
args
.
get
(
'name'
)
pdf_name
=
str
(
uuid
.
uuid4
())
+
'.pdf'
with
TAMP_SQL
(
tamp_diagnose_app_engine
)
as
tamp_diagnose_app
:
tamp_diagnose_app_session
=
tamp_diagnose_app
.
session
sql
=
"update hold_report set update_time='{}', update_status='{}' where ifa_id='{}' and customer_id='{}'"
.
format
(
datetime
.
datetime
.
now
(),
1
,
ifa_id
,
customer_id
)
tamp_diagnose_app_session
.
execute
(
sql
)
start
=
time
.
time
()
try
:
dt
=
DataIntegrate
(
ifa_id
=
ifa_id
,
customer_id
=
customer_id
,
pdf_name
=
pdf_name
,
type
=
type
)
dt
.
render_data
()
except
:
pass
print
(
'耗时{}秒'
.
format
(
round
(
time
.
time
()
-
start
,
2
)))
auth
=
oss2
.
Auth
(
config
[
env
][
'oss'
][
'account'
],
config
[
env
][
'oss'
][
'password'
])
# Endpoint以杭州为例,其它Region请按实际情况填写。
bucket
=
oss2
.
Bucket
(
auth
,
'http://oss-cn-shanghai.aliyuncs.com'
,
'tamperdev'
)
# 生成下载文件的签名URL,有效时间为60s。
path
=
bucket
.
sign_url
(
'GET'
,
'productionenv/Start/'
+
pdf_name
,
60
)
with
TAMP_SQL
(
tamp_diagnose_app_engine
)
as
tamp_diagnose_app
:
tamp_diagnose_app_session
=
tamp_diagnose_app
.
session
sql
=
"update hold_report set update_time='{}', update_status='{}', file='{}' where ifa_id='{}' and customer_id='{}'"
.
format
(
datetime
.
datetime
.
now
(),
2
,
pdf_name
,
ifa_id
,
customer_id
)
tamp_diagnose_app_session
.
execute
(
sql
)
app/utils/jinjia2html_v2.py
View file @
7a4b6c5c
...
@@ -294,8 +294,10 @@ class DataIntegrate:
...
@@ -294,8 +294,10 @@ class DataIntegrate:
self
.
data
=
{
**
hold_default_template
,
**
data
}
self
.
data
=
{
**
hold_default_template
,
**
data
}
return
self
.
data
return
self
.
data
def
render_data
(
self
):
def
render_data
(
self
,
data
=
None
):
# 全部数据
# 全部数据
if
data
:
self
.
data
=
data
# 开始渲染html模板
# 开始渲染html模板
env
=
Environment
(
loader
=
PackageLoader
(
'app'
,
'templates'
))
# 创建一个包加载器对象
env
=
Environment
(
loader
=
PackageLoader
(
'app'
,
'templates'
))
# 创建一个包加载器对象
# template = env.get_template('monthReport.html') # 获取一个模板文件
# template = env.get_template('monthReport.html') # 获取一个模板文件
...
...
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