浏览代码

智能插座电量返回小数点一位

guanhailong 2 年之前
父节点
当前提交
007290c7a5
共有 2 个文件被更改,包括 19 次插入26 次删除
  1. 4 10
      Controller/SensorGateway/GatewayDeviceController.py
  2. 15 16
      Controller/SensorGateway/SmartSocketController.py

+ 4 - 10
Controller/SensorGateway/GatewayDeviceController.py

@@ -337,13 +337,7 @@ class GatewayDeviceView(View):
                 if not socket_info_qs.exists():
                     return response.json(173)
                 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']
-                gateway['accumulatedTime'] = socket_data['accumulatedTime']
-                gateway['socketStatus'] = socket_data['socketStatus']
-                gateway['online'] = socket_data['online']
-                gateway['start'] = socket_data['start']
+                gateway = {key:socket_data.get(key, gateway[key]) for key in gateway.keys()}
             family_device_qs = FamilyRoomDevice.objects.filter(device_id=device_id)
             family_device_qs = family_device_qs.filter(~Q(sub_device=0)).order_by('-created_time')
 
@@ -428,8 +422,8 @@ class GatewayDeviceView(View):
             order_by('-created_time')
         if not socket_power_qs.exists():
             return data
-        data['power'] = socket_power_qs[0]['power']
-        data['electricity'] = socket_power_qs[0]['electricity'].quantize(Decimal("0.00"))
+        data['power'] = round(socket_power_qs[0]['power'], 1)
+        data['electricity'] = round(socket_power_qs[0]['electricity'], 1)
         data['accumulatedTime'] = socket_power_qs[0]['accumulated_time']
         return data
 
@@ -493,4 +487,4 @@ class GatewayDeviceView(View):
 #                    (vvv(VVV)(VVV)vvv)
 #                         神兽保佑
 #                        代码无BUG!
-#
+#

+ 15 - 16
Controller/SensorGateway/SmartSocketController.py

@@ -364,7 +364,7 @@ class SmartSocketView(View):
                 if socket_s_qs.exists():
                     return response.json(174)
                 schedule_count = SocketSchedule.objects.filter(device_id=device_id).count()
-                if schedule_count >= 30:
+                if schedule_count >= 20:
                     return response.json(10061)
                 # 添加排程
                 data['device_id'] = device_id
@@ -409,7 +409,7 @@ class SmartSocketView(View):
         # 主题名称
         topic_name = SOCKET_TOPIC_NAME.format(serial_number)
         result = CommonService.req_publish_mqtt_msg(serial_number, topic_name, msg)
-        LOGGER.info('智能插座排程任务发布MQTT消息结果{}'.format(result))
+        LOGGER.info('智能插座{}排程任务发布MQTT消息结果{}'.format(serial_number, result))
         return result
 
     # 以下是查询智能插座接口
@@ -438,7 +438,7 @@ class SmartSocketView(View):
             data = {}
             # 设备累计电量
             all_electricity = all_socket_power_qs.aggregate(total=Sum('electricity'))
-            data['electricityAll'] = all_electricity['total'].quantize(Decimal("0.00"))
+            data['electricityAll'] = round(all_electricity['total'], 1)
 
             # 本月电费
             nowTime = int(time.time())
@@ -453,7 +453,7 @@ class SmartSocketView(View):
                                                      created_time__lt=endTime_now).aggregate(
                 total=Sum('electricity'))
             if electricity['total'] != None:
-                data['electricityMonth'] = electricity['total'].quantize(Decimal("0.00"))
+                data['electricityMonth'] = round(electricity['total'], 1)
             else:
                 data['electricityMonth'] = 0
 
@@ -468,13 +468,12 @@ class SmartSocketView(View):
                                                                                                 'power',
                                                                                                 'created_time')
             # 当天使用电量
-            data['electricityToday'] = today_socket_power_qs[0]['electricity'].quantize(
-                Decimal("0.00")) if today_socket_power_qs.exists() else 0
+            data['electricityToday'] = round(today_socket_power_qs[0]['electricity'], 1) if today_socket_power_qs.exists() else 0
             # 当天累计时长
             data['accumulated_time'] = today_socket_power_qs[0][
                 'accumulated_time'] if today_socket_power_qs.exists() else 0
             # 当前功率
