Sfoglia il codice sorgente

首页设备查询(插座新增在线状态字段)

guanhailong 2 anni fa
parent
commit
ef4b24ceab

+ 2 - 1
Controller/SensorGateway/GatewayDeviceController.py

@@ -11,6 +11,7 @@ import time
 from django.db import transaction
 from django.db.models import Q
 from django.views.generic.base import View
+from decimal import Decimal
 
 from Ansjer.Config.gatewaySensorConfig import SMART_SCENE_TOPIC
 from Controller.SensorGateway.EquipmentFamilyController import EquipmentFamilyView
@@ -398,7 +399,7 @@ class GatewayDeviceView(View):
         if not socket_power_qs.exists():
             return data
         data['power'] = socket_power_qs[0]['power']
-        data['electricity'] = socket_power_qs[0]['electricity']
+        data['electricity'] = Decimal(socket_power_qs[0]['electricity']).quantize(Decimal("0.00"))
         data['accumulatedTime'] = socket_power_qs[0]['accumulated_time']
         return data
 

+ 27 - 13
Controller/SensorGateway/SmartSocketController.py

@@ -16,6 +16,7 @@ from django.db import transaction
 from django.db.models import Sum, Count
 from django.http import QueryDict
 from django.views import View
+from decimal import Decimal
 
 from Model.models import SocketInfo, SocketSchedule, Device_Info, SocketPowerStatistics, SceneLog
 from Object.ResponseObject import ResponseObject
@@ -428,9 +429,11 @@ class SmartSocketView(View):
             data = {}
             # 设备累计电量
             all_electricity = socket_power_qs.aggregate(total=Sum('electricity'))
-            data['electricityAll'] = all_electricity['total'] if all_electricity['total'] else 0
+            data['electricityAll'] = Decimal(all_electricity['total']).quantize(Decimal("0.00")) if all_electricity[
+                'total'] else 0
             # 当天使用电量
-            data['electricityToday'] = socket_power_qs[0]['electricity']
+            data['electricityToday'] = Decimal(socket_power_qs[0]['electricity']).quantize(Decimal("0.00")) if \
+                socket_power_qs[0]['electricity'] else 0
             # 当天累计时长
             data['accumulated_time'] = socket_power_qs[0]['accumulated_time']
             # 功率
@@ -448,7 +451,8 @@ class SmartSocketView(View):
             electricity = socket_power_qs.filter(created_time__gte=startTime_now,
                                                  created_time__lt=endTime_now).aggregate(
                 total=Sum('electricity'))
-            data['electricityMonth'] = electricity['total'] if electricity['total'] else 0
+            data['electricityMonth'] = Decimal(electricity['total']).quantize(Decimal("0.00")) if electricity[
+                'total'] else 0
 
             # 昨天使用电量
             today = datetime.date.today()  # 获取今日日期
@@ -459,7 +463,8 @@ class SmartSocketView(View):
             yesterday_end_time = int(time.mktime(time.strptime(str(today), '%Y-%m-%d'))) - 1
             socket_qs = socket_power_qs.filter(created_time__gte=yesterday_start_time,
                                                created_time__lt=yesterday_end_time).values('electricity')
-            data['electricityYesterday'] = socket_qs[0]['electricity'] if socket_qs.exists() else 0
+            data['electricityYesterday'] = Decimal(socket_qs[0]['electricity']).quantize(Decimal("0.00")) if \
+                socket_qs[0]['electricity'] else 0
             return response.json(0, data)
         except Exception as e:
             return response.json(500, repr(e))
@@ -483,8 +488,10 @@ class SmartSocketView(View):
             return response.json(444)
         page, size = int(page), int(size)
         socket_schedule_qs = SocketSchedule.objects.filter(serial_number=serial_number).values('switch_status',
-                                                                                               'start_time', 'end_time',
-                                                                                               'repeat', 'task_status',
+                                                                                               'start_time',
+                                                                                               'end_time',
+                                                                                               'repeat',
+                                                                                               'task_status',
                                                                                                'time_type',
                                                                                                'created_time',
                                                                                                'updated_time',
@@ -575,7 +582,8 @@ class SmartSocketView(View):
         startYear, startMonth, startDay = \
             str(startTime).split('-')[0], str(startTime).split('-')[1], str(startTime).split('-')[2]
         # 结束时间
-        endYear, endMonth, endDay = str(endTime).split('-')[0], str(endTime).split('-')[1], str(endTime).split('-')[2]
+        endYear, endMonth, endDay = str(endTime).split('-')[0], str(endTime).split('-')[1], str(endTime).split('-')[
+            2]
         if unit == 'week' or unit == 'month':
             startTime = parse('%s-%s-%s' % (startYear, startMonth, startDay))
             endTime = parse('%s-%s-%s' % (endYear, endMonth, endDay))
@@ -673,7 +681,8 @@ 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'] = socket_qs['electricity'] if socket_qs['electricity'] else 0
+            data['electricityTimeAll'] = Decimal(socket_qs['electricity']).quantize(Decimal("0.00")) if socket_qs[
+                'electricity'] else 0
             data['accumulatedTimeAll'] = socket_qs['accumulatedTime'] if socket_qs['accumulatedTime'] else 0
 
             #  分割时间
@@ -683,7 +692,8 @@ 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 = socket_qs['electricity'] if socket_qs['electricity'] else 0
+                electricity = Decimal(socket_qs['electricity']).quantize(Decimal("0.00")) if socket_qs[
+                    'electricity'] else 0
                 # 標記月日
                 subscript = cls.get_subscript(unit, startTime)
                 new_list.append({
@@ -694,8 +704,10 @@ class SmartSocketView(View):
             # 查询天月
             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 = socket_qs['electricity'] if socket_qs['electricity'] else 0
+                                                   created_time__lt=item[1]).aggregate(
+                    electricity=Sum('electricity'))
+                electricity = Decimal(socket_qs['electricity']).quantize(Decimal("0.00")) if socket_qs[
+                    'electricity'] else 0
                 # 標記月日
                 subscript = cls.get_subscript(unit, item[0])
                 new_list.append({
@@ -707,8 +719,10 @@ class SmartSocketView(View):
             if unit == 'year':
                 # 结束月
                 socket_qs = socket_power_qs.filter(created_time__gte=diction['endMonth_time'],
-                                                   created_time__lt=endTime).aggregate(electricity=Sum('electricity'))
-                electricity = socket_qs['electricity'] if socket_qs['electricity'] else 0
+                                                   created_time__lt=endTime).aggregate(
+                    electricity=Sum('electricity'))
+                electricity = Decimal(socket_qs['electricity']).quantize(Decimal("0.00")) if socket_qs[
+                    'electricity'] else 0
                 # 標記月日
                 subscript = cls.get_subscript(unit, endTime)
                 new_list.append({