From 1b09d39b8ff25fa5366f7c7b66f24c7e37e930fb Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 18 Feb 2022 13:01:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A1=AB=E5=86=99=E7=A6=BB=E5=B2=97=E8=AF=B4?= =?UTF-8?q?=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/hrm/serializers.py | 4 ++++ hb_server/apps/hrm/views.py | 38 +++++++++++++++++++++++++++++-- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/hb_server/apps/hrm/serializers.py b/hb_server/apps/hrm/serializers.py index 9371ff4..1aaf018 100644 --- a/hb_server/apps/hrm/serializers.py +++ b/hb_server/apps/hrm/serializers.py @@ -14,6 +14,10 @@ class EmployeeSerializer(DynamicFieldsSerializerMixin, ModelSerializer): model = Employee exclude = ['face_data'] +class EmployeeNotWorkRemarkSerializer(ModelSerializer): + class Meta: + model = Employee + fields = ['not_work_remark'] class FaceLoginSerializer(serializers.Serializer): base64 = serializers.CharField() diff --git a/hb_server/apps/hrm/views.py b/hb_server/apps/hrm/views.py index c19c308..d877923 100644 --- a/hb_server/apps/hrm/views.py +++ b/hb_server/apps/hrm/views.py @@ -1,4 +1,5 @@ from functools import update_wrapper +from venv import create from django.shortcuts import render from django.utils import timezone from rest_framework.response import Response @@ -8,8 +9,8 @@ from apps.hrm.filters import ClockRecordFilterSet, EmployeeFilterSet from apps.hrm.services import HRMService from apps.hrm.tasks import update_all_user_facedata_cache from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin -from apps.hrm.models import ClockRecord, Employee -from apps.hrm.serializers import ClockRecordListSerializer, EmployeeSerializer, FaceClockCreateSerializer, FaceLoginSerializer +from apps.hrm.models import ClockRecord, Employee, NotWorkRemark +from apps.hrm.serializers import ClockRecordListSerializer, EmployeeNotWorkRemarkSerializer, EmployeeSerializer, FaceClockCreateSerializer, FaceLoginSerializer @@ -53,6 +54,39 @@ class EmployeeViewSet(CreateUpdateModelAMixin, OptimizationMixin, UpdateModelMix serializer.save(update_by=request.user) return Response() + @action(methods=['post'], detail=True, perms_map={'post': 'employee_notworkremark'} + , serializer_class=EmployeeNotWorkRemarkSerializer) + def not_work_remark(self, request, pk=None): + """ + 填写离岗说明 + """ + obj = self.get_object() + if not obj.is_atwork: + remark = request.data.get('not_work_remark', '') + obj.not_work_remark = remark + obj.save() + now_local = timezone.localtime() + instance, created = NotWorkRemark.objects.get_or_create( + year = now_local.year, + month = now_local.month, + day = now_local.day, + user = obj.user, + defaults={ + "year":now_local.year, + "month":now_local.month, + "day":now_local.day, + "user":obj.user, + "remark":remark, + "create_by":request.user, + } + ) + if not created: + instance.remark = remark + instance.update_by = request.user + instance.save() + return Response() + return Response('无需填写离岗说明', status=status.HTTP_400_BAD_REQUEST) + class ClockRecordViewSet(CreateModelMixin, ListModelMixin, GenericViewSet): """