标注坐标位置和批量绑定接口
This commit is contained in:
parent
e7267ffd04
commit
26d9c0ee70
|
@ -51,17 +51,16 @@ class RequestCommonSerializer(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(),
|
||||
label="区域ID")
|
||||
|
||||
|
||||
class LabelLocationSerializer(CustomModelSerializer):
|
||||
code = serializers.CharField(label='设备唯一标识')
|
||||
|
||||
class Meta:
|
||||
model = TDevice
|
||||
fields = ['type', 'location', 'area', 'areas', 'name', 'code']
|
||||
fields = ['location', 'area', 'areas']
|
||||
|
||||
|
||||
class BindAreasSerializer(serializers.Serializer):
|
||||
|
|
|
@ -265,6 +265,6 @@ class DhCommonViewSet(CreateModelMixin, CustomGenericViewSet):
|
|||
"""
|
||||
其他报警转到事件派发
|
||||
"""
|
||||
myLogger.info(data)
|
||||
# myLogger.info(data)
|
||||
dispatch_dahua_event(data=data)
|
||||
return Response()
|
||||
|
|
|
@ -374,7 +374,7 @@ class TDeviceViewSet(ListModelMixin, UpdateModelMixin, DestroyModelMixin, Custom
|
|||
i['my_info'] = tds_dict[i['channelCode']]
|
||||
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)
|
||||
def label_location(self, request):
|
||||
"""
|
||||
|
@ -382,33 +382,38 @@ class TDeviceViewSet(ListModelMixin, UpdateModelMixin, DestroyModelMixin, Custom
|
|||
|
||||
标注坐标位置
|
||||
"""
|
||||
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)
|
||||
obj = self.get_object()
|
||||
sr = LabelLocationSerializer(instance=obj, data=request.data)
|
||||
sr.is_valid(raise_exception=True)
|
||||
sr.save()
|
||||
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'},
|
||||
serializer_class=BindAreaSerializer)
|
||||
|
@ -420,22 +425,24 @@ class TDeviceViewSet(ListModelMixin, UpdateModelMixin, DestroyModelMixin, Custom
|
|||
"""
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
vdata = serializer.vdata
|
||||
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()
|
||||
vdata = serializer.validated_data
|
||||
TDevice.objects.filter(id__in=vdata['ids']).update(area=vdata['area'])
|
||||
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):
|
||||
|
|
Loading…
Reference in New Issue