|
@@ -162,7 +162,7 @@ class DeviceManagement(View):
|
|
|
elif operation == 'getInstavision': # 查询即时视觉列表
|
|
elif operation == 'getInstavision': # 查询即时视觉列表
|
|
|
return self.get_instavision(request_dict, response)
|
|
return self.get_instavision(request_dict, response)
|
|
|
elif operation == 'addInstavision': # 添加即时视觉
|
|
elif operation == 'addInstavision': # 添加即时视觉
|
|
|
- return self.add_instavision(request, response)
|
|
|
|
|
|
|
+ return self.add_instavision(request, request_dict, response)
|
|
|
elif operation == 'editInstavision': # 编辑即时视觉
|
|
elif operation == 'editInstavision': # 编辑即时视觉
|
|
|
return self.edit_instavision(request_dict, response)
|
|
return self.edit_instavision(request_dict, response)
|
|
|
elif operation == 'delInstavision': # 删除即时视觉
|
|
elif operation == 'delInstavision': # 删除即时视觉
|
|
@@ -2265,14 +2265,24 @@ class DeviceManagement(View):
|
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
|
|
|
|
|
@staticmethod
|
|
@staticmethod
|
|
|
- def get_instavision(request_dict, response):
|
|
|
|
|
- """查询即时视觉列表"""
|
|
|
|
|
- page_no = request_dict.get('pageNo')
|
|
|
|
|
- page_size = request_dict.get('pageSize')
|
|
|
|
|
- device_id = request_dict.get('deviceId', '')
|
|
|
|
|
- mac = request_dict.get('mac', '')
|
|
|
|
|
- access_key = request_dict.get('accessKey', '')
|
|
|
|
|
- use_status = request_dict.get('useStatus')
|
|
|
|
|
|
|
+ def get_instavision(request_dict: dict, response: ResponseObject):
|
|
|
|
|
+ """
|
|
|
|
|
+ 查询即时视觉列表
|
|
|
|
|
+
|
|
|
|
|
+ Args:
|
|
|
|
|
+ request_dict: 请求参数字典
|
|
|
|
|
+ response: ResponseObject响应对象
|
|
|
|
|
+
|
|
|
|
|
+ Returns:
|
|
|
|
|
+ JsonResponse: 响应结果
|
|
|
|
|
+ """
|
|
|
|
|
+ page_no: str = request_dict.get('pageNo')
|
|
|
|
|
+ page_size: str = request_dict.get('pageSize')
|
|
|
|
|
+ device_id: str = request_dict.get('deviceId', '')
|
|
|
|
|
+ mac: str = request_dict.get('mac', '')
|
|
|
|
|
+ access_key: str = request_dict.get('accessKey', '')
|
|
|
|
|
+ scheme_code: str = request_dict.get('schemeCode', '')
|
|
|
|
|
+ use_status: str = request_dict.get('useStatus')
|
|
|
|
|
|
|
|
if not all([page_no, page_size]):
|
|
if not all([page_no, page_size]):
|
|
|
return response.json(444)
|
|
return response.json(444)
|
|
@@ -2285,13 +2295,16 @@ class DeviceManagement(View):
|
|
|
query = query.filter(mac__contains=mac)
|
|
query = query.filter(mac__contains=mac)
|
|
|
if access_key:
|
|
if access_key:
|
|
|
query = query.filter(access_key__contains=access_key)
|
|
query = query.filter(access_key__contains=access_key)
|
|
|
|
|
+ if scheme_code:
|
|
|
|
|
+ query = query.filter(scheme_code__contains=scheme_code)
|
|
|
if use_status is not None:
|
|
if use_status is not None:
|
|
|
query = query.filter(use_status=use_status)
|
|
query = query.filter(use_status=use_status)
|
|
|
|
|
|
|
|
- total = query.count()
|
|
|
|
|
|
|
+ total: int = query.count()
|
|
|
instavisions = query.order_by('-id')[
|
|
instavisions = query.order_by('-id')[
|
|
|
(int(page_no)-1)*int(page_size):int(page_no)*int(page_size)
|
|
(int(page_no)-1)*int(page_size):int(page_no)*int(page_size)
|
|
|
- ].values('id', 'mac', 'device_id', 'access_key', 'use_status', 'created_time', 'updated_time')
|
|
|
|
|
|
|
+ ].values(
|
|
|
|
|
+ 'id', 'mac', 'device_id', 'access_key', 'scheme_code', 'use_status', 'created_time', 'updated_time')
|
|
|
|
|
|
|
|
return response.json(0, {
|
|
return response.json(0, {
|
|
|
'list': list(instavisions),
|
|
'list': list(instavisions),
|
|
@@ -2301,31 +2314,40 @@ class DeviceManagement(View):
|
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
|
|
|
|
|
@staticmethod
|
|
@staticmethod
|
|
|
- def add_instavision(request, response):
|
|
|
|
|
|
|
+ def add_instavision(request, request_dict: dict, response: ResponseObject):
|
|
|
"""添加即时视觉
|
|
"""添加即时视觉
|
|
|
仅支持CSV批量导入
|
|
仅支持CSV批量导入
|
|
|
|
|
+
|
|
|
|
|
+ Args:
|
|
|
|
|
+ request: Django HttpRequest对象
|
|
|
|
|
+ request_dict: 请求参数字典
|
|
|
|
|
+ response: ResponseObject响应对象
|
|
|
|
|
+
|
|
|
|
|
+ Returns:
|
|
|
|
|
+ JsonResponse: 响应结果
|
|
|
"""
|
|
"""
|
|
|
- file = request.FILES.get('file', None)
|
|
|
|
|
- if not file:
|
|
|
|
|
- return response.json(444, '请上传CSV文件')
|
|
|
|
|
|
|
+ file = request.FILES.get('file')
|
|
|
|
|
+ scheme_code: str = request_dict.get('schemeCode')
|
|
|
|
|
+ if not all([file, scheme_code]):
|
|
|
|
|
+ return response.json(444)
|
|
|
|
|
|
|
|
try:
|
|
try:
|
|
|
# 读取CSV文件内容
|
|
# 读取CSV文件内容
|
|
|
- csv_content = io.StringIO(file.read().decode('utf-8'))
|
|
|
|
|
- csv_reader = csv.DictReader(csv_content)
|
|
|
|
|
|
|
+ csv_content: io.StringIO = io.StringIO(file.read().decode('utf-8'))
|
|
|
|
|
+ csv_reader: csv.DictReader = csv.DictReader(csv_content)
|
|
|
|
|
|
|
|
- now_time = int(time.time())
|
|
|
|
|
|
|
+ now_time: int = int(time.time())
|
|
|
|
|
|
|
|
# 获取所有已存在的device_id
|
|
# 获取所有已存在的device_id
|
|
|
- existing_device_ids = set(Instavision.objects.values_list('device_id', flat=True))
|
|
|
|
|
|
|
+ existing_device_ids: set[str] = set(Instavision.objects.values_list('device_id', flat=True))
|
|
|
|
|
|
|
|
# 准备批量创建的对象列表
|
|
# 准备批量创建的对象列表
|
|
|
- instavision_objects = []
|
|
|
|
|
|
|
+ instavision_objects: list[Instavision] = []
|
|
|
|
|
|
|
|
for row in csv_reader:
|
|
for row in csv_reader:
|
|
|
# 获取Device Id和Access Key列的数据
|
|
# 获取Device Id和Access Key列的数据
|
|
|
- device_id = row.get('Device Id', '')
|
|
|
|
|
- access_key = row.get('Access Key', '')
|
|
|
|
|
|
|
+ device_id: str = row.get('Device Id', '')
|
|
|
|
|
+ access_key: str = row.get('Access Key', '')
|
|
|
|
|
|
|
|
if not device_id or not access_key:
|
|
if not device_id or not access_key:
|
|
|
continue
|
|
continue
|
|
@@ -2338,6 +2360,7 @@ class DeviceManagement(View):
|
|
|
instavision_objects.append(Instavision(
|
|
instavision_objects.append(Instavision(
|
|
|
device_id=device_id,
|
|
device_id=device_id,
|
|
|
access_key=access_key,
|
|
access_key=access_key,
|
|
|
|
|
+ scheme_code=scheme_code,
|
|
|
created_time=now_time,
|
|
created_time=now_time,
|
|
|
updated_time=now_time
|
|
updated_time=now_time
|
|
|
))
|
|
))
|
|
@@ -2354,19 +2377,29 @@ class DeviceManagement(View):
|
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
|
|
|
|
|
@staticmethod
|
|
@staticmethod
|
|
|
- def edit_instavision(request_dict, response):
|
|
|
|
|
- """编辑即时视觉"""
|
|
|
|
|
- instavision_id = request_dict.get('id')
|
|
|
|
|
- device_id = request_dict.get('deviceId')
|
|
|
|
|
- access_key = request_dict.get('accessKey')
|
|
|
|
|
- mac = request_dict.get('mac')
|
|
|
|
|
- use_status = request_dict.get('useStatus')
|
|
|
|
|
|
|
+ def edit_instavision(request_dict: dict, response: ResponseObject):
|
|
|
|
|
+ """
|
|
|
|
|
+ 编辑即时视觉
|
|
|
|
|
+
|
|
|
|
|
+ Args:
|
|
|
|
|
+ request_dict: 请求参数字典
|
|
|
|
|
+ response: ResponseObject响应对象
|
|
|
|
|
+
|
|
|
|
|
+ Returns:
|
|
|
|
|
+ JsonResponse: 响应结果
|
|
|
|
|
+ """
|
|
|
|
|
+ instavision_id: str = request_dict.get('id')
|
|
|
|
|
+ device_id: str = request_dict.get('deviceId')
|
|
|
|
|
+ access_key: str = request_dict.get('accessKey')
|
|
|
|
|
+ mac: str = request_dict.get('mac')
|
|
|
|
|
+ scheme_code: str = request_dict.get('schemeCode')
|
|
|
|
|
+ use_status: str = request_dict.get('useStatus')
|
|
|
|
|
|
|
|
if not instavision_id:
|
|
if not instavision_id:
|
|
|
return response.json(444)
|
|
return response.json(444)
|
|
|
|
|
|
|
|
try:
|
|
try:
|
|
|
- update_data = {
|
|
|
|
|
|
|
+ update_data: dict = {
|
|
|
'updated_time': int(time.time())
|
|
'updated_time': int(time.time())
|
|
|
}
|
|
}
|
|
|
if device_id:
|
|
if device_id:
|
|
@@ -2378,6 +2411,8 @@ class DeviceManagement(View):
|
|
|
update_data['access_key'] = access_key
|
|
update_data['access_key'] = access_key
|
|
|
if mac:
|
|
if mac:
|
|
|
update_data['mac'] = mac
|
|
update_data['mac'] = mac
|
|
|
|
|
+ if scheme_code:
|
|
|
|
|
+ update_data['scheme_code'] = scheme_code
|
|
|
if use_status is not None:
|
|
if use_status is not None:
|
|
|
update_data['use_status'] = int(use_status)
|
|
update_data['use_status'] = int(use_status)
|
|
|
|
|
|