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
|
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()
|
||||||
|
|
||||||
|
|
|
@ -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):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -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']
|
||||||
|
|
|
@ -186,6 +186,23 @@ class RecordFormViewSet(OptimizationMixin, CreateUpdateModelAMixin, ModelViewSet
|
||||||
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):
|
||||||
"""
|
"""
|
||||||
技术文件增删改查
|
技术文件增删改查
|
||||||
|
|
Loading…
Reference in New Issue