Преглед на файлове

增加接口

Signed-off-by: binren <zhangbr@elab-plus.com>
binren преди 5 години
родител
ревизия
5ed044d6bb
променени са 2 файла, в които са добавени 41 реда и са изтрити 1 реда
  1. 1 1
      flask_app.py
  2. 40 0
      report_push.py

+ 1 - 1
flask_app.py

@@ -227,7 +227,7 @@ def report_test():
     try:
         task_id = request.args.get('id', default=0, type=int)
         report_push = ReportPush('bi_report')
-        result = report_push.report_push(task_id)
+        result = report_push.report_push_test(task_id)
     except Exception as e:
         print(str(e))
         result['error'] = str(e)

+ 40 - 0
report_push.py

@@ -502,6 +502,46 @@ class ReportPush(object):
         finally:
             return message
 
+    def report_push_test(self, task_key):
+        message = {}
+        try:
+            report_data = self.report_data_query(task_key)
+            message[1] = '数据查询成功:{}'.format(len(report_data))
+            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]:
+                        for mail in self.mails:
+                            result = email_util.send_mail_by_admin(title, content, mail, value[2], value[3])
+                            if result:
+                                log_data = [value[0], value[1], value[2], 1, 'success!!!']
+                            else:
+                                result = email_util.send_mail_by_admin(title, content, mail, value[2], value[3])
+                                if not result:
+                                    log_data = [value[0], value[1], value[2], -1, '第二次发送失败']
+                except Exception as e:
+                    log_data = [value[0], value[1], value[2], -1, str(e)]
+                    print(str(e))
+                logs.append(log_data)
+            message[3] = '邮件发送成功'
+            message['data'] = send_info
+            self.db.add_some(self.sql_6, logs)
+            self.db.close()
+            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_content(self, task_key, time_range):
         if task_key in (1, 4):
             return '移动案场订阅日报[{}]'.format(time_range[0]), '本期间内【{}】至【{}】的数据报告已经准备完成。请点击附件查阅。'.format(time_range[0], time_range[1])