diff --git a/apps/hrm/serializers.py b/apps/hrm/serializers.py index 6ad797b2..bee348bb 100644 --- a/apps/hrm/serializers.py +++ b/apps/hrm/serializers.py @@ -12,6 +12,16 @@ class EmployeeSerializer(CustomModelSerializer): class Meta: model = Employee exclude = EXCLUDE_FIELDS + ['face_data'] + + def save(self, **kwargs): + if self.validated_data.get('user', None): + user = self.validated_data['user'] + self.validated_data['name'] = user.name + self.validated_data['belong_dept'] = user.belong_dept + return super().save(**kwargs) + + + class EmployeeNotWorkRemarkSerializer(ModelSerializer): class Meta: diff --git a/apps/hrm/views.py b/apps/hrm/views.py index 70abf050..0565d3dc 100644 --- a/apps/hrm/views.py +++ b/apps/hrm/views.py @@ -24,7 +24,7 @@ from rest_framework.exceptions import ParseError # Create your views here. class EmployeeViewSet(CustomModelViewSet): """ - 员工信息管理 + 人员管理 """ queryset = Employee.objects.all() select_related_fields = ['user'] @@ -32,7 +32,7 @@ class EmployeeViewSet(CustomModelViewSet): serializer_class = EmployeeSerializer search_fields = ['name', 'number', 'user__username'] ordering = ['-pk'] - + def update(self, request, *args, **kwargs): partial = kwargs.pop('partial', False) instance = self.get_object() @@ -41,14 +41,9 @@ class EmployeeViewSet(CustomModelViewSet): serializer.is_valid(raise_exception=True) photo = data.get('photo', None) if instance.photo != photo: - f_l, msg = HRMService.get_facedata_from_img(img_path=photo) - if f_l: - serializer.save(update_by=request.user, face_data = f_l) - # 更新人脸缓存 - update_all_user_facedata_cache.delay() - return Response() - return Response(msg, status=status.HTTP_400_BAD_REQUEST) - serializer.save(update_by=request.user) + # 调取大华接口 + return Response() + serializer.save() return Response() @action(methods=['post'], detail=True, perms_map={'post': 'employee_notworkremark'} diff --git a/apps/system/serializers.py b/apps/system/serializers.py index 61afd73f..c5481af7 100644 --- a/apps/system/serializers.py +++ b/apps/system/serializers.py @@ -149,7 +149,7 @@ class RoleCreateUpdateSerializer(CustomModelSerializer): model = Role exclude = EXCLUDE_FIELDS -class PermissionSerializer(CustomModelSerializer): +class PermissionSerializer(serializers.ModelSerializer): """ 权限序列化 """ @@ -158,7 +158,7 @@ class PermissionSerializer(CustomModelSerializer): model = Permission fields = '__all__' -class PermissionCreateUpdateSerializer(CustomModelSerializer): +class PermissionCreateUpdateSerializer(serializers.ModelSerializer): """ 权限序列化 """ diff --git a/apps/utils/serializers.py b/apps/utils/serializers.py index 7beae265..54003345 100644 --- a/apps/utils/serializers.py +++ b/apps/utils/serializers.py @@ -19,10 +19,11 @@ class CustomModelSerializer(DynamicFieldsMixin, serializers.ModelSerializer): if self.request: if getattr(self.request, 'user', None): validated_data['create_by'] = self.request.user - if 'belong_dept' in validated_data: # 如果指定数据归属部门 + if 'belong_dept' in validated_data: # 如果指定了数据归属部门 pass elif getattr(self.request.user, 'belong_dept', None): - validated_data['belong_dept'] = self.request.user.belong_dept + if hasattr(self.Meta.model, 'belong_dept'): + validated_data['belong_dept'] = self.request.user.belong_dept return super().create(validated_data) def update(self, instance, validated_data):