feat: enp增加车辆出入记录

This commit is contained in:
caoqianming 2024-01-29 16:38:00 +08:00
parent 9ff3ee2040
commit 22978de879
5 changed files with 80 additions and 4 deletions

View File

@ -0,0 +1,40 @@
# Generated by Django 3.2.12 on 2024-01-29 08:36
from django.db import migrations, models
import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
('enp', '0003_auto_20240119_1620'),
]
operations = [
migrations.CreateModel(
name='VehicleAccess',
fields=[
('id', models.CharField(editable=False, help_text='主键ID', max_length=20,
primary_key=True, serialize=False, verbose_name='主键ID')),
('create_time', models.DateTimeField(
default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
('update_time', models.DateTimeField(
auto_now=True, help_text='修改时间', verbose_name='修改时间')),
('is_deleted', models.BooleanField(
default=False, help_text='删除标记', verbose_name='删除标记')),
('type', models.PositiveSmallIntegerField(
default=1, help_text='1: 进厂, 2: 出厂', verbose_name='出入类型')),
('vehicle_number', models.CharField(
max_length=10, verbose_name='车牌号')),
('acess_time', models.DateTimeField(
blank=True, null=True, verbose_name='出入时间')),
('emission_standard', models.CharField(blank=True,
max_length=10, null=True, verbose_name='排放标准')),
('door_name', models.CharField(blank=True,
max_length=10, null=True, verbose_name='门禁名称')),
],
options={
'abstract': False,
},
),
]

View File

@ -115,3 +115,13 @@ class EnvData(models.Model):
db_table = 'enp_envdata' db_table = 'enp_envdata'
managed = False managed = False
unique_together = (('equipment', 'time'), ) unique_together = (('equipment', 'time'), )
class VehicleAccess(BaseModel):
type = models.PositiveSmallIntegerField(
'出入类型', default=1, help_text='1: 进厂, 2: 出厂')
vehicle_number = models.CharField('车牌号', max_length=10)
acess_time = models.DateTimeField('出入时间', null=True, blank=True)
emission_standard = models.CharField(
'排放标准', max_length=10, null=True, blank=True)
door_name = models.CharField('门禁名称', max_length=10, null=True, blank=True)

View File

@ -1,6 +1,6 @@
from apps.utils.serializers import CustomModelSerializer from apps.utils.serializers import CustomModelSerializer
from apps.utils.constants import EXCLUDE_FIELDS_BASE, EXCLUDE_FIELDS_DEPT from apps.utils.constants import EXCLUDE_FIELDS_BASE, EXCLUDE_FIELDS_DEPT
from .models import Drain, DrainEquip, EnvData from .models import Drain, DrainEquip, EnvData, VehicleAccess
from apps.em.serializers import EquipmentSerializer from apps.em.serializers import EquipmentSerializer
from rest_framework import serializers from rest_framework import serializers
from django.utils import timezone from django.utils import timezone
@ -60,3 +60,11 @@ class DrainEquipEnvSerializer(CustomModelSerializer):
model = DrainEquip model = DrainEquip
fields = ['equipment', 'equipment_type', fields = ['equipment', 'equipment_type',
'equipment_name', 'equipment_envdata'] 'equipment_name', 'equipment_envdata']
class VehicleAccessSerializer(CustomModelSerializer):
"""Serializer for VehicleAccess model"""
class Meta:
model = VehicleAccess
fields = "__all__"
read_only_fields = EXCLUDE_FIELDS_BASE

View File

@ -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 from .views import DrainViewSet, DrainEquipViewSet, VehicleAccessViewSet
API_BASE_URL = 'api/enp/' API_BASE_URL = 'api/enp/'
HTML_BASE_URL = 'enp/' HTML_BASE_URL = 'enp/'
@ -8,6 +8,8 @@ HTML_BASE_URL = 'enp/'
router = DefaultRouter() router = DefaultRouter()
router.register('drain', DrainViewSet, basename='drain') 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,
basename='vehicle_access')
urlpatterns = [ urlpatterns = [
path(API_BASE_URL, include(router.urls)), path(API_BASE_URL, include(router.urls)),
] ]

View File

@ -1,8 +1,8 @@
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 from .serializers import DrainSerializer, DrainEquipSerializer, DrainEquipEnvSerializer, VehicleAccessSerializer
from .models import Drain, DrainEquip from .models import Drain, DrainEquip, VehicleAccess
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
@ -45,3 +45,19 @@ class DrainEquipViewSet(ListModelMixin, BulkCreateModelMixin, BulkDestroyModelMi
]) ])
def list(self, request, *args, **kwargs): def list(self, request, *args, **kwargs):
return super().list(request, *args, **kwargs) return super().list(request, *args, **kwargs)
class VehicleAccessViewSet(ListModelMixin, CustomGenericViewSet):
"""
list: 车辆出入记录
车辆出入记录
"""
perms_map = {'get': '*'}
queryset = VehicleAccess.objects.all()
serializer_class = VehicleAccessSerializer
filterset_fields = {
"vehicle_number": ['icontains'],
"emission_standard": ['exact', 'in'],
"type": ['exact', 'in'],
}