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 @transaction.atomic
def create(self, validated_data): def create(self, validated_data):
instance = super().create(validated_data) with transaction.atomic():
if settings.DAHUA_ENABLED and dhClient: instance = super().create(validated_data)
dahua_data = HrmService.sync_dahua_employee(ep=instance) if settings.DAHUA_ENABLED and dhClient:
third_info = instance.third_info dahua_data = HrmService.sync_dahua_employee(ep=instance)
third_info.update(dahua_data) third_info = instance.third_info
instance.third_info = third_info third_info.update(dahua_data)
instance.save() instance.third_info = third_info
return instance instance.save()
return instance
@transaction.atomic
def update(self, instance, validated_data): def update(self, instance, validated_data):
old_photo = instance.photo with transaction.atomic():
instance = super().update(instance, validated_data) old_photo = instance.photo
dahua_data = HrmService.sync_dahua_employee(ep=instance, old_photo=old_photo) instance = super().update(instance, validated_data)
third_info = instance.third_info if settings.DAHUA_ENABLED and dhClient:
third_info.update(dahua_data) dahua_data = HrmService.sync_dahua_employee(ep=instance, old_photo=old_photo)
instance.third_info = third_info third_info = instance.third_info
instance.save() third_info.update(dahua_data)
return instance instance.third_info = third_info
instance.save()
return instance
class ChannelAuthoritySerializer(serializers.Serializer): class ChannelAuthoritySerializer(serializers.Serializer):

View File

@ -1,5 +1,6 @@
from apps.hrm.models import Certificate from apps.hrm.models import Certificate
from apps.opm.models import GasCheck, Operation, Opl, OplCate, OplCert, OplWorker 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.serializers import CustomModelSerializer
from apps.utils.constants import EXCLUDE_FIELDS from apps.utils.constants import EXCLUDE_FIELDS
from rest_framework import serializers from rest_framework import serializers
@ -20,6 +21,16 @@ class OplCateSerializer(CustomModelSerializer):
fields = '__all__' 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 OperationCreateUpdateSerializer(CustomModelSerializer):
class Meta: class Meta:
model = Operation model = Operation

View File

@ -1,7 +1,7 @@
from django.shortcuts import render from django.shortcuts import render
from rest_framework.response import Response from rest_framework.response import Response
from apps.opm.models import GasCheck, Operation, Opl, OplCate, OplWorker 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 apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
from rest_framework.exceptions import ParseError from rest_framework.exceptions import ParseError
from rest_framework.mixins import CreateModelMixin, ListModelMixin, DestroyModelMixin from rest_framework.mixins import CreateModelMixin, ListModelMixin, DestroyModelMixin
@ -14,7 +14,9 @@ class OplCateViewSet(CustomModelViewSet):
queryset = OplCate.objects.all() queryset = OplCate.objects.all()
create_serializer_class = OplCateCreateUpdateSerializer create_serializer_class = OplCateCreateUpdateSerializer
update_serializer_class = OplCateCreateUpdateSerializer update_serializer_class = OplCateCreateUpdateSerializer
retrieve_serializer_class = OplCateDetailSerializer
serializer_class = OplCateSerializer serializer_class = OplCateSerializer
prefetch_related_fields = ['measure_options', 'risk_options', 'close_options']
class OperationViewSet(CustomModelViewSet): class OperationViewSet(CustomModelViewSet):

View File

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