|
@@ -1,6 +1,9 @@
|
|
|
from mysql_db import MysqlDB
|
|
|
import datetime
|
|
|
from itertools import groupby
|
|
|
+from xlwt_util import XlwtUtil
|
|
|
+from file_util import FileUtil
|
|
|
+from email_util import EmailUtil
|
|
|
|
|
|
|
|
|
class ReportPush(object):
|
|
@@ -432,6 +435,35 @@ class ReportPush(object):
|
|
|
def __init__(self, db_name):
|
|
|
self.db = MysqlDB(db_name)
|
|
|
|
|
|
+ mails = ['1285211525@qq.com', 'lijm@elab-plus.com', 'xuanxc@elab-plus.com']
|
|
|
+
|
|
|
+ def report_push(self, task_key):
|
|
|
+ report_data = self.report_data_query(task_key)
|
|
|
+ time_rang = self.get_time_range(task_key)
|
|
|
+ xu = XlwtUtil()
|
|
|
+ send_info = xu.create_excel(report_data, time_rang, task_key)
|
|
|
+ email_util = EmailUtil()
|
|
|
+ title, content = self.get_title(task_key, time_rang)
|
|
|
+ logs = []
|
|
|
+ for value in send_info:
|
|
|
+ try:
|
|
|
+ email_util.send_mail(title, content, self.mails, value[2])
|
|
|
+ log_data = [value[0], value[1], value[3], 1]
|
|
|
+ except Exception as e:
|
|
|
+ log_data = [value[0], value[1], value[3], -1]
|
|
|
+ print(str(e))
|
|
|
+ logs.append(log_data)
|
|
|
+ self.db.add_some(self.sql_6, logs)
|
|
|
+ self.db.close()
|
|
|
+ email_util.quit_mail()
|
|
|
+ FileUtil.remove_files(7, xu.save_path)
|
|
|
+
|
|
|
+ def get_title(self, task_key, time_range):
|
|
|
+ if task_key == 1:
|
|
|
+ return '移动案场订阅日报[{}]'.format(time_range[0]), '本期间内【{}】至【{}】的数据报告已经准备完成。请点击附件查阅。'.format(time_range[0], time_range[1])
|
|
|
+ elif task_key in (2, 3):
|
|
|
+ return '移动案场订阅周报[{}]至[{}]'.format(time_range[0], time_range[1]), '本期间内【{}】至【{}】的数据报告已经准备完成。请点击附件查阅.'.format(time_range[0], time_range[1])
|
|
|
+
|
|
|
def report_data_query(self, task_key):
|
|
|
"""
|
|
|
定时任务推送数据准备
|
|
@@ -455,6 +487,7 @@ class ReportPush(object):
|
|
|
for customer in customers:
|
|
|
customer_data = {}
|
|
|
name = customer[3]
|
|
|
+ mail = customer[4]
|
|
|
customer_type = customer[2]
|
|
|
house_ids = []
|
|
|
brand_id_list = []
|
|
@@ -593,6 +626,7 @@ class ReportPush(object):
|
|
|
result_data_8_format.append(ele)
|
|
|
self.sort(result_data_8_format, 1)
|
|
|
customer_data[8] = result_data_8_format
|
|
|
+ customer_data[0] = mail
|
|
|
result[name] = customer_data
|
|
|
return result
|
|
|
|