feat: 初步添加envdata数据导出功能
This commit is contained in:
parent
0d79685b1e
commit
34f487064b
|
@ -72,3 +72,8 @@ class VehicleAccessSerializer(CustomModelSerializer):
|
|||
model = VehicleAccess
|
||||
fields = "__all__"
|
||||
read_only_fields = EXCLUDE_FIELDS_BASE
|
||||
|
||||
|
||||
class EnvDataExportSerializer(serializers.Serializer):
|
||||
time = serializers.DateTimeField(label='时间')
|
||||
type = serializers.CharField(label='导出类型')
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
from openpyxl import load_workbook
|
|
@ -1,6 +1,6 @@
|
|||
from django.urls import path, include
|
||||
from rest_framework.routers import DefaultRouter
|
||||
from .views import DrainViewSet, DrainEquipViewSet, VehicleAccessViewSet
|
||||
from .views import DrainViewSet, DrainEquipViewSet, VehicleAccessViewSet, EnvDataViewSet
|
||||
|
||||
API_BASE_URL = 'api/enp/'
|
||||
HTML_BASE_URL = 'enp/'
|
||||
|
@ -10,6 +10,7 @@ router.register('drain', DrainViewSet, basename='drain')
|
|||
router.register('drain_equip', DrainEquipViewSet, basename='drain_equip')
|
||||
router.register('vehicle_access', VehicleAccessViewSet,
|
||||
basename='vehicle_access')
|
||||
router.register('envdata', EnvDataViewSet, basename='envdata')
|
||||
urlpatterns = [
|
||||
path(API_BASE_URL, include(router.urls)),
|
||||
]
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
from django.shortcuts import render
|
||||
from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet, ListModelMixin
|
||||
from apps.utils.mixins import BulkCreateModelMixin, BulkDestroyModelMixin
|
||||
from .serializers import DrainSerializer, DrainEquipSerializer, DrainEquipEnvSerializer, VehicleAccessSerializer
|
||||
from .models import Drain, DrainEquip, VehicleAccess
|
||||
from .serializers import DrainSerializer, DrainEquipSerializer, DrainEquipEnvSerializer, VehicleAccessSerializer, EnvDataSerializer, EnvDataExportSerializer
|
||||
from .models import Drain, DrainEquip, VehicleAccess, EnvData
|
||||
from rest_framework.decorators import action
|
||||
from apps.utils.sql import query_all_dict
|
||||
from drf_yasg.utils import swagger_auto_schema
|
||||
from drf_yasg import openapi
|
||||
from rest_framework.response import Response
|
||||
# Create your views here.
|
||||
|
||||
|
||||
|
@ -32,7 +33,7 @@ class DrainEquipViewSet(ListModelMixin, BulkCreateModelMixin, BulkDestroyModelMi
|
|||
serializer_class = DrainEquipSerializer
|
||||
select_related_fields = ['equipment', 'drain']
|
||||
filterset_fields = ['drain', 'equipment',
|
||||
'drain__mgroup', 'equipment__mgroup', 'drain__type']
|
||||
'drain__mgroup', 'equipment__mgroup', 'drain__type', 'equipment__type']
|
||||
|
||||
def get_serializer_class(self):
|
||||
has_envdata = self.request.query_params.get('has_envdata', 'no')
|
||||
|
@ -62,3 +63,27 @@ class VehicleAccessViewSet(ListModelMixin, CustomGenericViewSet):
|
|||
"emission_standard": ['exact', 'in'],
|
||||
"type": ['exact', 'in'],
|
||||
}
|
||||
|
||||
|
||||
class EnvDataViewSet(ListModelMixin, CustomGenericViewSet):
|
||||
"""
|
||||
list: 环保时序数据
|
||||
|
||||
环保时序数据
|
||||
"""
|
||||
perms_map = {'get': '*'}
|
||||
queryset = EnvData.objects.all()
|
||||
serializer_class = EnvDataSerializer
|
||||
filterset_fields = {
|
||||
"time": ['exact', 'gte', 'lte', 'year', 'month', 'day'],
|
||||
"equipment": ['exact'],
|
||||
}
|
||||
|
||||
@action(methods=['post'], detail=False, perms_map={'post': '*'},
|
||||
serializer_class=EnvDataExportSerializer)
|
||||
def export_excel(self, request, *args, **kwargs):
|
||||
"""导出Excel
|
||||
|
||||
导出Excel
|
||||
"""
|
||||
return Response()
|
||||
|
|
Loading…
Reference in New Issue