feat: 添加enm相关内容
This commit is contained in:
parent
52bb1ca367
commit
cf4654a532
|
@ -1,25 +1,40 @@
|
|||
from django.db import models
|
||||
from apps.utils.models import CommonBDModel, BaseModel
|
||||
from apps.utils.models import CommonBDModel, BaseModel, CommonADModel, CommonAModel, CommonBModel
|
||||
|
||||
class Product(CommonAModel):
|
||||
"""
|
||||
产品
|
||||
"""
|
||||
name = models.CharField('名称', max_length=50)
|
||||
code = models.CharField('编号', max_length=50, null=True, blank=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = '产品'
|
||||
|
||||
class Shift(CommonAModel):
|
||||
"""班次
|
||||
"""
|
||||
name = models.CharField('名称', max_length=50)
|
||||
start_time_o = models.TimeField('开始时间')
|
||||
end_time_o = models.TimeField('结束时间')
|
||||
|
||||
class Meta:
|
||||
verbose_name = '班次'
|
||||
|
||||
class Mgroup(CommonBDModel):
|
||||
"""测点集
|
||||
"""
|
||||
name = models.CharField('名称', max_length=50)
|
||||
|
||||
class Meta:
|
||||
verbose_name = '测点集'
|
||||
|
||||
class Team(CommonBDModel):
|
||||
|
||||
class Team(CommonBModel):
|
||||
"""班组
|
||||
"""
|
||||
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)
|
||||
leader = models.ForeignKey('system.user', verbose_name='班长', on_delete=models.CASCADE)
|
||||
|
||||
|
||||
class Mpoint(CommonBDModel):
|
||||
|
@ -44,7 +59,11 @@ class Mrecord(BaseModel):
|
|||
tag_val = models.FloatField('当前值')
|
||||
|
||||
|
||||
class Drecord(BaseModel):
|
||||
class Drecord(CommonADModel):
|
||||
"""值班记录
|
||||
"""
|
||||
team = models.ForeignKey(Team, verbose_name='班组', on_delete=models.CASCADE)
|
||||
team = models.ForeignKey(Team, verbose_name='班组', on_delete=models.CASCADE)
|
||||
shit = models.ForeignKey(Shift, verbose_name='当班班次', on_delete=models.CASCADE)
|
||||
leader = models.ForeignKey('system.user', verbose_name='班长', on_delete=models.CASCADE)
|
||||
start_time = models.DateTimeField('值班开始')
|
||||
end_time = models.DateTimeField('值班结束')
|
|
@ -1,11 +1,41 @@
|
|||
from apps.utils.serializers import CustomModelSerializer
|
||||
from apps.enm.models import Mpoint
|
||||
from apps.enm.models import Mpoint, Mgroup, Mrecord, Team, Drecord
|
||||
from apps.system.models import Dept
|
||||
from apps.system.serializers import DeptSimpleSerializer
|
||||
from apps.utils.constants import EXCLUDE_FIELDS, EXCLUDE_FIELDS_BASE
|
||||
from rest_framework import serializers
|
||||
|
||||
class MgroupSerializer(CustomModelSerializer):
|
||||
belong_dept = serializers.PrimaryKeyRelatedField(label="所属部门", queryset=Dept.objects.all(), required=True)
|
||||
belong_dept_name = serializers.CharField(source='belong_dept.name')
|
||||
class Meta:
|
||||
model = Mgroup
|
||||
fields = '__all__'
|
||||
read_only_fields = EXCLUDE_FIELDS + ['belong_dept_name']
|
||||
|
||||
class TeamSerializer(CustomModelSerializer):
|
||||
leader_name = serializers.CharField(source='leader.name')
|
||||
belong_dept_name = serializers.CharField(source='belong_dept.name')
|
||||
class Meta:
|
||||
model = Team
|
||||
fields = '__all__'
|
||||
read_only_fields = EXCLUDE_FIELDS + ['belong_dept_name', 'leader_name']
|
||||
|
||||
|
||||
class MpointSerializer(CustomModelSerializer):
|
||||
mgroup_name = serializers.CharField(source='mgroup.name')
|
||||
belong_dept_name = serializers.CharField(source='belong_dept.name')
|
||||
ep_monitored_name = serializers.CharField(source='ep_monitored.name')
|
||||
ep_belong_name = serializers.CharField(source='ep_belong.name')
|
||||
class Meta:
|
||||
model = Mpoint
|
||||
fields = '__all__'
|
||||
read_only_fields = EXCLUDE_FIELDS
|
||||
read_only_fields = EXCLUDE_FIELDS + ['mgroup_name', 'belong_dept_name']
|
||||
|
||||
|
||||
class MrecordSerializer(CustomModelSerializer):
|
||||
mpoint_name = serializers.CharField(source='mpoint.name')
|
||||
class Meta:
|
||||
model = Mrecord
|
||||
fields = '__all__'
|
||||
read_only_fields = EXCLUDE_FIELDS + ['mpoint_name']
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
# Create your tasks here
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
from apps.utils.tasks import CustomTask
|
||||
from celery import shared_task
|
||||
from apps.utils.sql import DbConnection
|
||||
from server.settings import get_sysconfig
|
||||
|
||||
@shared_task(base=CustomTask)
|
||||
def get_tag_val():
|
||||
config = get_sysconfig()
|
||||
with DbConnection(config['enm']['db_host'], config['enm']['db_user'], config['enm']['db_password'], config['enm']['db_database']) as cursor:
|
||||
cursor.execute("select * from tag_value")
|
||||
results = cursor.fetchall()
|
||||
for row in results:
|
||||
print(row)
|
|
@ -1,12 +1,15 @@
|
|||
from django.urls import path, include
|
||||
from rest_framework.routers import DefaultRouter
|
||||
from apps.enm.views import MpointViewSet
|
||||
from apps.enm.views import MpointViewSet, MgroupViewSet, TeamViewSet
|
||||
|
||||
API_BASE_URL = 'api/enm/'
|
||||
HTML_BASE_URL = 'enm/'
|
||||
|
||||
router = DefaultRouter()
|
||||
router.register('mpoint', MpointViewSet, basename='mpoint')
|
||||
router.register('mgroup', MgroupViewSet, basename='mgroup')
|
||||
router.register('team', TeamViewSet, basename='team')
|
||||
|
||||
urlpatterns = [
|
||||
path(API_BASE_URL, include(router.urls)),
|
||||
]
|
|
@ -1,13 +1,28 @@
|
|||
from django.shortcuts import render
|
||||
from apps.enm.models import Mpoint
|
||||
from apps.enm.models import Mpoint, Mgroup, Team, Mrecord
|
||||
from apps.utils.viewsets import CustomModelViewSet
|
||||
from apps.enm.serializers import MpointSerializer
|
||||
from apps.enm.serializers import MpointSerializer, TeamSerializer, MgroupSerializer
|
||||
from rest_framework.exceptions import ParseError
|
||||
|
||||
class MgroupViewSet(CustomModelViewSet):
|
||||
queryset = Mgroup.objects.all()
|
||||
serializer_class = MgroupSerializer
|
||||
select_related_fields = ['create_by', 'belong_dept']
|
||||
filterset_fields = ['belong_dept']
|
||||
search_fields = ['number']
|
||||
|
||||
|
||||
class TeamViewSet(CustomModelViewSet):
|
||||
queryset = Team.objects.all()
|
||||
serializer_class = TeamSerializer
|
||||
select_related_fields = ['belong_dept', 'leader']
|
||||
filterset_fields = ['belong_dept']
|
||||
search_fields = ['name']
|
||||
|
||||
|
||||
class MpointViewSet(CustomModelViewSet):
|
||||
queryset = Mpoint.objects.all()
|
||||
serializer_class = MpointSerializer
|
||||
select_related_fields = ['create_by']
|
||||
filterset_fields = ['equipment']
|
||||
select_related_fields = ['create_by', 'belong_dept', 'ep_monitored', 'ep_belong', 'mgroup']
|
||||
filterset_fields = ['belong_dept', 'ep_monitored', 'ep_belong', 'mgroup']
|
||||
search_fields = ['number', 'code']
|
Loading…
Reference in New Issue