|
|
|
@ -13,11 +13,11 @@ from app.serializers import ServerSerializer, AlgModelSerializer, EnterpriseSeri
|
|
|
|
|
DeviceClassificationSerializer, WarningStatisticsSerializer, EnterpriseNodeSerializer, ComputeConfigSerializer, \
|
|
|
|
|
ModelVersionSerializer, EnterpriseAlertDeviceSerializer, ModelHubSerializer, EnterpriseBusiModelSerializer, \
|
|
|
|
|
EnterpriseBusiModelNodeSerializer, EnterpriseBusiModelNodeDeviceSerializer, ServerLogSerializer, \
|
|
|
|
|
ModelClassificationSerializer, FilesSerializer, MessageSerializer
|
|
|
|
|
ModelClassificationSerializer, FilesSerializer, MessageSerializer, WorkshopSerializer, WorkshopDeviceSerializer
|
|
|
|
|
from app.models import ServerModel, AlgModelModel, EnterpriseModel, EnterpriseDeviceModel, DeviceClassificationModel, \
|
|
|
|
|
WarningStatisticsModel, EnterpriseNodeModel, ComputeConfigModel, ModelVersionModel, EnterpriseAlertDeviceModel, \
|
|
|
|
|
ModelHubModel, EnterpriseBusiModelModel, EnterpriseBusiModelNodeModel, EnterpriseBusiModelNodeDeviceModel, \
|
|
|
|
|
ServerLogModel, ModelClassificationModel, FilesModel, MessageModel
|
|
|
|
|
ServerLogModel, ModelClassificationModel, FilesModel, MessageModel, WorkshopModel, WorkshopDeviceModel
|
|
|
|
|
|
|
|
|
|
logger = logging.getLogger('mylogger')
|
|
|
|
|
|
|
|
|
@ -2063,3 +2063,218 @@ class ClassifyWarningsModelViewSet(ModelViewSet):
|
|
|
|
|
"success": True,
|
|
|
|
|
"status": 200
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class WorkshopModelViewSet(ModelViewSet):
|
|
|
|
|
# 查询类
|
|
|
|
|
queryset = WorkshopModel.objects.all().order_by("id")
|
|
|
|
|
# 序列化类
|
|
|
|
|
serializer_class = WorkshopSerializer
|
|
|
|
|
# 分页类
|
|
|
|
|
pagination_class = MyPageNumberPagination
|
|
|
|
|
|
|
|
|
|
def list(self, request, *args, **kwargs):
|
|
|
|
|
data = request.query_params
|
|
|
|
|
obj_id = data.get("id")
|
|
|
|
|
status = data.get("status", 0)
|
|
|
|
|
|
|
|
|
|
if status in (0, 1):
|
|
|
|
|
self.queryset = self.queryset.filter(status=status)
|
|
|
|
|
|
|
|
|
|
if not obj_id:
|
|
|
|
|
return Response({
|
|
|
|
|
"data": super().list(request, *args, **kwargs).data,
|
|
|
|
|
"msg": None,
|
|
|
|
|
"success": True,
|
|
|
|
|
"status": 200
|
|
|
|
|
})
|
|
|
|
|
else:
|
|
|
|
|
try:
|
|
|
|
|
instance = self.queryset.filter(id=obj_id).get()
|
|
|
|
|
except Exception as e:
|
|
|
|
|
logger.error(f"查询对象报错:{e}")
|
|
|
|
|
return Response({"msg": "该对象不存在", "status": 400, "success": False, "data": None})
|
|
|
|
|
|
|
|
|
|
serializer = self.get_serializer(instance)
|
|
|
|
|
return Response({
|
|
|
|
|
"data": serializer.data,
|
|
|
|
|
"msg": None,
|
|
|
|
|
"success": True,
|
|
|
|
|
"status": 200
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
def create(self, request, *args, **kwargs):
|
|
|
|
|
data = request.data
|
|
|
|
|
obj_id = data.get("id")
|
|
|
|
|
if not obj_id:
|
|
|
|
|
serializer = self.get_serializer(data=request.data)
|
|
|
|
|
serializer.is_valid(raise_exception=True)
|
|
|
|
|
self.perform_create(serializer)
|
|
|
|
|
headers = self.get_success_headers(serializer.data)
|
|
|
|
|
# return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
|
|
|
|
|
return Response({
|
|
|
|
|
"data": serializer.data,
|
|
|
|
|
"msg": None,
|
|
|
|
|
"success": True,
|
|
|
|
|
"status": 200
|
|
|
|
|
}, headers=headers)
|
|
|
|
|
else:
|
|
|
|
|
partial = kwargs.pop('partial', True)
|
|
|
|
|
try:
|
|
|
|
|
instance = self.queryset.filter(id=obj_id).get()
|
|
|
|
|
except Exception as e:
|
|
|
|
|
logger.error(f"查询对象报错:{e}")
|
|
|
|
|
return Response({"msg": "该对象不存在", "status": 400, "success": False, "data": None})
|
|
|
|
|
|
|
|
|
|
serializer = self.get_serializer(instance, data=request.data, partial=partial)
|
|
|
|
|
serializer.is_valid(raise_exception=True)
|
|
|
|
|
self.perform_update(serializer)
|
|
|
|
|
if getattr(instance, '_prefetched_objects_cache', None):
|
|
|
|
|
instance._prefetched_objects_cache = {}
|
|
|
|
|
|
|
|
|
|
# 同步删除所有相关联记录
|
|
|
|
|
if data.get("status") in (1, "1"):
|
|
|
|
|
WorkshopDeviceModel.objects.filter(workshop_id=obj_id).all().update(status=1)
|
|
|
|
|
|
|
|
|
|
return Response({
|
|
|
|
|
"data": serializer.data,
|
|
|
|
|
"msg": None,
|
|
|
|
|
"success": True,
|
|
|
|
|
"status": 200
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class WorkshopDeviceModelViewSet(ModelViewSet):
|
|
|
|
|
# 查询类
|
|
|
|
|
queryset = WorkshopDeviceModel.objects.all().order_by("id")
|
|
|
|
|
# 序列化类
|
|
|
|
|
serializer_class = WorkshopDeviceSerializer
|
|
|
|
|
# 分页类
|
|
|
|
|
pagination_class = MyPageNumberPagination
|
|
|
|
|
|
|
|
|
|
def list(self, request, *args, **kwargs):
|
|
|
|
|
data = request.query_params
|
|
|
|
|
obj_id = data.get("id")
|
|
|
|
|
status = data.get("status", 0)
|
|
|
|
|
workshop_id = data.get("workshop_id")
|
|
|
|
|
|
|
|
|
|
if status in (0, 1):
|
|
|
|
|
self.queryset = self.queryset.filter(status=status)
|
|
|
|
|
|
|
|
|
|
if workshop_id:
|
|
|
|
|
self.queryset = self.queryset.filter(workshop_id=workshop_id)
|
|
|
|
|
|
|
|
|
|
if not obj_id:
|
|
|
|
|
return Response({
|
|
|
|
|
"data": super().list(request, *args, **kwargs).data,
|
|
|
|
|
"msg": None,
|
|
|
|
|
"success": True,
|
|
|
|
|
"status": 200
|
|
|
|
|
})
|
|
|
|
|
else:
|
|
|
|
|
try:
|
|
|
|
|
instance = self.queryset.filter(id=obj_id).get()
|
|
|
|
|
except Exception as e:
|
|
|
|
|
logger.error(f"查询对象报错:{e}")
|
|
|
|
|
return Response({"msg": "该对象不存在", "status": 400, "success": False, "data": None})
|
|
|
|
|
|
|
|
|
|
serializer = self.get_serializer(instance)
|
|
|
|
|
return Response({
|
|
|
|
|
"data": serializer.data,
|
|
|
|
|
"msg": None,
|
|
|
|
|
"success": True,
|
|
|
|
|
"status": 200
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
def create(self, request, *args, **kwargs):
|
|
|
|
|
data = request.data
|
|
|
|
|
obj_id = data.get("id") or data.get("wd_id")
|
|
|
|
|
# 设备重复绑定
|
|
|
|
|
# device_id = data.get("device_id")
|
|
|
|
|
# workshop_id = data.get("workshop_id")
|
|
|
|
|
# exist_obj = self.queryset.filter(device_id=device_id).last()
|
|
|
|
|
# if exist_obj:
|
|
|
|
|
# if exist_obj.workshop_id == workshop_id:
|
|
|
|
|
# obj_id = obj_id if obj_id else exist_obj.id
|
|
|
|
|
|
|
|
|
|
if not obj_id:
|
|
|
|
|
# exist_id = data.get("wd_id")
|
|
|
|
|
# WorkshopDeviceModel.objects.filter(id=exist_id).update(status=1)
|
|
|
|
|
|
|
|
|
|
serializer = self.get_serializer(data=request.data)
|
|
|
|
|
serializer.is_valid(raise_exception=True)
|
|
|
|
|
self.perform_create(serializer)
|
|
|
|
|
headers = self.get_success_headers(serializer.data)
|
|
|
|
|
return Response({
|
|
|
|
|
"data": serializer.data,
|
|
|
|
|
"msg": "新增成功",
|
|
|
|
|
"success": True,
|
|
|
|
|
"status": 200
|
|
|
|
|
}, headers=headers)
|
|
|
|
|
else:
|
|
|
|
|
partial = kwargs.pop('partial', True)
|
|
|
|
|
try:
|
|
|
|
|
instance = self.queryset.filter(id=obj_id).get()
|
|
|
|
|
except Exception as e:
|
|
|
|
|
logger.error(f"查询对象报错:{e}")
|
|
|
|
|
return Response({"msg": "该对象不存在", "status": 400, "success": False, "data": None})
|
|
|
|
|
|
|
|
|
|
serializer = self.get_serializer(instance, data=request.data, partial=partial)
|
|
|
|
|
serializer.is_valid(raise_exception=True)
|
|
|
|
|
self.perform_update(serializer)
|
|
|
|
|
if getattr(instance, '_prefetched_objects_cache', None):
|
|
|
|
|
instance._prefetched_objects_cache = {}
|
|
|
|
|
|
|
|
|
|
return Response({
|
|
|
|
|
"data": serializer.data,
|
|
|
|
|
"msg": "编辑成功",
|
|
|
|
|
"success": True,
|
|
|
|
|
"status": 200
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
def destroy(self, request, *args, **kwargs):
|
|
|
|
|
|
|
|
|
|
data = request.data
|
|
|
|
|
ids = data.get("ids")
|
|
|
|
|
self.queryset.filter(id__in=ids).all().update(status=1)
|
|
|
|
|
|
|
|
|
|
return Response({
|
|
|
|
|
"data": None,
|
|
|
|
|
"msg": "删除成功",
|
|
|
|
|
"success": True,
|
|
|
|
|
"status": 200
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
def get_devices(self, request, *args, **kwargs):
|
|
|
|
|
|
|
|
|
|
device_ids_dict = dict()
|
|
|
|
|
# device_ids = self.queryset.filter(status=0).order_by("id").values("device_id", "id")
|
|
|
|
|
wd_objs = self.queryset.filter(status=0).order_by("id").all()
|
|
|
|
|
|
|
|
|
|
wd_objs_serializer = self.get_serializer(wd_objs, many=True)
|
|
|
|
|
|
|
|
|
|
for obj in wd_objs_serializer.data:
|
|
|
|
|
device_ids_dict[obj.get("device_id")] = obj
|
|
|
|
|
|
|
|
|
|
queryset = EnterpriseDeviceModel.objects.all()
|
|
|
|
|
serializer = EnterpriseDeviceSerializer(queryset, many=True)
|
|
|
|
|
|
|
|
|
|
res = []
|
|
|
|
|
|
|
|
|
|
for i in serializer.data:
|
|
|
|
|
if i.get("id") in device_ids_dict:
|
|
|
|
|
i["is_binding"] = True
|
|
|
|
|
i["wd_id"] = device_ids_dict[i.get("id")].get("id")
|
|
|
|
|
i["workshop_name"] = device_ids_dict[i.get("id")].get("workshop_name")
|
|
|
|
|
else:
|
|
|
|
|
i["is_binding"] = False
|
|
|
|
|
|
|
|
|
|
res.append(i)
|
|
|
|
|
|
|
|
|
|
return Response({
|
|
|
|
|
"data": res,
|
|
|
|
|
"msg": None,
|
|
|
|
|
"success": True,
|
|
|
|
|
"status": 200
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|