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'
managed = False
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.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 rest_framework import serializers
from django.utils import timezone
@ -60,3 +60,11 @@ class DrainEquipEnvSerializer(CustomModelSerializer):
model = DrainEquip
fields = ['equipment', 'equipment_type',
'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 rest_framework.routers import DefaultRouter
from .views import DrainViewSet, DrainEquipViewSet
from .views import DrainViewSet, DrainEquipViewSet, VehicleAccessViewSet
API_BASE_URL = 'api/enp/'
HTML_BASE_URL = 'enp/'
@ -8,6 +8,8 @@ HTML_BASE_URL = 'enp/'
router = DefaultRouter()
router.register('drain', DrainViewSet, basename='drain')
router.register('drain_equip', DrainEquipViewSet, basename='drain_equip')
router.register('vehicle_access', VehicleAccessViewSet,
basename='vehicle_access')
urlpatterns = [
path(API_BASE_URL, include(router.urls)),
]

View File

@ -1,8 +1,8 @@
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
from .models import Drain, DrainEquip
from .serializers import DrainSerializer, DrainEquipSerializer, DrainEquipEnvSerializer, VehicleAccessSerializer
from .models import Drain, DrainEquip, VehicleAccess
from rest_framework.decorators import action
from apps.utils.sql import query_all_dict
from drf_yasg.utils import swagger_auto_schema
@ -45,3 +45,19 @@ class DrainEquipViewSet(ListModelMixin, BulkCreateModelMixin, BulkDestroyModelMi
])
def list(self, 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'],
}