From accfedb1d75ee8e645fbd5ded38d659ad1514657 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 20 Jan 2022 10:57:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=A0=A1=E5=87=86=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E5=8F=98=E6=9B=B4=E4=B8=8B=E6=AC=A1=E6=A0=A1=E5=87=86?= =?UTF-8?q?=E6=97=A5=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/em/serializers.py | 2 +- hb_server/apps/em/services.py | 15 +++++++++++++-- hb_server/apps/em/views.py | 9 +++++---- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/hb_server/apps/em/serializers.py b/hb_server/apps/em/serializers.py index 89900d3..e60b2a4 100644 --- a/hb_server/apps/em/serializers.py +++ b/hb_server/apps/em/serializers.py @@ -27,7 +27,7 @@ class EquipmentListSerializer(ModelSerializer): class EquipmentCreateUpdateSerializer(ModelSerializer): class Meta: model = Equipment - exclude = ['create_by', 'update_by', 'create_time', 'update_time'] + exclude = ['create_by', 'update_by', 'create_time', 'update_time', 'check_date', 'next_check_date'] def validate(self, attrs): if attrs['type'] == Equipment.EQUIP_TYPE_TEST: diff --git a/hb_server/apps/em/services.py b/hb_server/apps/em/services.py index 0f05e39..15f5b08 100644 --- a/hb_server/apps/em/services.py +++ b/hb_server/apps/em/services.py @@ -1,7 +1,18 @@ -from apps.em.models import Equipment +from tabnanny import check +from apps.em.models import ECheckRecord, Equipment +from dateutil.relativedelta import relativedelta +from django.utils import timezone class EmService: @classmethod def update_check_date(cls, equip:Equipment): # 根据校准检定记录变更下次日期 - pass \ No newline at end of file + check = ECheckRecord.objects.filter(equipment=equip).order_by('id').last() + if check: + if equip.cycle: + equip.check_date = check.check_date + if equip.next_check_date: + equip.next_check_date = equip.next_check_date + relativedelta(months=equip.cycle) + else: + equip.next_check_date = timezone.now() + relativedelta(months=equip.cycle) + equip.save() \ No newline at end of file diff --git a/hb_server/apps/em/views.py b/hb_server/apps/em/views.py index 0d19abe..aec05f7 100644 --- a/hb_server/apps/em/views.py +++ b/hb_server/apps/em/views.py @@ -12,7 +12,7 @@ from apps.em.serializers import DaqCreateSerializer, EChcekRecordCreateSerialize EquipmentCreateUpdateSerializer, EquipmentListSerializer from apps.em.services import EmService from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin -from dateutil.relativedelta import relativedelta + from django.utils import timezone from django.db import transaction @@ -57,14 +57,15 @@ class EChcekRecordViewSet(CreateUpdateModelAMixin, OptimizationMixin, serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) instance = serializer.save(create_by=request.user) - EmService.update_check_date(equip=instance) + EmService.update_check_date(equip=instance.equipment) return Response() + @transaction.atomic def destroy(self, request, *args, **kwargs): instance = self.get_object() - EmService.update_check_date(equip=instance) instance.delete() - return super().destroy(request, *args, **kwargs) + EmService.update_check_date(equip=instance.equipment) + return Response() import uuid import os