|
@@ -418,26 +418,18 @@ class SmartSocketView(View):
|
|
|
# 确定是否会传值
|
|
|
if not all([serial_number]):
|
|
|
return response.json(444, {'error param': 'serialNumber'})
|
|
|
- socket_power_qs = SocketPowerStatistics.objects.filter(serial_number=serial_number).values('electricity',
|
|
|
- 'accumulated_time',
|
|
|
- 'power',
|
|
|
- 'created_time'). \
|
|
|
+ all_socket_power_qs = SocketPowerStatistics.objects.filter(serial_number=serial_number).values('electricity',
|
|
|
+ 'accumulated_time',
|
|
|
+ 'power',
|
|
|
+ 'created_time'). \
|
|
|
order_by('-created_time')
|
|
|
- if not socket_power_qs.exists():
|
|
|
+ if not all_socket_power_qs.exists():
|
|
|
return response.json(0, {})
|
|
|
try:
|
|
|
data = {}
|
|
|
# 设备累计电量
|
|
|
- all_electricity = socket_power_qs.aggregate(total=Sum('electricity'))
|
|
|
- data['electricityAll'] = Decimal(all_electricity['total']).quantize(Decimal("0.00")) if all_electricity[
|
|
|
- 'total'] else 0
|
|
|
- # 当天使用电量
|
|
|
- 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']
|
|
|
- # 功率
|
|
|
- data['power'] = socket_power_qs[0]['power']
|
|
|
+ all_electricity = all_socket_power_qs.aggregate(total=Sum('electricity'))
|
|
|
+ data['electricityAll'] = all_electricity['total'].quantize(Decimal("0.00"))
|
|
|
|
|
|
# 本月电费
|
|
|
nowTime = int(time.time())
|
|
@@ -448,23 +440,45 @@ class SmartSocketView(View):
|
|
|
endTime_now = parse('%s-%s-%s 23:59:59' % (year, month, end))
|
|
|
startTime_now = CommonService.str_to_timestamp(str(startTime_now))
|
|
|
endTime_now = CommonService.str_to_timestamp(str(endTime_now))
|
|
|
- electricity = socket_power_qs.filter(created_time__gte=startTime_now,
|
|
|
- created_time__lt=endTime_now).aggregate(
|
|
|
+ electricity = all_socket_power_qs.filter(created_time__gte=startTime_now,
|
|
|
+ created_time__lt=endTime_now).aggregate(
|
|
|
total=Sum('electricity'))
|
|
|
- data['electricityMonth'] = Decimal(electricity['total']).quantize(Decimal("0.00")) if electricity[
|
|
|
- 'total'] else 0
|
|
|
+ if electricity['total'] != None:
|
|
|
+ data['electricityMonth'] = electricity['total'].quantize(Decimal("0.00"))
|
|
|
+ else:
|
|
|
+ data['electricityMonth'] = 0
|
|
|
+
|
|
|
+ # 获取当前日期
|
|
|
+ nowTime = int(time.time())
|
|
|
+ today = datetime.date.today()
|
|
|
+ # 今天开始时间
|
|
|
+ today_start_time = int(time.mktime(time.strptime(str(today), '%Y-%m-%d')))
|
|
|
+ today_socket_power_qs = all_socket_power_qs.filter(created_time__gte=today_start_time,
|
|
|
+ created_time__lt=nowTime).values('electricity',
|
|
|
+ 'accumulated_time',
|
|
|
+ 'power',
|
|
|
+ 'created_time')
|
|
|
+ # 当天使用电量
|
|
|
+ data['electricityToday'] = today_socket_power_qs[0]['electricity'].quantize(
|
|
|
+ Decimal("0.00")) 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
|
|
|
|
|
|
# 昨天使用电量
|
|
|
- today = datetime.date.today() # 获取今日日期
|
|
|
yesterday = today - datetime.timedelta(days=1)
|
|
|
# 昨天开始时间戳
|
|
|
yesterday_start_time = int(time.mktime(time.strptime(str(yesterday), '%Y-%m-%d')))
|
|
|
# 昨天结束时间戳
|
|
|
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'] = Decimal(socket_qs[0]['electricity']).quantize(Decimal("0.00")) if \
|
|
|
- socket_qs[0]['electricity'] else 0
|
|
|
+ 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"))
|
|
|
+ else:
|
|
|
+ data['electricityYesterday'] = 0
|
|
|
return response.json(0, data)
|
|
|
except Exception as e:
|
|
|
return response.json(500, repr(e))
|