factory/apps/third/serializers.py

101 lines
3.3 KiB
Python
Executable File

from rest_framework import serializers
from apps.am.models import Area
from apps.hrm.serializers import EmployeeBaseSerializer, EmployeeSimpleSerializer
from apps.third.models import BltBind, TDevice, Tlog
from apps.utils.serializers import CustomModelSerializer
from django.db import transaction
class PicSerializer(serializers.Serializer):
path = serializers.CharField(label='图片oss地址')
class TDeviceSerializer(CustomModelSerializer):
employee_ = EmployeeSimpleSerializer(source='employee', read_only=True)
area_name = serializers.CharField(source='area.name', read_only=True)
class Meta:
model = TDevice
fields = '__all__'
class TDeviceUpdateSerializer(CustomModelSerializer):
class Meta:
model = TDevice
fields = ['is_clock', 'access_list']
class TDeviceSimpleSerializer(CustomModelSerializer):
class Meta:
model = TDevice
fields = ['id', 'name', 'code']
class RequestCommonSerializer(serializers.Serializer):
method_choice = (
('post', 'post'),
('get', 'get'),
('put', 'put'),
('delete', 'delete')
)
url = serializers.CharField(label='请求地址', required=False)
method = serializers.ChoiceField(label='请求方法', choices=method_choice, required=False)
params = serializers.JSONField(label='请求参数', required=False, allow_null=True)
json = serializers.JSONField(label='请求body(json格式)', required=False, allow_null=True)
code = serializers.CharField(label='请求短标识', required=False, allow_null=True)
class BindAreaSerializer(serializers.Serializer):
codes = serializers.ListField(child=serializers.CharField(), label='标识列表')
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']
class BindAreasSerializer(serializers.Serializer):
type = serializers.CharField(label='设备类型')
codes = serializers.ListField(child=serializers.CharField(), label='标识列表')
areas = serializers.PrimaryKeyRelatedField(queryset=Area.objects.all(),
label="区域ID列表",
required=False, many=True)
class TlogSerializer(CustomModelSerializer):
class Meta:
model = Tlog
fields = '__all__'
class BltSerializer(serializers.ModelSerializer):
employee_ = EmployeeSimpleSerializer(source='employee', read_only=True)
class Meta:
model = TDevice
fields = ['code', 'obj_cate', 'employee', 'employee_', 'id']
class BltQuerySerializer(serializers.ModelSerializer):
class Meta:
model = TDevice
fields = ['area']
class BltBindCreateSerializer(serializers.ModelSerializer):
blt = serializers.PrimaryKeyRelatedField(queryset=TDevice.objects.filter(type=TDevice.DEVICE_BLT))
class Meta:
model = BltBind
fields = ['type', 'blt', 'employee']
class BltCreatesSerializer(serializers.Serializer):
macs = serializers.ListField(child=serializers.CharField(), label='标签mac列表')