feat: 初步添加envdata数据导出功能

This commit is contained in:
caoqianming 2024-02-01 13:57:54 +08:00
parent 0d79685b1e
commit 34f487064b
4 changed files with 36 additions and 4 deletions

View File

@ -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='导出类型')

1
apps/enp/services.py Normal file
View File

@ -0,0 +1 @@
from openpyxl import load_workbook

View File

@ -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)),
]

View File

@ -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()