Merge branch 'develop' of https://e.coding.net/ctcdevteam/hberp/hberp into develop

This commit is contained in:
shijing 2022-02-18 15:05:08 +08:00
commit 0eff00cb4e
4 changed files with 60 additions and 19 deletions

View File

@ -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()

View File

@ -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):
"""

View File

@ -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']

View File

@ -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):
"""
技术文件增删改查