Ver Fonte

插座归类网关传感器类;优化查询插座接口

guanhailong há 2 anos atrás
pai
commit
a310fe2499

+ 2 - 2
Controller/SensorGateway/EquipmentFamilyController.py

@@ -772,7 +772,7 @@ class EquipmentFamilyView(View):
             'created_time': now_time
         }
 
-        category = 0 if device_type == 200 else 1
+        category = 0 if device_type == 200 or 201 else 1
         data['category'] = category
         # 查询类别排序
         family_room_device_qs = FamilyRoomDevice.objects.filter(family_id=int(family_id), category=category).values(
@@ -803,7 +803,7 @@ class EquipmentFamilyView(View):
                 for item in device_info_qs:
                     device_id = item['id']
                     device_type = item['Type']
-                    if device_type == 200:
+                    if device_type == 200 or 201:
                         category = 0
                     else:
                         category = 1

+ 16 - 9
Controller/SensorGateway/GatewayDeviceController.py

@@ -297,10 +297,12 @@ class GatewayDeviceView(View):
                 'start': False,
             }
             if device_qs['device__Type'] == 201:
-                socket_info_qs = SocketInfo.objects.filter(device_id=device_id)
+                socket_info_qs = SocketInfo.objects.filter(device_id=device_id).values('online', 'type_switch',
+                                                                                       'status',
+                                                                                       'count_down_time', 'start')
                 if not socket_info_qs.exists():
                     return response.json(173)
-                socket_data = cls.smart_socket(device_id)
+                socket_data = cls.smart_socket(device_id, socket_info_qs)
                 gateway['power'] = socket_data['power']
                 gateway['electricity'] = socket_data['electricity']
                 gateway['countDownTime'] = socket_data['countDownTime']
@@ -351,7 +353,7 @@ class GatewayDeviceView(View):
             return response.json(500)
 
     @classmethod
-    def smart_socket(cls, device_id):
+    def smart_socket(cls, device_id, socket_info_qs):
         """
         查詢插座信息
         """
@@ -365,13 +367,18 @@ class GatewayDeviceView(View):
             'start': False,
         }
         # 插座信息
-        socket_info_qs = SocketInfo.objects.filter(device_id=device_id).values('online', 'type_switch',
-                                                                               'status',
-                                                                               'count_down_time', 'start')
+        socket_info_qs = socket_info_qs.filter(device_id=device_id).values('online', 'type_switch',
+                                                                           'status', 'count_down_time', 'start')
+        type_switch_list = [type_switch[v] for type_switch in socket_info_qs.values('type_switch') for v in type_switch]
+        #  判断开关类型 0:总开关,1:倒计时开关
+        if len(type_switch_list) == 2:
+            socket_info_qs = socket_info_qs.filter(type_switch=1)
+        else:
+            socket_info_qs = socket_info_qs.filter(type_switch=0)
         # 插座信息
-        data['socketStatus'] = socket_info_qs[0]['status'] if socket_info_qs[0]['status'] else False
-        data['start'] = socket_info_qs[0]['start'] if socket_info_qs[0]['status'] else False
-        data['online'] = socket_info_qs[0]['online'] if socket_info_qs[0]['online'] else False
+        data['socketStatus'] = socket_info_qs[0]['status']
+        data['start'] = socket_info_qs[0]['start']
+        data['online'] = socket_info_qs[0]['online']
         data['countDownTime'] = socket_info_qs[0]['count_down_time'] if socket_info_qs[0][
             'count_down_time'] else 0
         # 查詢插座電量

+ 8 - 10
Controller/SensorGateway/SmartSocketController.py

@@ -408,13 +408,11 @@ class SmartSocketView(View):
             all_electricity = socket_power_qs.aggregate(total=Sum('electricity'))
             data['electricityAll'] = all_electricity['total'] if all_electricity['total'] else 0
             # 当天使用电量
-            data['electricityToday'] = socket_power_qs[0]['electricity'] if socket_power_qs[0][
-                'electricity'] else 0
+            data['electricityToday'] = socket_power_qs[0]['electricity']
             # 当天累计时长
-            data['accumulated_time'] = socket_power_qs[0]['accumulated_time'] if socket_power_qs[0][
-                'accumulated_time'] else 0
+            data['accumulated_time'] = socket_power_qs[0]['accumulated_time']
             # 功率
-            data['power'] = socket_power_qs[0]['power'] if socket_power_qs[0]['power'] else 0
+            data['power'] = socket_power_qs[0]['power']
 
             # 本月电费
             nowTime = int(time.time())
@@ -483,8 +481,8 @@ class SmartSocketView(View):
                     'timeType': socket_schedule['time_type'],
                     'startTime': socket_schedule['start_time'],
                     'endTime': socket_schedule['end_time'],
-                    'switchStatus': socket_schedule['switch_status'] if socket_schedule['switch_status'] else False,
-                    'taskStatus': socket_schedule['task_status'] if socket_schedule['task_status'] else False,
+                    'switchStatus': socket_schedule['switch_status'],
+                    'taskStatus': socket_schedule['task_status'],
                     # 进制
                     'repeat': socket_schedule['repeat'],
                 })
@@ -534,8 +532,8 @@ class SmartSocketView(View):
                 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 '',
+                    'status': scene_log['status'],
+                    'createdTime': scene_log['created_time'],
                 }
                 log_list.append(data)
             return response.json(0, log_list)
@@ -756,4 +754,4 @@ class SmartSocketView(View):
                 })
             return response.json(0, schedule_date_list)
         except Exception as e:
-            return response.json(500, repr(e))
+            return response.json(500, repr(e))