浏览代码

修复打开场景创建新定时任务存在问题,场景数据的任务列表去掉time_dict

locky 1 年之前
父节点
当前提交
0ca43df96f
共有 1 个文件被更改,包括 11 次插入13 次删除
  1. 11 13
      Controller/SensorGateway/SmartSceneController.py

+ 11 - 13
Controller/SensorGateway/SmartSceneController.py

@@ -1238,7 +1238,7 @@ class SmartSceneView(View):
         @param device_type: 设备类型
         @param event_type: 事件类型
         @param serial_number: 序列号
-        @return: task_id, time_dict
+        @return: task_id
         """
         task_id = serial_number + '_'
         apscheduler_obj = ApschedulerObject(tz)
@@ -1256,7 +1256,6 @@ class SmartSceneView(View):
             task_id += str(time_stamp)
             apscheduler_obj.create_date_job(func=cls.pub_mqtt, task_id=task_id, time_stamp=time_stamp,
                                             args=(device_type, event_type, serial_number))
-            time_dict = {'time_stamp': time_stamp}
         # 周期任务
         else:
             hour, minute, second, is_next_day = cls.handle_delay_time(minutes, delay_time)
@@ -1267,8 +1266,7 @@ class SmartSceneView(View):
             apscheduler_obj.create_cron_job(func=cls.pub_mqtt, task_id=task_id, day_of_week=weeks,
                                             hour=hour, minute=minute,
                                             args=(device_type, event_type, serial_number))
-            time_dict = {'weeks': weeks, 'hour': hour, 'minute': minute, 'second': second}
-        return task_id, time_dict
+        return task_id
 
     @staticmethod
     def handle_delay_time(minutes, delay_time):
@@ -1362,10 +1360,10 @@ class SmartSceneView(View):
             if scene_status == SCENE_STATUS_OFF:
                 cls.pause_job(apscheduler_obj, time_task_list)
             else:
-                time_stamp, task_list = cls.resume_job(apscheduler_obj, time_type, time_task_list)
-                if time_stamp and time_task_list:
+                time_stamp = cls.resume_job(apscheduler_obj, time_type, time_task_list)
+                # 返回时间戳,则更新
+                if time_stamp:
                     scene_data_dict['condition']['time_dict']['time_stamp'] = time_stamp
-                    scene_data_dict['condition']['task_list'] = task_list
                     return scene_data_dict
 
     @staticmethod
@@ -1391,7 +1389,7 @@ class SmartSceneView(View):
         @param apscheduler_obj: apscheduler对象
         @param time_type: 时间类型: date, cron
         @param time_task_list: 定时任务列表
-        @return: None, None or time_stamp, time_task_list
+        @return: None or time_stamp
         """
         if time_type == 'cron':
             for time_task in time_task_list:
@@ -1401,7 +1399,7 @@ class SmartSceneView(View):
                         apscheduler_obj.resume_job(task_id)
                     except Exception:
                         continue
-            return None, None
+            return None
         else:
             now_time = int(time.time())
             time_stamp = time_task_list[0]['time_dict']['time_stamp']
@@ -1413,7 +1411,7 @@ class SmartSceneView(View):
                             apscheduler_obj.resume_job(task_id)
                         except Exception:
                             continue
-                return None, None
+                return None
             else:
                 # 创建新的定时任务,时间+24小时
                 time_stamp += 24 * 60 * 60
@@ -1421,12 +1419,12 @@ class SmartSceneView(View):
                     device_type = time_task['device_type']
                     event_type = time_task['event_type']
                     serial_number = time_task['serial_number']
-                    task_id = serial_number + str(time_stamp)
+                    task_id = serial_number + '_' + str(time_stamp)
                     apscheduler_obj.create_date_job(func=cls.pub_mqtt, task_id=task_id, time_stamp=time_stamp,
                                                     args=(device_type, event_type, serial_number))
                     # 更新task_id
-                    time_task[task_id] = task_id
-                return time_stamp, time_task_list
+                    time_task['task_id'] = task_id
+                return time_stamp
 
 
 #