|
@@ -6,10 +6,10 @@
|
|
|
@Email : zhangdongming@asj6.wecom.work
|
|
|
@Software: PyCharm
|
|
|
"""
|
|
|
+import calendar
|
|
|
import datetime
|
|
|
import logging
|
|
|
import time
|
|
|
-import calendar
|
|
|
from decimal import Decimal
|
|
|
|
|
|
from dateutil.parser import parse
|
|
@@ -56,6 +56,8 @@ class SmartSocketView(View):
|
|
|
ResponseObject('cn')
|
|
|
if operation == 'savePowerStatistics': # 保存电量上报统计
|
|
|
return self.save_power_statistics(request_dict, ResponseObject('cn'))
|
|
|
+ elif operation == 'reset': # 设备复位
|
|
|
+ return self.socket_reset(request_dict, ResponseObject('cn'))
|
|
|
token_code, user_id, response = CommonService \
|
|
|
.verify_token_get_user_id(request_dict, request)
|
|
|
if token_code != 0:
|
|
@@ -78,6 +80,35 @@ class SmartSocketView(View):
|
|
|
return self.del_socket_schedule(request_dict, response, user_id)
|
|
|
return response.json(404)
|
|
|
|
|
|
+ @classmethod
|
|
|
+ def socket_reset(cls, request_dict, response):
|
|
|
+ """
|
|
|
+ 智能插座复位删除数据
|
|
|
+ """
|
|
|
+ try:
|
|
|
+ with transaction.atomic():
|
|
|
+ serial_number = request_dict.get('serialNumber', None)
|
|
|
+ if not serial_number:
|
|
|
+ return response.json(444)
|
|
|
+ socket_info_qs = SocketInfo.objects.filter(serial_number=serial_number, type_switch=0)
|
|
|
+ if not socket_info_qs.exists():
|
|
|
+ return response.json(173)
|
|
|
+ device_id = socket_info_qs.first().device_id
|
|
|
+ if socket_info_qs.first().status == 1: # 设备电源开时 恢复为关闭状态
|
|
|
+ socket_info_qs.update(status=0, updated_time=int(time.time()))
|
|
|
+ # 删除插座倒计时
|
|
|
+ SocketInfo.objects.filter(device_id=device_id, type_switch=1).delete()
|
|
|
+ # 删除插座电量统计
|
|
|
+ SocketPowerStatistics.objects.filter(device_id=device_id).delete()
|
|
|
+ # 删除插座排程
|
|
|
+ SocketSchedule.objects.filter(device_id=device_id).delete()
|
|
|
+ # 删除插座开关日志
|
|
|
+ SceneLog.objects.filter(device_id=serial_number).delete()
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ LOGGER.info('插座复位删除数据异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+ return response.json(177)
|
|
|
+
|
|
|
@classmethod
|
|
|
def save_power_statistics(cls, request_dict, response):
|
|
|
"""
|