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