feat: 初步添加envdata数据导出功能
This commit is contained in:
parent
0d79685b1e
commit
34f487064b
|
|
@ -72,3 +72,8 @@ class VehicleAccessSerializer(CustomModelSerializer):
|
||||||
model = VehicleAccess
|
model = VehicleAccess
|
||||||
fields = "__all__"
|
fields = "__all__"
|
||||||
read_only_fields = EXCLUDE_FIELDS_BASE
|
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 django.urls import path, include
|
||||||
from rest_framework.routers import DefaultRouter
|
from rest_framework.routers import DefaultRouter
|
||||||
from .views import DrainViewSet, DrainEquipViewSet, VehicleAccessViewSet
|
from .views import DrainViewSet, DrainEquipViewSet, VehicleAccessViewSet, EnvDataViewSet
|
||||||
|
|
||||||
API_BASE_URL = 'api/enp/'
|
API_BASE_URL = 'api/enp/'
|
||||||
HTML_BASE_URL = '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('drain_equip', DrainEquipViewSet, basename='drain_equip')
|
||||||
router.register('vehicle_access', VehicleAccessViewSet,
|
router.register('vehicle_access', VehicleAccessViewSet,
|
||||||
basename='vehicle_access')
|
basename='vehicle_access')
|
||||||
|
router.register('envdata', EnvDataViewSet, basename='envdata')
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path(API_BASE_URL, include(router.urls)),
|
path(API_BASE_URL, include(router.urls)),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,13 @@
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet, ListModelMixin
|
from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet, ListModelMixin
|
||||||
from apps.utils.mixins import BulkCreateModelMixin, BulkDestroyModelMixin
|
from apps.utils.mixins import BulkCreateModelMixin, BulkDestroyModelMixin
|
||||||
from .serializers import DrainSerializer, DrainEquipSerializer, DrainEquipEnvSerializer, VehicleAccessSerializer
|
from .serializers import DrainSerializer, DrainEquipSerializer, DrainEquipEnvSerializer, VehicleAccessSerializer, EnvDataSerializer, EnvDataExportSerializer
|
||||||
from .models import Drain, DrainEquip, VehicleAccess
|
from .models import Drain, DrainEquip, VehicleAccess, EnvData
|
||||||
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
|
||||||
from drf_yasg.utils import swagger_auto_schema
|
from drf_yasg.utils import swagger_auto_schema
|
||||||
from drf_yasg import openapi
|
from drf_yasg import openapi
|
||||||
|
from rest_framework.response import Response
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -32,7 +33,7 @@ class DrainEquipViewSet(ListModelMixin, BulkCreateModelMixin, BulkDestroyModelMi
|
||||||
serializer_class = DrainEquipSerializer
|
serializer_class = DrainEquipSerializer
|
||||||
select_related_fields = ['equipment', 'drain']
|
select_related_fields = ['equipment', 'drain']
|
||||||
filterset_fields = ['drain', 'equipment',
|
filterset_fields = ['drain', 'equipment',
|
||||||
'drain__mgroup', 'equipment__mgroup', 'drain__type']
|
'drain__mgroup', 'equipment__mgroup', 'drain__type', 'equipment__type']
|
||||||
|
|
||||||
def get_serializer_class(self):
|
def get_serializer_class(self):
|
||||||
has_envdata = self.request.query_params.get('has_envdata', 'no')
|
has_envdata = self.request.query_params.get('has_envdata', 'no')
|
||||||
|
|
@ -62,3 +63,27 @@ class VehicleAccessViewSet(ListModelMixin, CustomGenericViewSet):
|
||||||
"emission_standard": ['exact', 'in'],
|
"emission_standard": ['exact', 'in'],
|
||||||
"type": ['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