根据校准记录变更下次校准日期
This commit is contained in:
parent
e4c7f4856c
commit
accfedb1d7
|
@ -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:
|
||||||
|
|
|
@ -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()
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue