From 76f5d12b34e7af24ff99d1b4b99ec31bc45d643f Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 3 Apr 2024 16:45:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20envdata=E7=94=9F=E6=88=90=E6=A8=A1?= =?UTF-8?q?=E6=8B=9F=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/enp/tasks.py | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/apps/enp/tasks.py b/apps/enp/tasks.py index 8a5d3aed..e8136ace 100644 --- a/apps/enp/tasks.py +++ b/apps/enp/tasks.py @@ -2,12 +2,57 @@ from __future__ import absolute_import, unicode_literals from datetime import timedelta from apps.utils.tasks import CustomTask +from django.utils import timezone from celery import shared_task +from .models import DrainEquip, EnvData +from apps.em.models import Equipment +import random @shared_task(base=CustomTask) def generate_envdata(): - pass + """生成模拟数据 + """ + now = timezone.now() + eIds = DrainEquip.objects.values_list('equipment__id', flat=True) + equips = Equipment.objects.filter(id__in=eIds)|Equipment.objects.filter(cate__code='aqms') + save_list = [] + for equip in equips: + default_dict = {"equipment": equip, "time": now, "is_online": 1, "running_state": 10} + if equip.cate and equip.cate.code in ["cems", "aqms", "tsp"]: + if equip.cate.code == "cems": + dust_rtd = random.uniform(0.1, 0.3) + default_dict["dust_rtd"] = dust_rtd + default_dict["dust_zs"] = dust_rtd + so2_rtd = random.uniform(0.1, 2) + default_dict["so2_rtd"] = so2_rtd + default_dict["so2_zs"] = so2_rtd + nox_rtd = random.uniform(0.1, 2) + default_dict["nox_rtd"] = nox_rtd + default_dict["nox_zs"] = nox_rtd + default_dict["temperature"] = random.uniform(12, 30) + default_dict["pressure"] = random.uniform(-0.06, 0.1) + default_dict["speed"] = random.uniform(8, 13) + default_dict["humidity"] = random.uniform(1, 1.2) + default_dict["flux"] = random.uniform(2000, 3000) + elif equip.cate.code == "tsp": + default_dict["tsp"] = random.uniform(0.01, 0.04) + default_dict["temperature"] = random.uniform(12, 30) + default_dict["humidity"] = random.uniform(30, 40) + elif equip.cate.code == 'aqms': + default_dict['pm25'] = random.uniform(8, 12) + default_dict["pm10"] = random.uniform(26, 35) + default_dict["temperature"] = random.uniform(12, 30) + default_dict["humidity"] = random.uniform(30, 40) + default_dict["wind_speed"] = random.uniform(0.1, 1) + default_dict["wind_direction"] = 1 + equip.is_online = 1 + equip.running_state = 10 + equip.save() + save_list.append(EnvData(**default_dict)) + EnvData.objects.bulk_create(save_list) + + @shared_task(base=CustomTask)