From 8e8f231f72286d97c8ace09672e8e28542ec0f6a Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 20 Jan 2022 09:58:32 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=8A=B6=E6=80=81=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../em/migrations/0011_auto_20220120_0956.py | 63 +++++++++++++++++++ hb_server/apps/em/models.py | 42 +++++-------- hb_server/apps/em/serializers.py | 4 +- hb_server/apps/em/urls.py | 4 +- hb_server/apps/em/views.py | 7 ++- 5 files changed, 88 insertions(+), 32 deletions(-) create mode 100644 hb_server/apps/em/migrations/0011_auto_20220120_0956.py diff --git a/hb_server/apps/em/migrations/0011_auto_20220120_0956.py b/hb_server/apps/em/migrations/0011_auto_20220120_0956.py new file mode 100644 index 0000000..845ec26 --- /dev/null +++ b/hb_server/apps/em/migrations/0011_auto_20220120_0956.py @@ -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='最后编辑人'), + ), + ] diff --git a/hb_server/apps/em/models.py b/hb_server/apps/em/models.py index 6838b99..6b330e2 100644 --- a/hb_server/apps/em/models.py +++ b/hb_server/apps/em/models.py @@ -4,20 +4,19 @@ from django.db.models.base import Model import django.utils.timezone as timezone from django.db.models.query import QuerySet from apps.system.models import CommonAModel, CommonBModel, Organization, User, Dict, File -#from apps.mtm.models import Process from utils.model import SoftModel, BaseModel from simple_history.models import HistoricalRecords -class Equipment(CommonBModel): +class Equipment(CommonAModel): """ 设备台账信息 """ - EQUIP_STATE_OK = 0 - EQUIP_STATE_LIMIT = 1 - EQUIP_STATE_FIX = 2 - EQUIP_STATE_DISABLE = 3 + EQUIP_STATE_OK = 10 + EQUIP_STATE_LIMIT = 20 + EQUIP_STATE_FIX = 30 + EQUIP_STATE_DISABLE = 40 state_choices = ( (EQUIP_STATE_OK, '完好'), (EQUIP_STATE_LIMIT, '限用'), @@ -25,15 +24,6 @@ class Equipment(CommonBModel): (EQUIP_STATE_DISABLE, '禁用') ) - statedm_choices = ( - (0, '合格'), - (1, '准用'), - (2, '限用'), - (3, '禁用'), - (4, '停用'), - (5, '封存') - ) - type_choices = ( (1, '生产设备'), (2, '检验工具') @@ -65,14 +55,14 @@ class Equipment(CommonBModel): count = models.IntegerField('数量', default=0) keeper = models.ForeignKey(User, verbose_name='保管人', on_delete=models.CASCADE, null=True, blank=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)#监视,测量设备 - way = models.IntegerField('校准或检定方式', choices=way_choices, default=1)#监视,测量设备 - standard = models.CharField('溯源标准或依据', max_length=200, blank=True, null=True)#监视,测量设备 - cycle = models.IntegerField('校准或检定周期', default=0)#监视,测量设备 - usetype = models.IntegerField('使用类别', choices=usetype_choices, default=1)#监视,测量设备 - statedm = models.IntegerField('设备状态', choices=statedm_choices, default=0)#监视,测量设备 + # 以下是监视测量设备单独字段 + mgmtype = models.IntegerField('管理类别', choices=mgmtype_choices, default=1) + way = models.IntegerField('校准或检定方式', choices=way_choices, default=1) + standard = models.CharField('溯源标准或依据', max_length=200, blank=True, null=True) + cycle = models.IntegerField('校准或检定周期', default=0) + usetype = models.IntegerField('使用类别', choices=usetype_choices, default=1) + next_check_date = models.DateField('下次校准检查日期',blank=True, null=True) class Meta: verbose_name = '设备信息' verbose_name_plural = verbose_name @@ -80,8 +70,10 @@ class Equipment(CommonBModel): def __str__(self): 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) - recentlydate = models.DateField('最近一次校准/检定日期',blank=True, null=True) - nextdate = models.DateField('下次应校准或检定日期',blank=True, null=True) + check_date = models.DateField('校准检查日期',blank=True, null=True) description = models.CharField('描述', max_length=200, blank=True, null=True) \ No newline at end of file diff --git a/hb_server/apps/em/serializers.py b/hb_server/apps/em/serializers.py index be34bfc..ce3908e 100644 --- a/hb_server/apps/em/serializers.py +++ b/hb_server/apps/em/serializers.py @@ -2,7 +2,7 @@ from apps.mtm.models import Step from rest_framework import serializers from rest_framework.serializers import ModelSerializer -from .models import Equipment,Equipmentrecord +from .models import Equipment, ECheckRecord from apps.system.serializers import OrganizationSimpleSerializer, UserSimpleSerializer @@ -34,7 +34,7 @@ class EquipmentSimpleSerializer(ModelSerializer): class EquipmentrecordSerializer(ModelSerializer): equipment_ = EquipmentSerializer(source='equipment', read_only=True) class Meta: - model = Equipmentrecord + model = ECheckRecord fields = '__all__' @staticmethod diff --git a/hb_server/apps/em/urls.py b/hb_server/apps/em/urls.py index e2f7e91..2fc4bb8 100644 --- a/hb_server/apps/em/urls.py +++ b/hb_server/apps/em/urls.py @@ -1,12 +1,12 @@ from django.db.models import base 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 rest_framework.routers import DefaultRouter router = DefaultRouter() router.register('equipment', EquipmentViewSet, basename='equipment') -router.register('equipmentrecord', EquipmentrecordViewSet, basename='equipmentrecord') +router.register('echeck_record', EChcekRecordViewSet, basename='echeck_record') urlpatterns = [ path('daq/', DaqView.as_view()), path('', include(router.urls)), diff --git a/hb_server/apps/em/views.py b/hb_server/apps/em/views.py index 00ae4b9..7e526bf 100644 --- a/hb_server/apps/em/views.py +++ b/hb_server/apps/em/views.py @@ -5,7 +5,7 @@ from rest_framework.viewsets import ModelViewSet from rest_framework import serializers, status 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.system.mixins import CreateUpdateModelAMixin, OptimizationMixin @@ -26,13 +26,13 @@ class EquipmentViewSet(CreateUpdateModelAMixin, OptimizationMixin, ModelViewSet) # Create your views here. -class EquipmentrecordViewSet(CreateUpdateModelAMixin, OptimizationMixin, ModelViewSet): +class EChcekRecordViewSet(CreateUpdateModelAMixin, OptimizationMixin, ModelViewSet): """ 设备校准-增删改查 """ perms_map = {'get': '*', 'post': 'equipmentrecord_create', 'put': 'equipmentrecord_update', 'delete': 'equipmentrecord_delete'} - queryset = Equipmentrecord.objects.all() + queryset = ECheckRecord.objects.all() serializer_class = EquipmentrecordSerializer filterset_fields = ['equipment'] ordering_fields = ['create_time'] @@ -49,6 +49,7 @@ class EquipmentrecordViewSet(CreateUpdateModelAMixin, OptimizationMixin, ModelVi serializer.is_valid(raise_exception=True) serializer.save() return Response(status=status.HTTP_200_OK) + def update(self, request, *args, **kwargs): data = request.data if data.get('equipment', None):