from rest_framework import serializers from .models import LocationStatistics, LocationGroupStatistics class LocationStatisticsSerializer(serializers.ModelSerializer): """货位统计序列化器""" warehouse_display = serializers.CharField(source='warehouse_name', read_only=True) layer_display = serializers.SerializerMethodField() class Meta: model = LocationStatistics fields = [ 'id', 'warehouse_code', 'warehouse_name', 'warehouse_display', 'layer', 'layer_display', 't5_total', 't5_used', 't5_available', 't4_total', 't4_used', 't4_available', 's4_total', 's4_used', 's4_available', 't2_total', 't2_used', 't2_available', 't1_total', 't1_used', 't1_available', 'total_locations', 'total_used', 'total_available', 'utilization_rate', 'statistic_time', 'is_latest' ] def get_layer_display(self, obj): return f"{obj.layer}层" class LocationGroupStatisticsSerializer(serializers.ModelSerializer): """货位组统计序列化器""" warehouse_display = serializers.CharField(source='warehouse_name', read_only=True) layer_display = serializers.SerializerMethodField() class Meta: model = LocationGroupStatistics fields = [ 'id', 'warehouse_code', 'warehouse_name', 'warehouse_display', 'layer', 'layer_display', 'location_group', 'total_locations', 'used_locations', 'available_locations', 'utilization_rate', 'location_type_breakdown', 'statistic_time' ] ordering = ['warehouse_code', 'layer', 'total_locations'] def get_layer_display(self, obj): return f"{obj.layer}层"