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 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,41 @@ 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):
"""
填写离岗说明
"""
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): class ClockRecordViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
""" """

View File

@ -187,7 +187,7 @@ class RecordFormSerializer(serializers.ModelSerializer):
class RecordFormCreateSerializer(serializers.ModelSerializer): class RecordFormCreateSerializer(serializers.ModelSerializer):
form = serializers.PrimaryKeyRelatedField( form = serializers.PrimaryKeyRelatedField(
queryset=RecordForm.objects.all(), label="复制表ID") queryset=RecordForm.objects.all(), label="复制表ID", required=False)
class Meta: class Meta:
model = RecordForm model = RecordForm
fields = ['name', 'type', 'step', 'material', 'number', 'enabled', 'form'] fields = ['name', 'type', 'step', 'material', 'number', 'enabled', 'form']

View File

@ -185,6 +185,23 @@ class RecordFormViewSet(OptimizationMixin, CreateUpdateModelAMixin, ModelViewSet
instance = self.get_object() instance = self.get_object()
serializer = self.serializer_class(instance=RecordFormField.objects.filter(form=instance, is_deleted=False), many=True) serializer = self.serializer_class(instance=RecordFormField.objects.filter(form=instance, is_deleted=False), many=True)
return Response(serializer.data) 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 RecordFormFieldUpdateSerializer
return RecordFormFieldSerializer 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): class TechDocViewSet(OptimizationMixin, CreateUpdateModelAMixin, ModelViewSet):
""" """
技术文件增删改查 技术文件增删改查