Browse Source

新增查詢插座日誌

guanhailong 2 years ago
parent
commit
b01f825d1c
1 changed files with 28 additions and 15 deletions
  1. 28 15
      Controller/SensorGateway/SmartSocketController.py

+ 28 - 15
Controller/SensorGateway/SmartSocketController.py

@@ -18,7 +18,7 @@ from django.db.models import Sum
 from django.http import QueryDict
 from django.http import QueryDict
 from django.views import View
 from django.views import View
 
 
-from Model.models import SocketInfo, SocketSchedule, Device_Info, SocketPowerStatistics
+from Model.models import SocketInfo, SocketSchedule, Device_Info, SocketPowerStatistics, SceneLog
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Object.utils import LocalDateTimeUtil
 from Object.utils import LocalDateTimeUtil
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
@@ -520,8 +520,9 @@ class SmartSocketView(View):
                                                                                                'time_type',
                                                                                                'time_type',
                                                                                                'created_time',
                                                                                                'created_time',
                                                                                                'updated_time',
                                                                                                'updated_time',
-                                                                                               'device_id', 'id')
-        socket_schedule_qs = socket_schedule_qs[(page - 1) * size:page * size]
+                                                                                               'device_id',
+                                                                                               'id').order_by(
+            '-created_time')[(page - 1) * size:page * size]
         if not socket_schedule_qs.exists():
         if not socket_schedule_qs.exists():
             return response.json(173)
             return response.json(173)
         try:
         try:
@@ -557,18 +558,30 @@ class SmartSocketView(View):
         @return: response
         @return: response
         # 日誌擦護用序列號查詢
         # 日誌擦護用序列號查詢
         """
         """
-        # page = request_dict.get('pageNo', None)
-        # size = request_dict.get('pageSize', None)
-        # serial_number = request_dict.get('serialNumber', None)
-        # start_time = request_dict.get('startTime', None)
-        # end_time = request_dict.get('endTime', None)
-        #
-        # if not all([page, size, serial_number]):
-        #     return response.json(444)
-        #
-        # socket_info_qs = SocketInfo.objects.filter(serial_number=serial_number)
-        # device_id_list = []
-        pass
+        page = request_dict.get('pageNo', None)
+        size = request_dict.get('pageSize', None)
+        serial_number = request_dict.get('serialNumber', None)
+        if not all([page, size, serial_number]):
+            return response.json(444, {'errno: page or size or serial_number'})
+        page, size = int(page), int(size)
+        scene_log_qs = SceneLog.objects.filter(device_id=serial_number).values('tasks', 'status',
+                                                                               'created_time').order_by(
+            '-created_time')[(page - 1) * size:page * size]
+        if not scene_log_qs.exists():
+            return response.json(173)
+        try:
+            log_list = []
+            for scene_log in scene_log_qs:
+                data = {
+                    'serialNumber': serial_number,
+                    'tasks': scene_log['tasks'] if scene_log['tasks'] else '',
+                    'status': scene_log['status'] if scene_log['status'] else 0,
+                    'createdTime': scene_log['created_time'] if scene_log['created_time'] else '',
+                }
+                log_list.append(data)
+            return response.json(0, log_list)
+        except Exception as e:
+            return response.json(500, repr(e))
 
 
     @classmethod
     @classmethod
     def splittings_time(cls, startTime, endTime, unit):
     def splittings_time(cls, startTime, endTime, unit):