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

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 EquipmentCreateUpdateSerializer(ModelSerializer):
class Meta: class Meta:
model = Equipment 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): def validate(self, attrs):
if attrs['type'] == Equipment.EQUIP_TYPE_TEST: 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: class EmService:
@classmethod @classmethod
def update_check_date(cls, equip:Equipment): 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 EquipmentCreateUpdateSerializer, EquipmentListSerializer
from apps.em.services import EmService from apps.em.services import EmService
from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin
from dateutil.relativedelta import relativedelta
from django.utils import timezone from django.utils import timezone
from django.db import transaction from django.db import transaction
@ -57,14 +57,15 @@ class EChcekRecordViewSet(CreateUpdateModelAMixin, OptimizationMixin,
serializer = self.get_serializer(data=request.data) serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
instance = serializer.save(create_by=request.user) instance = serializer.save(create_by=request.user)
EmService.update_check_date(equip=instance) EmService.update_check_date(equip=instance.equipment)
return Response() return Response()
@transaction.atomic
def destroy(self, request, *args, **kwargs): def destroy(self, request, *args, **kwargs):
instance = self.get_object() instance = self.get_object()
EmService.update_check_date(equip=instance)
instance.delete() instance.delete()
return super().destroy(request, *args, **kwargs) EmService.update_check_date(equip=instance.equipment)
return Response()
import uuid import uuid
import os import os