|
@@ -12,7 +12,7 @@ from Object.TokenObject import TokenObject
|
|
|
from Service.CommonService import CommonService
|
|
|
from Model.models import Device_Info, RequestRecordModel, iotdeviceInfoModel, Access_Log, DeviceLogModel, LogModel, \
|
|
|
AppLogModel, AppScannedSerial, StsFrequency, DeviceDomainRegionModel, IPAddr, CountryModel, RegionModel, \
|
|
|
- AbnormalEvent, DeviceTypeModel, AbnormalEventCode
|
|
|
+ AbnormalEvent, DeviceTypeModel, AbnormalEventCode, DeviceScheme, ProductsScheme
|
|
|
from Ansjer.config import REGION_NAME, ACCESS_KEY_ID, SECRET_ACCESS_KEY, LOG_BUCKET
|
|
|
|
|
|
|
|
@@ -541,6 +541,7 @@ class LogManagementView(View):
|
|
|
@staticmethod
|
|
|
def getDeviceAbnormalEvent(request_dict, response):
|
|
|
uid = request_dict.get('uid', None)
|
|
|
+ storage_code = request_dict.get('storageCode', None)
|
|
|
device_type = request_dict.get('deviceType', None)
|
|
|
version = request_dict.get('version', None)
|
|
|
event_type = request_dict.get('eventType', None)
|
|
@@ -559,6 +560,15 @@ class LogManagementView(View):
|
|
|
query = Q()
|
|
|
if uid:
|
|
|
query &= Q(uid=uid)
|
|
|
+ if storage_code:
|
|
|
+ # 同一单号都为uid或序列号
|
|
|
+ uid_qs = DeviceScheme.objects.filter(storage_code=storage_code).\
|
|
|
+ values_list('serial_number', flat=True)
|
|
|
+ uid_list = list(uid_qs)
|
|
|
+ # 序列号,查询uid
|
|
|
+ if uid_list and len(uid_list[0]) == 9:
|
|
|
+ uid_list = CommonService.get_uids_by_serial_numbers(uid_list)
|
|
|
+ query &= Q(uid__in=uid_list)
|
|
|
if device_type:
|
|
|
# 处理多个deviceType参数
|
|
|
device_types = [int(t.strip()) for t in device_type.split(',') if t.strip().isdigit()]
|
|
@@ -589,7 +599,7 @@ class LogManagementView(View):
|
|
|
if is_page:
|
|
|
event_list = event_list[(page - 1) * line:page * line]
|
|
|
|
|
|
- # 查询device_type对应的name,事件编码对应的事件
|
|
|
+ # 查询设备型号,异常信息,制作单信息
|
|
|
for event in event_list:
|
|
|
device_type = DeviceTypeModel.objects.filter(type=event['device_type']).first()
|
|
|
if device_type:
|
|
@@ -603,7 +613,22 @@ class LogManagementView(View):
|
|
|
event['event_type'] = abnormal_event_code.event_type
|
|
|
else:
|
|
|
event['event'] = ''
|
|
|
-
|
|
|
+
|
|
|
+ # 根据uid查序列号
|
|
|
+ serial_number = CommonService.get_serial_number_by_uid(event['uid'])
|
|
|
+ device_scheme_qs = DeviceScheme.objects.filter(serial_number=serial_number).values('storage_code')
|
|
|
+ if device_scheme_qs.exists():
|
|
|
+ storage_code = device_scheme_qs[0]['storage_code']
|
|
|
+ event['storage_code'] = storage_code
|
|
|
+ products_scheme_qs = ProductsScheme.objects.filter(
|
|
|
+ storage_code=storage_code).values(
|
|
|
+ 'main_controller', 'wifi', 'sensor', 'order_quantity', 'created_time')
|
|
|
+ if products_scheme_qs.exists():
|
|
|
+ event['scheme'] = '{}+{}+{}'.format(
|
|
|
+ products_scheme_qs[0]['main_controller'], products_scheme_qs[0]['wifi'], products_scheme_qs[0]['sensor'])
|
|
|
+ event['order_quantity'] = products_scheme_qs[0]['order_quantity']
|
|
|
+ event['shipping_date'] = products_scheme_qs[0]['created_time']
|
|
|
+
|
|
|
return response.json(0, {'list': list(event_list), 'total': count})
|
|
|
except Exception as e:
|
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|