From 9f6f3ddb6279ce4a06f7f153f4a0aff2832b7438 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 3 Nov 2022 12:42:34 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E8=B7=91=E4=B8=80=E6=AE=B5=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E7=9A=84=E6=89=93=E5=8D=A1=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/hrm/serializers.py | 5 +++++ apps/hrm/tasks.py | 8 ++++++++ apps/hrm/views.py | 16 +++++++++++++++- 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/apps/hrm/serializers.py b/apps/hrm/serializers.py index 044c284c..8f484b28 100755 --- a/apps/hrm/serializers.py +++ b/apps/hrm/serializers.py @@ -204,3 +204,8 @@ class CertificateSerializer(CustomModelSerializer): class Meta: model = Certificate fields = '__all__' + + +class CorrectSerializer(serializers.Serializer): + start_time = serializers.DateTimeField() + end_time = serializers.DateTimeField() \ No newline at end of file diff --git a/apps/hrm/tasks.py b/apps/hrm/tasks.py index 0b6103af..a91e5d2a 100755 --- a/apps/hrm/tasks.py +++ b/apps/hrm/tasks.py @@ -10,3 +10,11 @@ def update_all_employee_not_atwork(): 将所有员工设为非在岗状态 """ Employee.objects.all().update(is_atwork=False, last_check_time=None, not_work_remark=None) + +@shared_task +def correct_swip_task(start_time, end_time): + from apps.monitor.models import DrfRequestLog + from apps.hrm.services import HrmService + lgs = DrfRequestLog.objects.filter(path='/api/third/dahua/c_swip/', requested_at__gte=start_time, requested_at__lte=end_time) + for i in lgs: + HrmService.swipe(data=eval(i.data)) \ No newline at end of file diff --git a/apps/hrm/views.py b/apps/hrm/views.py index a75d3c18..6b44dd10 100755 --- a/apps/hrm/views.py +++ b/apps/hrm/views.py @@ -18,7 +18,7 @@ from apps.hrm.serializers import (CertificateCreateUpdateSerializer, Certificate EmployeeCreateUpdateSerializer, EmployeeDetailSerializer, EmployeeImproveSerializer, EmployeeNotWorkRemarkSerializer, EmployeeSerializer, - NotWorkRemarkListSerializer) + NotWorkRemarkListSerializer, CorrectSerializer) from apps.hrm.services import HrmService from apps.third.dahua import dhClient @@ -254,6 +254,20 @@ class ClockRecordViewSet(ListModelMixin, CustomGenericViewSet): ) return Response({'path': export_excel(field_data, data, '打卡记录')}) + @action(methods=['post'], detail=False, perms_map={'post': '*'}, + serializer_class=CorrectSerializer) + def correct_swip(self, request, pk=None): + """ + 重跑一段时间的打卡记录 + + 重跑一段时间的打卡记录 + """ + sr = CorrectSerializer(data=request.data) + sr.is_valid(raise_exception=True) + vdata = sr.validated_data + from apps.hrm.tasks import correct_swip_task + correct_swip_task.delay(vdata['start_time'], vdata['start_time']) + return Response() class NotWorkRemarkViewSet(ListModelMixin, CustomGenericViewSet): """