opl_cate deatil

This commit is contained in:
曹前明 2022-06-23 17:54:33 +08:00
parent dc660cfb77
commit 91ec77ba5f
4 changed files with 38 additions and 18 deletions

View File

@ -48,25 +48,27 @@ class EmployeeCreateUpdateSerializer(EmployeeBaseSerializer):
@transaction.atomic
def create(self, validated_data):
instance = super().create(validated_data)
if settings.DAHUA_ENABLED and dhClient:
dahua_data = HrmService.sync_dahua_employee(ep=instance)
third_info = instance.third_info
third_info.update(dahua_data)
instance.third_info = third_info
instance.save()
return instance
with transaction.atomic():
instance = super().create(validated_data)
if settings.DAHUA_ENABLED and dhClient:
dahua_data = HrmService.sync_dahua_employee(ep=instance)
third_info = instance.third_info
third_info.update(dahua_data)
instance.third_info = third_info
instance.save()
return instance
@transaction.atomic
def update(self, instance, validated_data):
old_photo = instance.photo
instance = super().update(instance, validated_data)
dahua_data = HrmService.sync_dahua_employee(ep=instance, old_photo=old_photo)
third_info = instance.third_info
third_info.update(dahua_data)
instance.third_info = third_info
instance.save()
return instance
with transaction.atomic():
old_photo = instance.photo
instance = super().update(instance, validated_data)
if settings.DAHUA_ENABLED and dhClient:
dahua_data = HrmService.sync_dahua_employee(ep=instance, old_photo=old_photo)
third_info = instance.third_info
third_info.update(dahua_data)
instance.third_info = third_info
instance.save()
return instance
class ChannelAuthoritySerializer(serializers.Serializer):

View File

@ -1,5 +1,6 @@
from apps.hrm.models import Certificate
from apps.opm.models import GasCheck, Operation, Opl, OplCate, OplCert, OplWorker
from apps.system.serializers import DictSerializer, DictSimpleSerializer
from apps.utils.serializers import CustomModelSerializer
from apps.utils.constants import EXCLUDE_FIELDS
from rest_framework import serializers
@ -20,6 +21,16 @@ class OplCateSerializer(CustomModelSerializer):
fields = '__all__'
class OplCateDetailSerializer(CustomModelSerializer):
measure_options_ = DictSimpleSerializer(source='measure_options', read_only=True, many=True)
risk_options_ = DictSimpleSerializer(source='risk_options', read_only=True, many=True)
close_options_ = DictSimpleSerializer(source='close_options', read_only=True, many=True)
class Meta:
model = OplCate
fields = '__all__'
class OperationCreateUpdateSerializer(CustomModelSerializer):
class Meta:
model = Operation

View File

@ -1,7 +1,7 @@
from django.shortcuts import render
from rest_framework.response import Response
from apps.opm.models import GasCheck, Operation, Opl, OplCate, OplWorker
from apps.opm.serializers import GasCheckCreateUpdateSerializer, GasCheckSerializer, OperationCreateUpdateSerializer, OperationSerializer, OplCateCreateUpdateSerializer, OplCateSerializer, OplCreateUpdateSerializer, OplSerializer, OplWorkerCreateSerializer, OplWorkerUpdateSerializer
from apps.opm.serializers import GasCheckCreateUpdateSerializer, GasCheckSerializer, OperationCreateUpdateSerializer, OperationSerializer, OplCateCreateUpdateSerializer, OplCateDetailSerializer, OplCateSerializer, OplCreateUpdateSerializer, OplSerializer, OplWorkerCreateSerializer, OplWorkerUpdateSerializer
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
from rest_framework.exceptions import ParseError
from rest_framework.mixins import CreateModelMixin, ListModelMixin, DestroyModelMixin
@ -14,7 +14,9 @@ class OplCateViewSet(CustomModelViewSet):
queryset = OplCate.objects.all()
create_serializer_class = OplCateCreateUpdateSerializer
update_serializer_class = OplCateCreateUpdateSerializer
retrieve_serializer_class = OplCateDetailSerializer
serializer_class = OplCateSerializer
prefetch_related_fields = ['measure_options', 'risk_options', 'close_options']
class OperationViewSet(CustomModelViewSet):

View File

@ -128,6 +128,11 @@ class DictSerializer(CustomModelSerializer):
model = Dictionary
fields = '__all__'
class DictSimpleSerializer(CustomModelSerializer):
class Meta:
model = Dictionary
fields = ['id', 'name', 'code']
class DictCreateUpdateSerializer(CustomModelSerializer):
"""