diff --git a/apps/em/serializers.py b/apps/em/serializers.py index be09e01d..3f09b7fc 100644 --- a/apps/em/serializers.py +++ b/apps/em/serializers.py @@ -1,9 +1,11 @@ from apps.utils.serializers import CustomModelSerializer from apps.em.models import Equipment +from apps.system.models import Dept from apps.utils.constants import EXCLUDE_FIELDS, EXCLUDE_FIELDS_BASE from rest_framework import serializers class EquipmentSerializer(CustomModelSerializer): + belong_dept = serializers.PrimaryKeyRelatedField(label='责任部门', queryset = Dept.objects.all()) keeper_name = serializers.CharField(source='keeper.name') belong_dept_name = serializers.CharField(source='belong_dept.name') class Meta: diff --git a/apps/enm/models.py b/apps/enm/models.py index 35c18fec..0523480f 100644 --- a/apps/enm/models.py +++ b/apps/enm/models.py @@ -1,11 +1,50 @@ from django.db import models -from apps.utils.models import CommonBDModel +from apps.utils.models import CommonBDModel, BaseModel + +class Mgroup(CommonBDModel): + """测点集 + """ + name = models.CharField('名称', max_length=50) + + +class Team(CommonBDModel): + """班组 + """ + name = models.CharField('名称', max_length=50) + members = models.ManyToManyField('system.user', verbose_name='关联成员', through='enm.teammember') + + +class TeamMember(BaseModel): + """班组成员 + """ + team = models.ForeignKey('enm.team', verbose_name='关联班组', on_delete=models.CASCADE) + is_main = models.BooleanField('是否班长', default=False) + member = models.ForeignKey('system.user', verbose_name='关联用户', on_delete=models.CASCADE) + -# Create your models here. class Mpoint(CommonBDModel): """测点 """ - equipment = models.ForeignKey('em.equipment', verbose_name='关联设备', on_delete=models.SET_NULL, null=True, blank=True) name = models.CharField('测点名称', max_length=50) code = models.CharField('测点编号', max_length=50) - unit = models.CharField('单位', max_length=50) \ No newline at end of file + unit = models.CharField('单位', max_length=50) + + 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('enm.mgroup', verbose_name='所在集合', on_delete=models.SET_NULL, null=True, blank=True) + + +class Mrecord(BaseModel): + """测点原始记录 + """ + mpoint = models.ForeignKey(Mpoint, verbose_name='关联测点', on_delete=models.SET_NULL, null=True, blank=True) + tag_id = models.BigIntegerField('记录ID') + tag_code = models.CharField('测点编号', max_length=50) + tag_update = models.DateTimeField('更新时间') + tag_val = models.FloatField('当前值') + + +class Drecord(BaseModel): + """值班记录 + """ + team = models.ForeignKey(Team, verbose_name='班组', on_delete=models.CASCADE) \ No newline at end of file