填写离岗说明

This commit is contained in:
caoqianming 2022-02-18 13:01:57 +08:00
parent 3d90952cba
commit 1b09d39b8f
2 changed files with 40 additions and 2 deletions

View File

@ -14,6 +14,10 @@ class EmployeeSerializer(DynamicFieldsSerializerMixin, ModelSerializer):
model = Employee model = Employee
exclude = ['face_data'] exclude = ['face_data']
class EmployeeNotWorkRemarkSerializer(ModelSerializer):
class Meta:
model = Employee
fields = ['not_work_remark']
class FaceLoginSerializer(serializers.Serializer): class FaceLoginSerializer(serializers.Serializer):
base64 = serializers.CharField() base64 = serializers.CharField()

View File

@ -1,4 +1,5 @@
from functools import update_wrapper from functools import update_wrapper
from venv import create
from django.shortcuts import render from django.shortcuts import render
from django.utils import timezone from django.utils import timezone
from rest_framework.response import Response 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.services import HRMService
from apps.hrm.tasks import update_all_user_facedata_cache from apps.hrm.tasks import update_all_user_facedata_cache
from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin
from apps.hrm.models import ClockRecord, Employee from apps.hrm.models import ClockRecord, Employee, NotWorkRemark
from apps.hrm.serializers import ClockRecordListSerializer, EmployeeSerializer, FaceClockCreateSerializer, FaceLoginSerializer 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) serializer.save(update_by=request.user)
return Response() 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): class ClockRecordViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
""" """