Merge branch 'develop' of https://e.coding.net/ctcdevteam/hberp/hberp into develop
This commit is contained in:
commit
0eff00cb4e
|
@ -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()
|
||||
|
||||
|
|
|
@ -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,41 @@ 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):
|
||||
"""
|
||||
填写离岗说明
|
||||
"""
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
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):
|
||||
"""
|
||||
|
|
|
@ -187,7 +187,7 @@ class RecordFormSerializer(serializers.ModelSerializer):
|
|||
|
||||
class RecordFormCreateSerializer(serializers.ModelSerializer):
|
||||
form = serializers.PrimaryKeyRelatedField(
|
||||
queryset=RecordForm.objects.all(), label="复制表ID")
|
||||
queryset=RecordForm.objects.all(), label="复制表ID", required=False)
|
||||
class Meta:
|
||||
model = RecordForm
|
||||
fields = ['name', 'type', 'step', 'material', 'number', 'enabled', 'form']
|
||||
|
|
|
@ -186,6 +186,23 @@ class RecordFormViewSet(OptimizationMixin, CreateUpdateModelAMixin, ModelViewSet
|
|||
serializer = self.serializer_class(instance=RecordFormField.objects.filter(form=instance, is_deleted=False), many=True)
|
||||
return Response(serializer.data)
|
||||
|
||||
@transaction.atomic
|
||||
def create(self, request, *args, **kwargs):
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
vdata = serializer.validated_data
|
||||
form = vdata.pop('form', None)
|
||||
instance = RecordForm(**vdata)
|
||||
instance.create_by = request.user
|
||||
instance.save()
|
||||
if form:
|
||||
for i in RecordFormField.objects.filter(form=form, is_deleted=False):
|
||||
i.pk = None
|
||||
i.form = instance
|
||||
i.parent = None
|
||||
i.save()
|
||||
return Response()
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -208,22 +225,6 @@ class RecordFormFieldViewSet(OptimizationMixin, CreateUpdateModelAMixin, ModelVi
|
|||
return RecordFormFieldUpdateSerializer
|
||||
return RecordFormFieldSerializer
|
||||
|
||||
@transaction.atomic
|
||||
def create(self, request, *args, **kwargs):
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
vdata = serializer.validated_data
|
||||
form = vdata.pop('form', None)
|
||||
instance = RecordForm(**vdata)
|
||||
instance.save(create_by=request.user)
|
||||
if form:
|
||||
for i in RecordFormField.objects.filter(form=form, is_deleted=False):
|
||||
i.pk = None
|
||||
i.form = instance
|
||||
i.parent = None
|
||||
i.save()
|
||||
return super().create(request, *args, **kwargs)
|
||||
|
||||
class TechDocViewSet(OptimizationMixin, CreateUpdateModelAMixin, ModelViewSet):
|
||||
"""
|
||||
技术文件增删改查
|
||||
|
|
Loading…
Reference in New Issue