Browse Source

update code

Signed-off-by: Binren Zhnag <zhangbr@elab-plus.com>
Binren Zhnag 5 years ago
parent
commit
0741e62a84
2 changed files with 39 additions and 24 deletions
  1. 5 3
      flask_app.py
  2. 34 21
      report_push.py

+ 5 - 3
flask_app.py

@@ -5,7 +5,6 @@ from test_info import TestInfo
 from tongce import TongCe
 from apscheduler_elab import Config
 from flask_apscheduler import APScheduler
-from email_util import EmailUtil
 import decimal
 from report_push import ReportPush
 
@@ -217,13 +216,16 @@ def update_other_city():
 
 @app.route('/report_test', methods=['GET', 'POST'])
 def report_test():
+    global result
     try:
         task_id = request.args.get('id', default=None, type=int)
         report_push = ReportPush('bi_report')
         result = report_push.report_push(task_id)
-        return json.dumps(result, ensure_ascii=False, cls=DecimalEncoder)
     except Exception as e:
-        return str(e)
+        print(str(e))
+        result['error'] = str(e)
+    finally:
+        return json.dumps(result, ensure_ascii=False, cls=DecimalEncoder)
 
 
 class DecimalEncoder(json.JSONEncoder):

+ 34 - 21
report_push.py

@@ -438,28 +438,41 @@ class ReportPush(object):
     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[2], 1]
-            except Exception as e:
-                log_data = [value[0], value[1], value[2], -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)
-        return 'success!!'
+        message = {}
+        try:
+            report_data = self.report_data_query(task_key)
+            message[1] = '数据查询成功'
+            time_rang = self.get_time_range(task_key)
+            xu = XlwtUtil()
+            send_info = xu.create_excel(report_data, time_rang, task_key)
+            message[2] = '报表文件生成成功'
+            email_util = EmailUtil()
+            title, content = self.get_title_content(task_key, time_rang)
+            logs = []
+            for value in send_info:
+                log_data = []
+                try:
+                    if value[2]:
+                        email_util.send_mail(title, content, self.mails, value[2])
+                        log_data = [value[0], value[1], value[2], 1]
+                except Exception as e:
+                    log_data = [value[0], value[1], value[2], -1]
+                    print(str(e))
+                logs.append(log_data)
+            message[3] = '邮件发送成功'
+            message['data'] = send_info
+            self.db.add_some(self.sql_6, logs)
+            self.db.close()
+            email_util.quit_mail()
+            FileUtil.remove_files(7, xu.save_path)
+        except Exception as e:
+            print(str(e))
+            message['error'] = str(e)
+            pass
+        finally:
+            return message
 
-    def get_title(self, task_key, time_range):
+    def get_title_content(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):