|
@@ -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({
|