From 34f487064b54951468eb0e3114cb1542a966c5f1 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 1 Feb 2024 13:57:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=9D=E6=AD=A5=E6=B7=BB=E5=8A=A0env?= =?UTF-8?q?data=E6=95=B0=E6=8D=AE=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/enp/serializers.py | 5 +++++ apps/enp/services.py | 1 + apps/enp/urls.py | 3 ++- apps/enp/views.py | 31 ++++++++++++++++++++++++++++--- 4 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 apps/enp/services.py diff --git a/apps/enp/serializers.py b/apps/enp/serializers.py index c674d190..0812fcae 100644 --- a/apps/enp/serializers.py +++ b/apps/enp/serializers.py @@ -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='导出类型') diff --git a/apps/enp/services.py b/apps/enp/services.py new file mode 100644 index 00000000..7301287e --- /dev/null +++ b/apps/enp/services.py @@ -0,0 +1 @@ +from openpyxl import load_workbook diff --git a/apps/enp/urls.py b/apps/enp/urls.py index 16577232..046efa73 100644 --- a/apps/enp/urls.py +++ b/apps/enp/urls.py @@ -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)), ] diff --git a/apps/enp/views.py b/apps/enp/views.py index 38faf03f..73c570f9 100644 --- a/apps/enp/views.py +++ b/apps/enp/views.py @@ -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()