1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import datetime
import os
from celery import Celery
from sqlalchemy import and_, or_
from app.api.engine import TAMP_SQL, tamp_diagnose_app_engine, template_folder, temp_img_save_folder, \
redis_host, redis_port, redis_db, redis_password, pdf_save_folder
from app.model.tamp_diagnose_app import HoldReport, HoldDiagnoseReport, PeriodicReport, Customer, ReportView
from app.utils.jinjia2html_v2 import DataIntegrate
celery_app = Celery(__name__)
celery_conf = "redis://:{}@{}:{}/{}".format(redis_password,redis_host[0],redis_port[0],redis_db[0])
celery_app.conf.update({"broker_url": celery_conf, "result_backend": celery_conf})
@celery_app.task
def save_pdf(id, ifa_id, customer_id, pdf_name, type, report_data):
"""
加法
:param x:
:param y:
:return:
"""
try:
dt = DataIntegrate(ifa_id=ifa_id, customer_id=customer_id, pdf_name=pdf_name, type=type)
dt.render_data(data=report_data)
except:
pass
with TAMP_SQL(tamp_diagnose_app_engine) as tamp_diagnose_app:
tamp_diagnose_session = tamp_diagnose_app.session
res = None
if type == 1:
res = tamp_diagnose_session.query(HoldReport).filter(and_(
HoldReport.id == id,
HoldReport.ifa_id == ifa_id,
))
elif type == 2:
res = tamp_diagnose_session.query(HoldDiagnoseReport).filter(and_(
HoldDiagnoseReport.id == id,
HoldDiagnoseReport.ifa_id == ifa_id,
))
elif type == 3:
res = tamp_diagnose_session.query(PeriodicReport).filter(and_(
PeriodicReport.id == id,
PeriodicReport.ifa_id == ifa_id,
))
else:
return False
if res.all():
if os.path.exists(pdf_save_folder + pdf_name):
res.update({
'file': pdf_name,
'update_status': 2,
'update_time': datetime.datetime.now()
})
else:
res.update({
'update_status': 0,
'update_time': datetime.datetime.now()
})
return True