|
@@ -19,7 +19,7 @@ from django.db.models import Q
|
|
|
from django.http import QueryDict, HttpResponse
|
|
|
from django.views import View
|
|
|
|
|
|
-from Model.models import ProductsScheme
|
|
|
+from Model.models import ProductsScheme, DeviceScheme
|
|
|
from Object.RedisObject import RedisObject
|
|
|
from Object.ResponseObject import ResponseObject
|
|
|
from Object.TokenObject import TokenObject
|
|
@@ -77,7 +77,8 @@ class ProductsSchemeManageView(View):
|
|
|
'add': self.add_scheme,# 添加方案
|
|
|
'edit': self.edit_scheme,# 编辑方案
|
|
|
'delete': self.delete_scheme,# 删除方案
|
|
|
- 'generateQR': self.generate_qr_code # 生成二维码
|
|
|
+ 'generateQR': self.generate_qr_code, # 生成二维码
|
|
|
+ 'deviceSchemeList': self.device_scheme_list
|
|
|
}
|
|
|
|
|
|
handler = operation_handlers.get(operation)
|
|
@@ -423,4 +424,80 @@ class ProductsSchemeManageView(View):
|
|
|
return response.json(173, "方案不存在")
|
|
|
except Exception as e:
|
|
|
LOGGER.error(f"生成二维码失败: {str(e)}")
|
|
|
- return response.json(500, "生成失败")
|
|
|
+ return response.json(500, "生成失败")
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def device_scheme_list(user_id, request_dict, response):
|
|
|
+ """
|
|
|
+ 查询设备方案列表
|
|
|
+ @param request_dict: 请求参数
|
|
|
+ @param response: 响应对象
|
|
|
+ @return: 响应对象包含设备方案列表
|
|
|
+ """
|
|
|
+ serial_number = request_dict.get("serialNumber", None)
|
|
|
+ storage_code = request_dict.get("storageCode", None)
|
|
|
+ device_type = request_dict.get("deviceType", None)
|
|
|
+ phone_model = request_dict.get("phoneModel", None)
|
|
|
+ page = request_dict.get("page", 1)
|
|
|
+ page_size = request_dict.get("pageSize", 20)
|
|
|
+
|
|
|
+ try:
|
|
|
+ # 获取设备方案查询集
|
|
|
+ device_scheme_qs = DeviceScheme.objects.all()
|
|
|
+
|
|
|
+ # 过滤条件
|
|
|
+ if serial_number:
|
|
|
+ device_scheme_qs = device_scheme_qs.filter(serial_number=serial_number)
|
|
|
+ if storage_code:
|
|
|
+ device_scheme_qs = device_scheme_qs.filter(storage_code__icontains=storage_code)
|
|
|
+ if device_type:
|
|
|
+ device_scheme_qs = device_scheme_qs.filter(device_type=device_type)
|
|
|
+ if phone_model:
|
|
|
+ device_scheme_qs = device_scheme_qs.filter(phone_model__icontains=phone_model)
|
|
|
+
|
|
|
+ # 分页
|
|
|
+ paginator = Paginator(device_scheme_qs.order_by('-created_time'), page_size)
|
|
|
+ device_schemes = paginator.page(page)
|
|
|
+
|
|
|
+ # 构建返回数据
|
|
|
+ device_list = []
|
|
|
+ for device in device_schemes.object_list:
|
|
|
+ # 获取关联的产品方案信息
|
|
|
+ product_scheme = ProductsScheme.objects.filter(storage_code=device.storage_code).first()
|
|
|
+
|
|
|
+ device_data = {
|
|
|
+ 'id': device.id,
|
|
|
+ 'serialNumber': device.serial_number,
|
|
|
+ 'type':'NVR' if device.device_type == 1 else 'IPC',
|
|
|
+ 'phoneModel': device.phone_model,
|
|
|
+ 'storageCode': device.storage_code,
|
|
|
+ 'createdTime': device.created_time,
|
|
|
+ 'updatedTime': device.updated_time,
|
|
|
+ }
|
|
|
+ if product_scheme:
|
|
|
+ device_data.update({
|
|
|
+ 'orderNumber': product_scheme.order_number if product_scheme.order_number else '',
|
|
|
+ 'deviceType': product_scheme.device_type if product_scheme.device_type else '',
|
|
|
+ 'flash': product_scheme.flash if product_scheme.flash else '',
|
|
|
+ 'ddr': product_scheme.ddr if product_scheme.ddr else '',
|
|
|
+ 'mainController': product_scheme.main_controller if product_scheme.main_controller else '',
|
|
|
+ 'wifi': product_scheme.wifi if product_scheme.wifi else '',
|
|
|
+ 'fourG': product_scheme.four_g if product_scheme.four_g else '',
|
|
|
+ 'ad': product_scheme.ad if product_scheme.ad else '',
|
|
|
+ 'phy': product_scheme.phy if product_scheme.phy else '',
|
|
|
+ 'sensor': product_scheme.sensor if product_scheme.sensor else '',
|
|
|
+ 'orderQuantity': product_scheme.order_quantity if product_scheme.order_quantity else '',
|
|
|
+ 'customerCode': product_scheme.customer_code if product_scheme.customer_code else '',
|
|
|
+ 'remark': product_scheme.remark if product_scheme.remark else ''
|
|
|
+ })
|
|
|
+ device_list.append(device_data)
|
|
|
+
|
|
|
+ data = {
|
|
|
+ 'list': device_list,
|
|
|
+ 'total': paginator.count,
|
|
|
+ }
|
|
|
+
|
|
|
+ return response.json(0, data)
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|