标注坐标位置和批量绑定接口
This commit is contained in:
parent
e7267ffd04
commit
26d9c0ee70
|
@ -51,17 +51,16 @@ class RequestCommonSerializer(serializers.Serializer):
|
||||||
|
|
||||||
|
|
||||||
class BindAreaSerializer(serializers.Serializer):
|
class BindAreaSerializer(serializers.Serializer):
|
||||||
codes = serializers.ListField(child=serializers.CharField(), label='标识列表')
|
ids = serializers.ListField(child=serializers.CharField(), label='设备ID列表')
|
||||||
area = serializers.PrimaryKeyRelatedField(queryset=Area.objects.all(),
|
area = serializers.PrimaryKeyRelatedField(queryset=Area.objects.all(),
|
||||||
label="区域ID")
|
label="区域ID")
|
||||||
|
|
||||||
|
|
||||||
class LabelLocationSerializer(CustomModelSerializer):
|
class LabelLocationSerializer(CustomModelSerializer):
|
||||||
code = serializers.CharField(label='设备唯一标识')
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = TDevice
|
model = TDevice
|
||||||
fields = ['type', 'location', 'area', 'areas', 'name', 'code']
|
fields = ['location', 'area', 'areas']
|
||||||
|
|
||||||
|
|
||||||
class BindAreasSerializer(serializers.Serializer):
|
class BindAreasSerializer(serializers.Serializer):
|
||||||
|
|
|
@ -265,6 +265,6 @@ class DhCommonViewSet(CreateModelMixin, CustomGenericViewSet):
|
||||||
"""
|
"""
|
||||||
其他报警转到事件派发
|
其他报警转到事件派发
|
||||||
"""
|
"""
|
||||||
myLogger.info(data)
|
# myLogger.info(data)
|
||||||
dispatch_dahua_event(data=data)
|
dispatch_dahua_event(data=data)
|
||||||
return Response()
|
return Response()
|
||||||
|
|
|
@ -374,7 +374,7 @@ class TDeviceViewSet(ListModelMixin, UpdateModelMixin, DestroyModelMixin, Custom
|
||||||
i['my_info'] = tds_dict[i['channelCode']]
|
i['my_info'] = tds_dict[i['channelCode']]
|
||||||
return Response(res)
|
return Response(res)
|
||||||
|
|
||||||
@action(methods=['post'], detail=False, perms_map={'post': 'tdevice.label_location'},
|
@action(methods=['post'], detail=True, perms_map={'post': 'tdevice.label_location'},
|
||||||
serializer_class=LabelLocationSerializer)
|
serializer_class=LabelLocationSerializer)
|
||||||
def label_location(self, request):
|
def label_location(self, request):
|
||||||
"""
|
"""
|
||||||
|
@ -382,33 +382,38 @@ class TDeviceViewSet(ListModelMixin, UpdateModelMixin, DestroyModelMixin, Custom
|
||||||
|
|
||||||
标注坐标位置
|
标注坐标位置
|
||||||
"""
|
"""
|
||||||
serializer = self.get_serializer(data=request.data)
|
obj = self.get_object()
|
||||||
serializer.is_valid(raise_exception=True)
|
sr = LabelLocationSerializer(instance=obj, data=request.data)
|
||||||
vdata = serializer.validated_data
|
sr.is_valid(raise_exception=True)
|
||||||
td = TDevice.objects.filter(code=vdata['code']).first()
|
sr.save()
|
||||||
if td:
|
|
||||||
td.location = vdata['location']
|
|
||||||
td.type = vdata['type']
|
|
||||||
td.area = vdata['area']
|
|
||||||
td.name = vdata['name']
|
|
||||||
td.update_by = request.user
|
|
||||||
td.save()
|
|
||||||
td.areas.clear()
|
|
||||||
for i in vdata['areas']:
|
|
||||||
td.areas.add(i)
|
|
||||||
else:
|
|
||||||
td = TDevice()
|
|
||||||
td.type = vdata['type']
|
|
||||||
td.code = vdata['code']
|
|
||||||
td.location = vdata['location']
|
|
||||||
td.area = vdata['area']
|
|
||||||
td.name = vdata['name']
|
|
||||||
td.create_by = request.user
|
|
||||||
td.save()
|
|
||||||
td.areas.clear()
|
|
||||||
for i in vdata['areas']:
|
|
||||||
td.areas.add(i)
|
|
||||||
return Response()
|
return Response()
|
||||||
|
# serializer = self.get_serializer(data=request.data)
|
||||||
|
# serializer.is_valid(raise_exception=True)
|
||||||
|
# vdata = serializer.validated_data
|
||||||
|
# td = TDevice.objects.filter(code=vdata['code']).first()
|
||||||
|
# if td:
|
||||||
|
# td.location = vdata['location']
|
||||||
|
# td.type = vdata['type']
|
||||||
|
# td.area = vdata['area']
|
||||||
|
# td.name = vdata['name']
|
||||||
|
# td.update_by = request.user
|
||||||
|
# td.save()
|
||||||
|
# td.areas.clear()
|
||||||
|
# for i in vdata['areas']:
|
||||||
|
# td.areas.add(i)
|
||||||
|
# else:
|
||||||
|
# td = TDevice()
|
||||||
|
# td.type = vdata['type']
|
||||||
|
# td.code = vdata['code']
|
||||||
|
# td.location = vdata['location']
|
||||||
|
# td.area = vdata['area']
|
||||||
|
# td.name = vdata['name']
|
||||||
|
# td.create_by = request.user
|
||||||
|
# td.save()
|
||||||
|
# td.areas.clear()
|
||||||
|
# for i in vdata['areas']:
|
||||||
|
# td.areas.add(i)
|
||||||
|
# return Response()
|
||||||
|
|
||||||
@action(methods=['post'], detail=False, perms_map={'post': 'tdevice.bind_area'},
|
@action(methods=['post'], detail=False, perms_map={'post': 'tdevice.bind_area'},
|
||||||
serializer_class=BindAreaSerializer)
|
serializer_class=BindAreaSerializer)
|
||||||
|
@ -420,22 +425,24 @@ class TDeviceViewSet(ListModelMixin, UpdateModelMixin, DestroyModelMixin, Custom
|
||||||
"""
|
"""
|
||||||
serializer = self.get_serializer(data=request.data)
|
serializer = self.get_serializer(data=request.data)
|
||||||
serializer.is_valid(raise_exception=True)
|
serializer.is_valid(raise_exception=True)
|
||||||
vdata = serializer.vdata
|
vdata = serializer.validated_data
|
||||||
area = Area.objects.get(id=vdata['area'])
|
TDevice.objects.filter(id__in=vdata['ids']).update(area=vdata['area'])
|
||||||
for i in vdata['codes']:
|
|
||||||
td = TDevice.objects.filter(code=i['code']).first()
|
|
||||||
if td:
|
|
||||||
td.area = area
|
|
||||||
td.update_by = request.user
|
|
||||||
td.save()
|
|
||||||
else:
|
|
||||||
td = TDevice()
|
|
||||||
td.type = TDevice.DEVICE_VCHANNEL
|
|
||||||
td.code = i['code']
|
|
||||||
td.area = area
|
|
||||||
td.create_by = request.user
|
|
||||||
td.save()
|
|
||||||
return Response()
|
return Response()
|
||||||
|
# area = Area.objects.get(id=vdata['area'])
|
||||||
|
# for i in vdata['codes']:
|
||||||
|
# td = TDevice.objects.filter(code=i['code']).first()
|
||||||
|
# if td:
|
||||||
|
# td.area = area
|
||||||
|
# td.update_by = request.user
|
||||||
|
# td.save()
|
||||||
|
# else:
|
||||||
|
# td = TDevice()
|
||||||
|
# td.type = TDevice.DEVICE_VCHANNEL
|
||||||
|
# td.code = i['code']
|
||||||
|
# td.area = area
|
||||||
|
# td.create_by = request.user
|
||||||
|
# td.save()
|
||||||
|
# return Response()
|
||||||
|
|
||||||
|
|
||||||
class TlogViewSet(ListModelMixin, CustomGenericViewSet):
|
class TlogViewSet(ListModelMixin, CustomGenericViewSet):
|
||||||
|
|
Loading…
Reference in New Issue