guanhailong 2 жил өмнө
parent
commit
1f34f90494

+ 23 - 30
Controller/SensorGateway/SmartSocketController.py

@@ -380,7 +380,6 @@ class SmartSocketView(View):
         return result
 
     # 以下是查询智能插座接口
-
     @staticmethod
     def get_all_scene(request_dict, response):
         """
@@ -439,7 +438,6 @@ class SmartSocketView(View):
             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
-
             return response.json(0, data)
         except Exception as e:
             return response.json(500, repr(e))
@@ -485,7 +483,7 @@ class SmartSocketView(View):
                     '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,
-                    # 需转换进制
+                    # 进制
                     'repeat': socket_schedule['repeat'],
                 })
             return response.json(0, schedule_list)
@@ -569,9 +567,7 @@ class SmartSocketView(View):
             else:
                 endMonth -= 1
             endDay = calendar.monthrange(endYear, endMonth)[1]
-            endYear = str(endYear)
-            endMonth = str(endMonth)
-            endTime = parse('%s-%s-%s 23:59:59' % (endYear, endMonth, endDay))
+            endTime = parse('%s-%s-%s 23:59:59' % (str(endYear), str(endMonth), endDay))
             time_list = CommonService.cutting_time(startTime, endTime, time_unit='month')
             startMonth_time = CommonService.str_to_timestamp(str(startTime))
             endMonth_time = CommonService.str_to_timestamp(str(endTime))
@@ -627,21 +623,20 @@ class SmartSocketView(View):
         """
         serial_number = request_dict.get('serialNumber', None)
         unit = request_dict.get('unit', None)
-        # 确定是否会传值
         startTime = request_dict.get('startTime', None)
         endTime = request_dict.get('endTime', None)
-        if not all([unit, startTime, endTime]):
+        if not all([unit, startTime, endTime, serial_number]):
             return response.json(500, {'errno': 'unit or startTime or endTime or serialNumber'})
-
         try:
-            socket_power_qs = SocketPowerStatistics.objects.filter(serial_number=serial_number).\
+            socket_power_qs = SocketPowerStatistics.objects.filter(serial_number=serial_number). \
                 values('electricity', 'accumulated_time', 'power', 'created_time')
+            if not socket_power_qs.exists():
+                return response.json(173)
             #  时间和功耗
             data = {}
             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['accumulatedTimeAll'] = socket_qs['accumulatedTime'] if socket_qs['accumulatedTime'] else 0
 
@@ -657,7 +652,7 @@ class SmartSocketView(View):
                 subscript = cls.get_subscript(unit, startTime)
                 new_list.append({
                     'subscript': subscript,
-                    'startTime': int(startTime),
+                    'time': int(startTime),
                     'electricity': round(electricity, 1)
                 })
             # 查询天月
@@ -669,49 +664,47 @@ class SmartSocketView(View):
                 subscript = cls.get_subscript(unit, item[0])
                 new_list.append({
                     'subscript': subscript,
-                    'startTime': item[0],
+                    'time': item[0],
                     'electricity': round(electricity, 1)
                 })
 
             if unit == 'year':
                 # 结束月
                 socket_qs = socket_power_qs.filter(created_time__gte=diction['endMonth_time'],
-                                                   created_time__lt=endTime).aggregate(
-                    electricity=Sum('electricity'))
+                                                   created_time__lt=endTime).aggregate(electricity=Sum('electricity'))
                 electricity = socket_qs['electricity'] if socket_qs['electricity'] else 0
                 # 標記月日
-                subscript = cls.get_subscript(unit, startTime)
+                subscript = cls.get_subscript(unit, endTime)
                 new_list.append({
                     'subscript': subscript,
-                    'startTime': int(endTime),
+                    'time': int(endTime),
                     'electricity': round(electricity, 1)
                 })
-            new_list.sort(key=lambda k: k["startTime"], reverse=True)
+            #  降序排序
+            # new_list.sort(key=lambda k: k["time"], reverse=True)
             data['week_or_month_or_year'] = new_list
             return response.json(0, data)
         except Exception as e:
             return response.json(500, repr(e))
 
     @classmethod
-    def get_subscript(cls, unit, startTime):
+    def get_subscript(cls, unit, time_stamp):
         """標記月日"""
-        startTime = int(startTime)
-        # endTime = int(endTime)
-        time_tuple = time.localtime(startTime)  # 把时间戳转换成时间元祖
-        startTime = time.strftime('%Y-%m-%d-%w', time_tuple)  # 把时间元祖转换成格式化好的时间
+        time_tuple = time.localtime(int(time_stamp))  # 把时间戳转换成时间元祖
+        time_tuple = time.strftime('%Y-%m-%d-%w', time_tuple)  # 把时间元祖转换成格式化好的时间
         if unit == 'week' or unit == 'year':
             if unit == 'week':
-                subscript = int(str(startTime).split('-')[3])
+                subscript = int(str(time_tuple).split('-')[3])
                 return subscript
             else:
-                startYear, startMonth, startDay = int(startTime.split('-')[0]), int(startTime.split('-')[1]), int(
-                    startTime.split('-')[2])
-                subscript = datetime.date(startYear, startMonth, startDay).month
+                Year, Month, Day = int(time_tuple.split('-')[0]), int(time_tuple.split('-')[1]), int(
+                    time_tuple.split('-')[2])
+                subscript = datetime.date(Year, Month, Day).month
                 subscript -= 1
                 return subscript
         else:
-            startYear, startMonth, startDay = int(startTime.split('-')[0]), int(startTime.split('-')[1]), int(
-                startTime.split('-')[2])
-            subscript = datetime.date(startYear, startMonth, startDay).day
+            Year, Month, Day = int(time_tuple.split('-')[0]), int(time_tuple.split('-')[1]), int(
+                time_tuple.split('-')[2])
+            subscript = datetime.date(Year, Month, Day).day
             subscript -= 1
             return subscript