设备状态字段修改

This commit is contained in:
caoqianming 2022-01-20 09:58:32 +08:00
parent d01ca7df0f
commit 8e8f231f72
5 changed files with 88 additions and 32 deletions

View File

@ -0,0 +1,63 @@
# Generated by Django 3.2.9 on 2022-01-20 01:56
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('em', '0010_alter_equipment_state'),
]
operations = [
migrations.CreateModel(
name='ECheckRecord',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
('check_date', models.DateField(blank=True, null=True, verbose_name='校准检查日期')),
('description', models.CharField(blank=True, max_length=200, null=True, verbose_name='描述')),
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='echeckrecord_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
],
options={
'abstract': False,
},
),
migrations.RemoveField(
model_name='equipment',
name='belong_dept',
),
migrations.RemoveField(
model_name='equipment',
name='statedm',
),
migrations.AddField(
model_name='equipment',
name='next_check_date',
field=models.DateField(blank=True, null=True, verbose_name='下次校准检查日期'),
),
migrations.AlterField(
model_name='equipment',
name='state',
field=models.PositiveIntegerField(choices=[(10, '完好'), (20, '限用'), (30, '在修'), (40, '禁用')], default=0, verbose_name='设备状态'),
),
migrations.DeleteModel(
name='Equipmentrecord',
),
migrations.AddField(
model_name='echeckrecord',
name='equipment',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='em.equipment', verbose_name='校准检定设备'),
),
migrations.AddField(
model_name='echeckrecord',
name='update_by',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='echeckrecord_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人'),
),
]

View File

