factory/apps/enp/models.py

53 lines
2.0 KiB
Python

from django.db import models
from apps.utils.models import CommonBModel, BaseModel
from apps.mtm.models import Mgroup
from apps.em.models import Equipment
# Create your models here.
class Drain(CommonBModel):
DR_TYPE_CHOICES = (
(10, '排放口'),
(20, '污染源'),
)
DR_LEVLE_CHOICES = (
(10, '主要排放口'),
(20, '次要排放口')
)
DR_CATE_MTRAN = 'mtrans'
DR_CATE_PRODUCT = 'product'
DR_CATE_MSTORE = 'mstore'
DR_CATE_CHOICES = (
(DR_CATE_PRODUCT, '生产工艺'),
(DR_CATE_MTRAN, '物料输送'),
(DR_CATE_MSTORE, '物料储存'),
)
type = models.PositiveSmallIntegerField(
'类型', choices=DR_TYPE_CHOICES, help_text=str(DR_TYPE_CHOICES))
number = models.CharField('编号', max_length=20)
name = models.CharField('名称', max_length=20)
level = models.PositiveSmallIntegerField(
'排口等级', default=20, choices=DR_LEVLE_CHOICES, help_text=str(DR_LEVLE_CHOICES))
cate = models.CharField('分类', max_length=10,
choices=DR_CATE_CHOICES, null=True, blank=True)
height = models.PositiveSmallIntegerField('排气筒高度', default=0)
treatment_capacity = models.CharField('处理量', max_length=20, default='')
pm_limit = models.FloatField('PM超低排放限值', default=10, help_text='单位:mg/m³')
measure = models.CharField('治理措施', max_length=20, default='')
# {"x": 1.0, "y": 2.0, "z": 3.0}
coordinates = models.JSONField('坐标', default=dict, null=True)
mgroup = models.ForeignKey(
Mgroup, verbose_name='所属工段', on_delete=models.CASCADE)
class DrainEquip(BaseModel):
"""
排口/设备关系表
"""
drain = models.ForeignKey(
Drain, verbose_name='排口', on_delete=models.CASCADE)
equipment = models.ForeignKey(
Equipment, verbose_name='关联设备', on_delete=models.CASCADE)
params_list = models.JSONField('监测参数列表', default=list, null=True)