From 00dfebd0c93bf249eb1dca1967fb3ff58e3ccc4d Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 21 Feb 2024 08:56:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20carwash=E6=A8=A1=E6=8B=9F=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/enp/migrations/0006_carwash_duration.py | 18 ++++++++++++ apps/enp/mock.py | 30 ++++++++++++++++++++ apps/enp/models.py | 1 + 3 files changed, 49 insertions(+) create mode 100644 apps/enp/migrations/0006_carwash_duration.py create mode 100644 apps/enp/mock.py diff --git a/apps/enp/migrations/0006_carwash_duration.py b/apps/enp/migrations/0006_carwash_duration.py new file mode 100644 index 00000000..e42206bd --- /dev/null +++ b/apps/enp/migrations/0006_carwash_duration.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2024-02-20 05:14 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enp', '0005_carwash'), + ] + + operations = [ + migrations.AddField( + model_name='carwash', + name='duration', + field=models.PositiveIntegerField(blank=True, null=True, verbose_name='洗车时长(s)'), + ), + ] diff --git a/apps/enp/mock.py b/apps/enp/mock.py new file mode 100644 index 00000000..ee0943cb --- /dev/null +++ b/apps/enp/mock.py @@ -0,0 +1,30 @@ +import random +from django.utils import timezone +from .models import CarWash +from apps.em.models import Equipment +from apps.utils.snowflake import idWorker + + +def generate_carwash_data(num_objects): + station = Equipment.objects.get(id='3519522742859161600') + vehicle_numbers = ['ABC123', 'DEF456', 'GHI789', 'JKL012', 'MNO345'] + start_times = [timezone.now() - timezone.timedelta(seconds=n) + for n in range(10, 61, 10)] + end_times = [start_time + timezone.timedelta( + seconds=random.randint(15, 45)) for start_time in start_times] + pressures = [round(random.uniform(3.0, 5.0), 2) + for _ in range(num_objects)] + fluxes = [round(random.uniform(10.0, 15.0), 2) for _ in range(num_objects)] + for i in range(num_objects): + start_time = start_times[i % len(start_times)] + end_time = end_times[i % len(end_times)] + CarWash.objects.create( + id=idWorker.get_id(), + station=station, + vehicle_number=vehicle_numbers[i % len(vehicle_numbers)], + start_time=start_time, + end_time=end_time, + duration=(end_time-start_time).total_seconds(), + pressure=pressures[i], + flux=fluxes[i] + ) diff --git a/apps/enp/models.py b/apps/enp/models.py index 03bfd355..32845355 100644 --- a/apps/enp/models.py +++ b/apps/enp/models.py @@ -133,6 +133,7 @@ class CarWash(BaseModel): vehicle_number = models.CharField('车牌号', max_length=10, default='') start_time = models.DateTimeField('洗车时间', null=True, blank=True) end_time = models.DateTimeField('洗车完成时间', null=True, blank=True) + duration = models.PositiveIntegerField('洗车时长(s)', null=True, blank=True) pressure = models.DecimalField( '洗车压力(Mpa)', max_digits=10, decimal_places=4, null=True, blank=True) flux = models.DecimalField(