@ -4,20 +4,19 @@ from django.db.models.base import Model
import django.utils.timezone as timezone import django.utils.timezone as timezone
from django.db.models.query import QuerySet from django.db.models.query import QuerySet
from apps.system.models import CommonAModel, CommonBModel, Organization, User, Dict, File from apps.system.models import CommonAModel, CommonBModel, Organization, User, Dict, File
#from apps.mtm.models import Process
from utils.model import SoftModel, BaseModel from utils.model import SoftModel, BaseModel
from simple_history.models import HistoricalRecords from simple_history.models import HistoricalRecords
class Equipment(CommonBModel): class Equipment(CommonAModel):
""" """
设备台账信息 设备台账信息
""" """
EQUIP_STATE_OK = 0 EQUIP_STATE_OK = 10
EQUIP_STATE_LIMIT = 1 EQUIP_STATE_LIMIT = 20
EQUIP_STATE_FIX = 2 EQUIP_STATE_FIX = 30
EQUIP_STATE_DISABLE = 3 EQUIP_STATE_DISABLE = 40
state_choices = ( state_choices = (
(EQUIP_STATE_OK, '完好'), (EQUIP_STATE_OK, '完好'),
(EQUIP_STATE_LIMIT, '限用'), (EQUIP_STATE_LIMIT, '限用'),
@ -25,15 +24,6 @@ class Equipment(CommonBModel):
(EQUIP_STATE_DISABLE, '禁用') (EQUIP_STATE_DISABLE, '禁用')
) )
statedm_choices = (
(0, '合格'),
(1, '准用'),
(2, '限用'),
(3, '禁用'),
(4, '停用'),
(5, '封存')
)
type_choices = ( type_choices = (
(1, '生产设备'), (1, '生产设备'),
(2, '检验工具') (2, '检验工具')
@ -65,14 +55,14 @@ class Equipment(CommonBModel):
count = models.IntegerField('数量', default=0) count = models.IntegerField('数量', default=0)
keeper = models.ForeignKey(User, verbose_name='保管人', on_delete=models.CASCADE, null=True, blank=True) keeper = models.ForeignKey(User, verbose_name='保管人', on_delete=models.CASCADE, null=True, blank=True)
description = models.CharField('描述', max_length=200, blank=True, null=True) description = models.CharField('描述', max_length=200, blank=True, null=True)
#process = models.ForeignKey(Process, verbose_name='工序', on_delete=models.CASCADE, null=True, blank=True) # 以下是监视测量设备单独字段
mgmtype = models.IntegerField('管理类别', choices=mgmtype_choices, default=1)#监视,测量设备 mgmtype = models.IntegerField('管理类别', choices=mgmtype_choices, default=1)
way = models.IntegerField('校准或检定方式', choices=way_choices, default=1)#监视,测量设备 way = models.IntegerField('校准或检定方式', choices=way_choices, default=1)
standard = models.CharField('溯源标准或依据', max_length=200, blank=True, null=True)#监视,测量设备 standard = models.CharField('溯源标准或依据', max_length=200, blank=True, null=True)
cycle = models.IntegerField('校准或检定周期', default=0)#监视,测量设备 cycle = models.IntegerField('校准或检定周期', default=0)
usetype = models.IntegerField('使用类别', choices=usetype_choices, default=1)#监视,测量设备 usetype = models.IntegerField('使用类别', choices=usetype_choices, default=1)
statedm = models.IntegerField('设备状态', choices=statedm_choices, default=0)#监视,测量设备
next_check_date = models.DateField('下次校准检查日期',blank=True, null=True)
class Meta: class Meta:
verbose_name = '设备信息' verbose_name = '设备信息'
verbose_name_plural = verbose_name verbose_name_plural = verbose_name
@ -80,8 +70,10 @@ class Equipment(CommonBModel):
def __str__(self): def __str__(self):
return self.number + '-' + self.name return self.number + '-' + self.name
class Equipmentrecord(CommonBModel): class ECheckRecord(CommonAModel):
"""
校准鉴定记录
"""
equipment = models.ForeignKey(Equipment, verbose_name='校准检定设备', on_delete=models.CASCADE, null=True, blank=True) equipment = models.ForeignKey(Equipment, verbose_name='校准检定设备', on_delete=models.CASCADE, null=True, blank=True)
recentlydate = models.DateField('最近一次校准/检定日期',blank=True, null=True) check_date = models.DateField('校准检查日期',blank=True, null=True)
nextdate = models.DateField('下次应校准或检定日期',blank=True, null=True)
description = models.CharField('描述', max_length=200, blank=True, null=True) description = models.CharField('描述', max_length=200, blank=True, null=True)

View File

@ -2,7 +2,7 @@ from apps.mtm.models import Step
from rest_framework import serializers from rest_framework import serializers
from rest_framework.serializers import ModelSerializer from rest_framework.serializers import ModelSerializer
from .models import Equipment,Equipmentrecord from .models import Equipment, ECheckRecord
from apps.system.serializers import OrganizationSimpleSerializer, UserSimpleSerializer from apps.system.serializers import OrganizationSimpleSerializer, UserSimpleSerializer
@ -34,7 +34,7 @@ class EquipmentSimpleSerializer(ModelSerializer):
class EquipmentrecordSerializer(ModelSerializer): class EquipmentrecordSerializer(ModelSerializer):
equipment_ = EquipmentSerializer(source='equipment', read_only=True) equipment_ = EquipmentSerializer(source='equipment', read_only=True)
class Meta: class Meta:
model = Equipmentrecord model = ECheckRecord
fields = '__all__' fields = '__all__'
@staticmethod @staticmethod

View File

@ -1,12 +1,12 @@
from django.db.models import base from django.db.models import base
from rest_framework import urlpatterns from rest_framework import urlpatterns
from apps.em.views import DaqView, EquipmentViewSet,EquipmentrecordViewSet from apps.em.views import DaqView, EquipmentViewSet, EChcekRecordViewSet
from django.urls import path, include from django.urls import path, include
from rest_framework.routers import DefaultRouter from rest_framework.routers import DefaultRouter
router = DefaultRouter() router = DefaultRouter()
router.register('equipment', EquipmentViewSet, basename='equipment') router.register('equipment', EquipmentViewSet, basename='equipment')
router.register('equipmentrecord', EquipmentrecordViewSet, basename='equipmentrecord') router.register('echeck_record', EChcekRecordViewSet, basename='echeck_record')
urlpatterns = [ urlpatterns = [
path('daq/', DaqView.as_view()), path('daq/', DaqView.as_view()),
path('', include(router.urls)), path('', include(router.urls)),

View File

@ -5,7 +5,7 @@ from rest_framework.viewsets import ModelViewSet
from rest_framework import serializers, status from rest_framework import serializers, status
from rest_framework.response import Response from rest_framework.response import Response
from apps.em.models import Equipment,Equipmentrecord from apps.em.models import Equipment, ECheckRecord
from apps.em.serializers import DaqCreateSerializer, EquipmentSerializer,EquipmentrecordSerializer from apps.em.serializers import DaqCreateSerializer, EquipmentSerializer,EquipmentrecordSerializer
from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin
@ -26,13 +26,13 @@ class EquipmentViewSet(CreateUpdateModelAMixin, OptimizationMixin, ModelViewSet)
# Create your views here. # Create your views here.
class EquipmentrecordViewSet(CreateUpdateModelAMixin, OptimizationMixin, ModelViewSet): class EChcekRecordViewSet(CreateUpdateModelAMixin, OptimizationMixin, ModelViewSet):
""" """
设备校准-增删改查 设备校准-增删改查
""" """
perms_map = {'get': '*', 'post': 'equipmentrecord_create', perms_map = {'get': '*', 'post': 'equipmentrecord_create',
'put': 'equipmentrecord_update', 'delete': 'equipmentrecord_delete'} 'put': 'equipmentrecord_update', 'delete': 'equipmentrecord_delete'}
queryset = Equipmentrecord.objects.all() queryset = ECheckRecord.objects.all()
serializer_class = EquipmentrecordSerializer serializer_class = EquipmentrecordSerializer
filterset_fields = ['equipment'] filterset_fields = ['equipment']
ordering_fields = ['create_time'] ordering_fields = ['create_time']
@ -49,6 +49,7 @@ class EquipmentrecordViewSet(CreateUpdateModelAMixin, OptimizationMixin, ModelVi
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
serializer.save() serializer.save()
return Response(status=status.HTTP_200_OK) return Response(status=status.HTTP_200_OK)
def update(self, request, *args, **kwargs): def update(self, request, *args, **kwargs):
data = request.data data = request.data
if data.get('equipment', None): if data.get('equipment', None):