根据校准记录变更下次校准日期

This commit is contained in:
caoqianming 2022-01-20 10:57:32 +08:00
parent e4c7f4856c
commit accfedb1d7
3 changed files with 19 additions and 7 deletions

View File

@ -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:

View File

@ -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
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()

View File

@ -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