feat: 增加氨水液位计 绑定字段up_down 计算方式
This commit is contained in:
parent
9c3cf5a534
commit
b8b1167f17
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 3.2.12 on 2025-01-16 03:22
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('enm', '0053_auto_20241225_1508'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='mpoint',
|
||||
name='up_down',
|
||||
field=models.BooleanField(default=False, verbose_name='上下行计算'),
|
||||
),
|
||||
]
|
|
@ -23,6 +23,7 @@ class Mpoint(CommonBModel):
|
|||
MG_OFFLINE = -2
|
||||
|
||||
type = models.PositiveSmallIntegerField("类型", default=MT_AUTO, help_text="10:自动采集, 20:计算测点, 30:手动录入")
|
||||
up_down = models.BooleanField("上下行计算", default=False)
|
||||
is_unit = models.BooleanField("是否单位量", default=False)
|
||||
name = models.CharField("测点名称", max_length=50)
|
||||
nickname = models.CharField("测点别名", max_length=50, null=True, blank=True)
|
||||
|
|
|
@ -185,6 +185,17 @@ def cal_mpointstat_hour(mpointId: str, year: int, month: int, day: int, hour: in
|
|||
val = MpLogx.objects.filter(mpoint=mpoint, timex__gte=dt, timex__lt=dt_hour_n).aggregate(sum=Sum(f'val_{mpoint.val_type}'))["sum"]
|
||||
if val is None:
|
||||
val = 0
|
||||
elif mpoint.up_down:
|
||||
mrs0 = MpLogx.objects.filter(mpoint=mpoint, timex__gte=dt_hour_p, timex__lte=dt).order_by("timex")
|
||||
mrs = MpLogx.objects.filter(mpoint=mpoint, timex__gte=dt, timex__lte=dt_hour_n).order_by("timex")
|
||||
if mrs0.exists() and mrs.exists():
|
||||
last_val = getattr(mrs.last(), f'val_{val_type}')
|
||||
first_val = getattr(mrs0.last(), f'val_{val_type}')
|
||||
if last_val <= first_val:
|
||||
val = first_val - last_val
|
||||
else:
|
||||
# 加入氨水 需要手动校正 ,目前先取绝对值。
|
||||
val = abs(first_val - last_val)
|
||||
else:
|
||||
mrs0 = MpLogx.objects.filter(mpoint=mpoint, timex__gte=dt_hour_p, timex__lte=dt).order_by("timex")
|
||||
mrs = MpLogx.objects.filter(mpoint=mpoint, timex__gte=dt, timex__lte=dt_hour_n).order_by("timex")
|
||||
|
|
Loading…
Reference in New Issue