serializers.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. from rest_framework import serializers
  2. from .models import LocationStatistics, LocationGroupStatistics
  3. class LocationStatisticsSerializer(serializers.ModelSerializer):
  4. """货位统计序列化器"""
  5. warehouse_display = serializers.CharField(source='warehouse_name', read_only=True)
  6. layer_display = serializers.SerializerMethodField()
  7. class Meta:
  8. model = LocationStatistics
  9. fields = [
  10. 'id', 'warehouse_code', 'warehouse_name', 'warehouse_display', 'layer', 'layer_display',
  11. 't5_total', 't5_used', 't5_available',
  12. 't4_total', 't4_used', 't4_available',
  13. 's4_total', 's4_used', 's4_available',
  14. 't2_total', 't2_used', 't2_available',
  15. 't1_total', 't1_used', 't1_available',
  16. 'total_locations', 'total_used', 'total_available', 'utilization_rate',
  17. 'statistic_time', 'is_latest'
  18. ]
  19. def get_layer_display(self, obj):
  20. return f"{obj.layer}层"
  21. class LocationGroupStatisticsSerializer(serializers.ModelSerializer):
  22. """货位组统计序列化器"""
  23. warehouse_display = serializers.CharField(source='warehouse_name', read_only=True)
  24. layer_display = serializers.SerializerMethodField()
  25. class Meta:
  26. model = LocationGroupStatistics
  27. fields = [
  28. 'id', 'warehouse_code', 'warehouse_name', 'warehouse_display',
  29. 'layer', 'layer_display', 'location_group',
  30. 'total_locations', 'used_locations', 'available_locations', 'utilization_rate',
  31. 'location_type_breakdown', 'statistic_time'
  32. ]
  33. ordering = ['warehouse_code', 'layer', 'total_locations']
  34. def get_layer_display(self, obj):
  35. return f"{obj.layer}层"