feat: enp增加车辆出入记录
This commit is contained in:
parent
9ff3ee2040
commit
22978de879
|
@ -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,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)),
|
||||||
]
|
]
|
||||||
|
|
|
@ -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'],
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue