factory/apps/enm/models.py

36 lines
1.8 KiB
Python

from django.db import models
from apps.utils.models import BaseModel, CommonBModel
class Mpoint(CommonBModel):
"""测点
"""
name = models.CharField('测点名称', max_length=50)
code = models.CharField('测点编号', max_length=50, unique=True)
unit = models.CharField('单位', max_length=50)
cate = models.CharField('分类', max_length=50, default='elec')
ep_monitored = models.ForeignKey('em.equipment', verbose_name='监测哪个设备', related_name='mp_ep_monitored', on_delete=models.SET_NULL, null=True, blank=True)
ep_belong = models.ForeignKey('em.equipment', verbose_name='属于哪个设备', related_name='mp_ep_belong', on_delete=models.SET_NULL, null=True, blank=True)
mgroup = models.ForeignKey('mtm.mgroup', verbose_name='所在集合', on_delete=models.SET_NULL, null=True, blank=True)
class MpLog(BaseModel):
"""测点原始记录
"""
mpoint = models.ForeignKey(Mpoint, verbose_name='关联测点', on_delete=models.SET_NULL, null=True, blank=True)
tag_id = models.BigIntegerField('记录ID', db_index=True)
tag_code = models.CharField('测点编号', max_length=50)
tag_update = models.DateTimeField('更新时间')
tag_val = models.FloatField('当前值')
class MpointStat(BaseModel):
"""测点统计表
"""
type = models.CharField('统计维度', max_length=50, default='hour', help_text='year/month/day/hour')
year = models.PositiveSmallIntegerField('')
month = models.PositiveSmallIntegerField('', null=True, blank=True)
day = models.PositiveSmallIntegerField('', null=True, blank=True)
hour = models.PositiveSmallIntegerField('', null=True, blank=True)
mpoint = models.ForeignKey(Mpoint, verbose_name='关联测点', on_delete=models.CASCADE)
val = models.FloatField('统计值', default=0)