62 lines
3.5 KiB
Python
62 lines
3.5 KiB
Python
|
from .choices import *
|
||
|
|
||
|
|
||
|
class WarningSetting(models.Model):
|
||
|
name = models.CharField(max_length=64, blank=True, verbose_name="报警名称")
|
||
|
uid = models.IntegerField(verbose_name="用户id")
|
||
|
setting_type = models.IntegerField(verbose_name='配置类型', choices=WarningSettingTypeChoices.choices,
|
||
|
default=WarningSettingTypeChoices.DINGDING)
|
||
|
setting = models.JSONField(verbose_name='配置')
|
||
|
create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
||
|
update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
||
|
is_delete = models.BooleanField(default=False, verbose_name="是否删除")
|
||
|
|
||
|
class Meta:
|
||
|
db_table = 'py_warning_setting'
|
||
|
verbose_name = '报警配置'
|
||
|
ordering = ['-create_time']
|
||
|
|
||
|
|
||
|
class WarningLog(models.Model):
|
||
|
uid = models.IntegerField(verbose_name="用户id")
|
||
|
text = models.TextField(verbose_name='报警文字内容')
|
||
|
warning_setting = models.ForeignKey(WarningSetting, on_delete=models.DO_NOTHING, db_constraint=False,
|
||
|
verbose_name='报警配置', related_name='warning_logs')
|
||
|
status = models.IntegerField(verbose_name='报警状态', choices=WarningLogStatusChoices.choices,
|
||
|
default=WarningLogStatusChoices.CREATED)
|
||
|
next_warning_time = models.DateTimeField(verbose_name='下次报警时间', null=True, blank=True)
|
||
|
end_time = models.DateTimeField(verbose_name='截至时间', null=True, blank=True)
|
||
|
warning_interval = models.IntegerField(verbose_name='报警间隔', default=1)
|
||
|
log_type = models.IntegerField(verbose_name='日志类型', choices=WarningLogTypeChoices.choices, default=WarningLogTypeChoices.FAN_WARNING)
|
||
|
log_info = models.JSONField(null=True, blank=True, verbose_name='日志信息')
|
||
|
latest_warning_time = models.DateTimeField(verbose_name="最近报警时间", null=True, blank=True)
|
||
|
create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
||
|
update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
||
|
is_delete = models.BooleanField(default=False, verbose_name="是否删除")
|
||
|
|
||
|
class Meta:
|
||
|
db_table = 'py_warning_log'
|
||
|
verbose_name = '报警记录'
|
||
|
ordering = ['-create_time']
|
||
|
|
||
|
|
||
|
class QcWarningRule(models.Model):
|
||
|
warning_setting = models.ForeignKey(WarningSetting, on_delete=models.DO_NOTHING, db_constraint=False,
|
||
|
verbose_name='报警配置', related_name='warning_rules')
|
||
|
name = models.CharField(max_length=64, blank=True, verbose_name="报警名称")
|
||
|
userids = models.JSONField(verbose_name="报警账号")
|
||
|
uid = models.IntegerField(verbose_name="用户id")
|
||
|
check_interval = models.IntegerField(verbose_name='检测间隔')
|
||
|
warning_interval = models.IntegerField(verbose_name='报警间隔, 多久没进粉进行报警')
|
||
|
is_on = models.BooleanField(default=True, verbose_name='是否开启')
|
||
|
create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
||
|
update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
||
|
is_delete = models.BooleanField(default=False, verbose_name="是否删除")
|
||
|
check_starttime = models.DateTimeField(null=True, blank=True, verbose_name='检测开始时间')
|
||
|
check_endtime = models.DateTimeField(null=True, blank=True, verbose_name='检测结束时间')
|
||
|
|
||
|
class Meta:
|
||
|
db_table = 'qc_warning_rule'
|
||
|
verbose_name = '报警规则'
|
||
|
ordering = ['-create_time']
|