-            data['power'] = today_socket_power_qs[0]['power'] if today_socket_power_qs.exists() else 0
+            data['power'] = round(today_socket_power_qs[0]['power'], 1) if today_socket_power_qs.exists() else 0
 
             # 昨天使用电量
             yesterday = today - datetime.timedelta(days=1)
@@ -485,7 +484,7 @@ class SmartSocketView(View):
             socket_qs = all_socket_power_qs.filter(created_time__gte=yesterday_start_time,
                                                    created_time__lt=yesterday_end_time).values('electricity')
             if socket_qs.exists():
-                data['electricityYesterday'] = socket_qs[0]['electricity'].quantize(Decimal("0.00"))
+                data['electricityYesterday'] = round(socket_qs[0]['electricity'], 1)
             else:
                 data['electricityYesterday'] = 0
             return response.json(0, data)
@@ -704,7 +703,7 @@ class SmartSocketView(View):
             new_list = []
             socket_qs = socket_power_qs.filter(created_time__gte=startTime, created_time__lt=endTime).aggregate(
                 electricity=Sum('electricity'), accumulatedTime=Sum('accumulated_time'))
-            data['electricityTimeAll'] = Decimal(socket_qs['electricity']).quantize(Decimal("0.00")) if socket_qs[
+            data['electricityTimeAll'] = round(socket_qs['electricity'], 2) if socket_qs[
                 'electricity'] else 0
             data['accumulatedTimeAll'] = socket_qs['accumulatedTime'] if socket_qs['accumulatedTime'] else 0
 
@@ -715,28 +714,28 @@ class SmartSocketView(View):
                 socket_qs = socket_power_qs.filter(created_time__gte=startTime,
                                                    created_time__lt=diction['startMonth_time']).aggregate(
                     electricity=Sum('electricity'), accumulatedTime=Sum('accumulated_time'))
-                electricity = Decimal(socket_qs['electricity']).quantize(Decimal("0.00")) if socket_qs[
+                electricity = socket_qs['electricity'] if socket_qs[
                     'electricity'] else 0
                 # 標記月日
                 subscript = cls.get_subscript(unit, startTime)
                 new_list.append({
                     'subscript': subscript,
                     'time': int(startTime),
-                    'electricity': round(electricity, 1)
+                    'electricity': round(electricity, 2)
                 })
             # 查询天月
             for item in diction['time_list']:
                 socket_qs = socket_power_qs.filter(created_time__gte=item[0],
                                                    created_time__lt=item[1]).aggregate(
                     electricity=Sum('electricity'))
-                electricity = Decimal(socket_qs['electricity']).quantize(Decimal("0.00")) if socket_qs[
+                electricity = socket_qs['electricity'] if socket_qs[
                     'electricity'] else 0
                 # 標記月日
                 subscript = cls.get_subscript(unit, item[0])
                 new_list.append({
                     'subscript': subscript,
                     'time': item[0],
-                    'electricity': round(electricity, 1)
+                    'electricity': round(electricity, 2)
                 })
 
             if unit == 'year':
@@ -744,14 +743,14 @@ class SmartSocketView(View):
                 socket_qs = socket_power_qs.filter(created_time__gte=diction['endMonth_time'],
                                                    created_time__lt=endTime).aggregate(
                     electricity=Sum('electricity'))
-                electricity = Decimal(socket_qs['electricity']).quantize(Decimal("0.00")) if socket_qs[
+                electricity = socket_qs['electricity'] if socket_qs[
                     'electricity'] else 0
                 # 標記月日
                 subscript = cls.get_subscript(unit, endTime)
                 new_list.append({
                     'subscript': subscript,
                     'time': int(endTime),
-                    'electricity': round(electricity, 1)
+                    'electricity': round(electricity, 2)
                 })
             #  降序排序
             # new_list.sort(key=lambda k: k["time"], reverse=True)
@@ -813,4 +812,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))