From 8d5a2a098346203c26d7ea16e35d788c9b52d227 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 3 Nov 2022 11:25:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=A1bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/develop/views.py | 6 +++--- apps/hrm/services.py | 19 ++++++++++--------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/apps/develop/views.py b/apps/develop/views.py index 797b4e21..e91e8e8b 100755 --- a/apps/develop/views.py +++ b/apps/develop/views.py @@ -191,9 +191,9 @@ class TestViewSet(CustomGenericViewSet): 测试刷脸打卡事件 """ from apps.hrm.services import HrmService - data = {'id': 45688, 'category': 'alarm', 'method': 'alarm.msg', 'info': {'orgName': '河北省', 'nodeCode': '1000097$7$0$0', 'deviceCode': '1000097', 'alarmCode': '4cf3624877134431bb5c2d225ee984bf', 'nodeType': '2', 'alarmDate': 1667443695, 'alarmGrade': 2, 'isSave': False, 'unitType': 7, 'extend': {'orgName': '河北省', 'acsChannelCode': '1000097$7$0$0', 'enterOrExit': 3, 'openTypeStr': '正常关门', 'openFailedCode': 0, 'cardType': 0, 'swingTime': '2022-11-03 10:48:15', 'deviceCode': '1000097', 'deviceName': '厂区门出', 'openType': '56', 'orgCode': '001', 'openResult': 1, 'errorDetail': '', 'from': 'evo-accesscontrol', 'id': 1037679585401114624, 'acsChannelName': '厂区门出_门禁通道_1', 'cardStatus': '0', 'rfidType': 0}, 'alarmType': 56, 'channelSeq': 0, 'orgCode': '001', 'channelName': '厂区门出_门禁通道_1', 'alarmStat': 1, 'isEvent': True}, 'subsystem': 'evo-accesscontrol', 'userIds': None, 'sid': None, 'domainId': None, 'infoArray': None, 'protocol': None} - # data = {'id': 44371, 'category': 'alarm', 'method': 'alarm.msg', 'info': {'orgName': '河北省', 'nodeCode': '1000134$7$0$0', 'deviceCode': '1000134', 'alarmCode': 'f4a2912b6f4849a183c37cca878e2c98', 'alarmPicture': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20221102/1/dsf_441b02c1-5a84-11ed-b23a-e4246c7d1635_30716404_30732676.jpg', 'nodeType': '2', 'alarmDate': 1667430199, 'alarmGrade': 2, 'isSave': False, 'unitType': 7, 'extend': {'deptName': '生产运行部', 'deptIdList': [26], 'acsChannelCode': '1000134$7$0$0', 'maskState': 0, 'enterOrExit': 1, 'openTypeStr': '人脸刷门', 'swingTime': '2022-11-03 07:03:19', 'deviceName': '公司门入口', 'personCode': '13383626061', 'openType': '61', 'isOverTemp': False, 'orgCode': '001', 'paperNumber': '130602198409200659', 'errorDetail': '', 'from': 'evo-accesscontrol', 'id': 1037622985747468288, 'beginTime': 1667430199000, 'acsChannelName': '公司门入口_门禁通道_1', 'cardStatus': '0', 'faceImageUrl': [ - # 'http://10.99.5.24:8927/6ad010cf-ce45-11ec-9715-e4246c7d1635/20221102/1/dsf_441b02c1-5a84-11ed-b23a-e4246c7d1635_30716404_30732676.jpg'], 'orgName': '河北省', 'openFailedCode': 0, 'sex': 1, 'deptId': '26', 'cardType': 0, 'curTemp': 35.0, 'deviceCode': '1000134', 'personName': '吕晓宾', 'personImg': '6ae577ee-ce45-11ec-bb54-e4246c7d1635/20220907/1/880a1f27-2e68-11ed-b073-e4246c7d1635.jpg', 'openResult': 1, 'personId': 263, 'recordImage1': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20221102/1/dsf_441b02c1-5a84-11ed-b23a-e4246c7d1635_30716404_30732676.jpg', 'category': '0', 'cardNumber': '6973273125', 'rfidType': 0, 'age': 0}, 'alarmType': 61, 'channelSeq': 0, 'orgCode': '001', 'channelName': '公司门入口_门禁通道_1', 'alarmStat': 1, 'isEvent': True}, 'subsystem': 'evo-accesscontrol', 'userIds': None, 'sid': None, 'domainId': None, 'infoArray': None, 'protocol': None} + # data = {'id': 45688, 'category': 'alarm', 'method': 'alarm.msg', 'info': {'orgName': '河北省', 'nodeCode': '1000097$7$0$0', 'deviceCode': '1000097', 'alarmCode': '4cf3624877134431bb5c2d225ee984bf', 'nodeType': '2', 'alarmDate': 1667443695, 'alarmGrade': 2, 'isSave': False, 'unitType': 7, 'extend': {'orgName': '河北省', 'acsChannelCode': '1000097$7$0$0', 'enterOrExit': 3, 'openTypeStr': '正常关门', 'openFailedCode': 0, 'cardType': 0, 'swingTime': '2022-11-03 10:48:15', 'deviceCode': '1000097', 'deviceName': '厂区门出', 'openType': '56', 'orgCode': '001', 'openResult': 1, 'errorDetail': '', 'from': 'evo-accesscontrol', 'id': 1037679585401114624, 'acsChannelName': '厂区门出_门禁通道_1', 'cardStatus': '0', 'rfidType': 0}, 'alarmType': 56, 'channelSeq': 0, 'orgCode': '001', 'channelName': '厂区门出_门禁通道_1', 'alarmStat': 1, 'isEvent': True}, 'subsystem': 'evo-accesscontrol', 'userIds': None, 'sid': None, 'domainId': None, 'infoArray': None, 'protocol': None} + data = {'id': 44371, 'category': 'alarm', 'method': 'alarm.msg', 'info': {'orgName': '河北省', 'nodeCode': '1000134$7$0$0', 'deviceCode': '1000134', 'alarmCode': 'f4a2912b6f4849a183c37cca878e2c98', 'alarmPicture': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20221102/1/dsf_441b02c1-5a84-11ed-b23a-e4246c7d1635_30716404_30732676.jpg', 'nodeType': '2', 'alarmDate': 1667430199, 'alarmGrade': 2, 'isSave': False, 'unitType': 7, 'extend': {'deptName': '生产运行部', 'deptIdList': [26], 'acsChannelCode': '1000134$7$0$0', 'maskState': 0, 'enterOrExit': 1, 'openTypeStr': '人脸刷门', 'swingTime': '2022-11-03 07:03:19', 'deviceName': '公司门入口', 'personCode': '13383626061', 'openType': '61', 'isOverTemp': False, 'orgCode': '001', 'paperNumber': '130602198409200659', 'errorDetail': '', 'from': 'evo-accesscontrol', 'id': 1037622985747468288, 'beginTime': 1667430199000, 'acsChannelName': '公司门入口_门禁通道_1', 'cardStatus': '0', 'faceImageUrl': [ + 'http://10.99.5.24:8927/6ad010cf-ce45-11ec-9715-e4246c7d1635/20221102/1/dsf_441b02c1-5a84-11ed-b23a-e4246c7d1635_30716404_30732676.jpg'], 'orgName': '河北省', 'openFailedCode': 0, 'sex': 1, 'deptId': '26', 'cardType': 0, 'curTemp': 35.0, 'deviceCode': '1000134', 'personName': '吕晓宾', 'personImg': '6ae577ee-ce45-11ec-bb54-e4246c7d1635/20220907/1/880a1f27-2e68-11ed-b073-e4246c7d1635.jpg', 'openResult': 1, 'personId': 263, 'recordImage1': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20221102/1/dsf_441b02c1-5a84-11ed-b23a-e4246c7d1635_30716404_30732676.jpg', 'category': '0', 'cardNumber': '6973273125', 'rfidType': 0, 'age': 0}, 'alarmType': 61, 'channelSeq': 0, 'orgCode': '001', 'channelName': '公司门入口_门禁通道_1', 'alarmStat': 1, 'isEvent': True}, 'subsystem': 'evo-accesscontrol', 'userIds': None, 'sid': None, 'domainId': None, 'infoArray': None, 'protocol': None} HrmService.swipe(data=data) return Response() diff --git a/apps/hrm/services.py b/apps/hrm/services.py index 27e939ed..cc835d82 100755 --- a/apps/hrm/services.py +++ b/apps/hrm/services.py @@ -209,13 +209,14 @@ class HrmService: from apps.rpm.models import Rpj nodeCode = data['info']['nodeCode'] id_number = data['info']['extend'].get('paperNumber', None) + swip_time = data['info']['extend']['swingTime'] if id_number: device = TDevice.objects.filter(code=nodeCode).first() if device: tzinfo = tz.gettz('Asia/Shanghai') - now = datetime.now(tz=tzinfo) - first_time = datetime(year=now.year, month=now.month, day=now.day, hour=0, minute=0, second=0, tzinfo=tzinfo) - end_time = datetime(year=now.year, month=now.month, day=now.day, hour=23, minute=59, second=59, tzinfo=tzinfo) + s_time_f = datetime.strptime(swip_time, "%Y-%m-%d %H:%M:%S").replace(tzinfo=tzinfo) + first_time = datetime(year=s_time_f.year, month=s_time_f.month, day=s_time_f.day, hour=0, minute=0, second=0, tzinfo=tzinfo) + end_time = datetime(year=s_time_f.year, month=s_time_f.month, day=s_time_f.day, hour=23, minute=59, second=59, tzinfo=tzinfo) if device.is_clock: # 如果设置为关联考勤 # myLogger.info(data['info']['extend']) @@ -227,8 +228,8 @@ class HrmService: cr_10 = ClockRecord.objects.filter( type=10, employee=ep, create_time__gte=first_time, create_time__lte=end_time).first() if cr_10: - if now < cr_10.create_time: - cr_10.create_time = now + if s_time_f < cr_10.create_time: + cr_10.create_time = s_time_f cr_10.trigger = 'door' cr_10.detail = data['info']['extend'] cr_10.save() @@ -240,7 +241,7 @@ class HrmService: cr_10.detail = data['info']['extend'] cr_10.save() ep.is_atwork = True - ep.last_check_time = now + ep.last_check_time = s_time_f ep.save() elif data['info']['extend']['enterOrExit'] == 2: # 如果是出门 @@ -252,8 +253,8 @@ class HrmService: cr_20 = ClockRecord.objects.filter( type=20, employee=ep, create_time__gte=first_time, create_time__lte=end_time).first() if cr_20: - if now > cr_20.create_time: - cr_20.create_time = now + if s_time_f > cr_20.create_time: + cr_20.create_time = s_time_f cr_20.trigger = 'door' cr_20.detail = data['info']['extend'] cr_20.save() @@ -265,7 +266,7 @@ class HrmService: cr_20.detail = data['info']['extend'] cr_20.save() ep.is_atwork = False - ep.last_check_time = now + ep.last_check_time = s_time_f ep.save() # 进行相关方/访客项目更新