From 7cec134265802fab71534deacf7462252c002142 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 15 Mar 2023 00:29:01 +0800 Subject: [PATCH] =?UTF-8?q?refector:=20correct=5Fswip=5Ftask=20=E4=BB=8E?= =?UTF-8?q?=E5=A4=A7=E5=8D=8E=E6=89=93=E5=8D=A1=E8=AE=B0=E5=BD=95=E9=87=8C?= =?UTF-8?q?=E6=A0=A1=E6=AD=A3=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/tasks.py | 30 ++++++++++++++++++++++++------ apps/third/tapis.py | 4 ++++ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/apps/hrm/tasks.py b/apps/hrm/tasks.py index c599a004..005f291d 100755 --- a/apps/hrm/tasks.py +++ b/apps/hrm/tasks.py @@ -7,6 +7,8 @@ from datetime import datetime, timedelta from apps.third.dahua import dhClient from apps.third.tapis import dhapis from apps.hrm.services import HrmService +from django.utils import timezone +from datetime import timedelta import time @@ -18,12 +20,28 @@ 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)) +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)) + # 从大华历史记录校正打卡记录 + now = timezone.now() + if start_time == "": + start_time = (now - timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S") + elif end_time == "": + end_time = now.strftime("%Y-%m-%d %H:%M:%S") + data = { + "pageNum":1, + "pageSize":"400", + "startSwingTime":start_time, + "endSwingTime":end_time, + "openType":"61" + } + _, res = dhClient.request(**dhapis['swipe_list'], json=data) + for i in res['pageData']: + HrmService.swipe_next(i['channelCode'], i['paperNumber'], i['swingTime'], i['enterOrExit'], i) @shared_task def correct_card_time(): diff --git a/apps/third/tapis.py b/apps/third/tapis.py index ab779e52..45a51500 100755 --- a/apps/third/tapis.py +++ b/apps/third/tapis.py @@ -108,6 +108,10 @@ dhapis = { "url": "/evo-apigw/evo-event/1.2.0/alarm-record/detail?alarmCode={alarmCode}&dbType={dbType}&alarmDate={alarmDate}", "method": "get" }, + "swipe_list": { + "url": "/evo-apigw/evo-accesscontrol/1.2.0/card/accessControl/swingCardRecord/bycondition/combined", + "method": "post" + }, "dev_snap": { "url": "/evo-apigw/admin/API/EVO/invoke/DMS", "method": "post"