feat: drain serializer增加返回序列化
This commit is contained in:
parent
3f32390fb2
commit
e2c44f06c4
|
@ -24,23 +24,23 @@ class DrainSerializer(CustomModelSerializer):
|
|||
return super().validate(attrs)
|
||||
|
||||
|
||||
class Drain2Serializer(CustomModelSerializer):
|
||||
class DrainWithEquipBaseSerializer(DrainSerializer):
|
||||
equip_data = serializers.SerializerMethodField()
|
||||
mgroup_name = serializers.CharField(source="mgroup.name", read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = Drain
|
||||
fields = "__all__"
|
||||
read_only_fields = EXCLUDE_FIELDS_DEPT
|
||||
def get_equip_data(self, obj):
|
||||
equips = obj.equipments.all()
|
||||
odata = equips.values("id", "number", "name", "type", "running_state")
|
||||
return odata
|
||||
|
||||
class DrainWithEquipEnpSerializer(DrainSerializer):
|
||||
equip_data = serializers.SerializerMethodField()
|
||||
|
||||
def get_equip_data(self, obj):
|
||||
equips = obj.equipments.all()
|
||||
now = datetime.now()
|
||||
today = str(now)[:10] + " 00:00:00"
|
||||
today_last = str(now)[:10] + " 23:59:59"
|
||||
odata = equips.values("id", "name", "type", "running_state")
|
||||
# eids = [f"'{e['id']}'" for e in odata]
|
||||
# eids_str = ",".join(eids)
|
||||
odata = equips.values("id", "number", "name", "type", "running_state")
|
||||
for i in odata:
|
||||
i.update(
|
||||
{
|
||||
|
@ -53,11 +53,6 @@ class Drain2Serializer(CustomModelSerializer):
|
|||
equipment_id = i["id"]
|
||||
sql_str = duration_hour_one_equip.format(equipment_id=equipment_id, start_time=today, end_time=today_last)
|
||||
res = query_all_dict(sql_str)
|
||||
# data = {}
|
||||
# for i in res:
|
||||
# data[i["equipment_id"]] = i
|
||||
|
||||
# for i in odata:
|
||||
if res:
|
||||
i.update(res[0])
|
||||
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
from django.shortcuts import render
|
||||
from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet
|
||||
from apps.utils.mixins import BulkCreateModelMixin, BulkDestroyModelMixin, CustomListModelMixin
|
||||
from .serializers import DrainSerializer, DrainEquipSerializer, DrainEquipEnvSerializer, VehicleAccessSerializer, EnvDataSerializer, EnvDataExportSerializer, CarWashSerializer, Drain2Serializer
|
||||
from .serializers import (DrainSerializer, DrainEquipSerializer, DrainEquipEnvSerializer,
|
||||
VehicleAccessSerializer, EnvDataSerializer, EnvDataExportSerializer,
|
||||
CarWashSerializer, DrainWithEquipEnpSerializer, DrainWithEquipBaseSerializer)
|
||||
from .models import Drain, DrainEquip, VehicleAccess, EnvData, CarWash
|
||||
from rest_framework.decorators import action
|
||||
from apps.utils.sql import query_all_dict
|
||||
|
@ -25,9 +27,12 @@ class DrainViewSet(CustomModelViewSet):
|
|||
select_related_fields = ["mgroup"]
|
||||
|
||||
def get_serializer_class(self):
|
||||
has_equipdata = self.request.query_params.get("has_equipdata", "no")
|
||||
if self.request.method == "GET" and has_equipdata == "yes":
|
||||
return Drain2Serializer
|
||||
equip_data = self.request.query_params.get("equip_data", "no")
|
||||
if self.request.method == "GET":
|
||||
if equip_data == "base":
|
||||
return DrainWithEquipEnpSerializer
|
||||
elif equip_data == "enp":
|
||||
return DrainWithEquipBaseSerializer
|
||||
return super().get_serializer_class()
|
||||
|
||||
@swagger_auto_schema(
|
||||
|
|
Loading…
Reference in New Issue