diff --git a/apps/ecm/service.py b/apps/ecm/service.py index d86ede9c..02d244da 100644 --- a/apps/ecm/service.py +++ b/apps/ecm/service.py @@ -305,7 +305,7 @@ def dispatch_dahua_event(data: dict): area = vchannel.area obj_cate = 'other' ep = None - if alarm_type in [1001003, 1001000]: + if alarm_type in [1001003, 1001000]: obj_cate = 'people' face_img_o = dhClient.get_full_pic(data['info']['alarmPicture']) global_img_o = dhClient.get_full_pic(data['info']['extend']['globalScenePicUrl']) @@ -313,7 +313,7 @@ def dispatch_dahua_event(data: dict): global_img_o = dhClient.get_full_pic(data['info']['alarmPicture']) happen_time = timestamp_to_time(int(data['info']['alarmDate'])) algo_channels = AlgoChannel.objects.filter(vchannel=vchannel, algo__self_algo=True).exclude( - algo__code=None).order_by('algo__priority', 'algo__create_time').values('id', 'algo', 'algo__code') + algo__code=None).order_by('algo__priority', 'algo__create_time').values('id', 'algo', 'algo__code') cates = [] # 触发的事件种类 algo_codes = [] # 需要执行的ai算法 for i in algo_channels: @@ -328,12 +328,12 @@ def dispatch_dahua_event(data: dict): if m == n['algo__code']: cates.append(n['algo']) if alarm_type == 1001003 and area: # 内部人员需要执行未带定位卡算法 - ep = Employee.objects.filter(id_number=data['info']['extend']['candidateInfo'][0]['id']).first() - # 检查是否携带定位卡只针对内部员工和相关方 - if 'miss_lcard' in algo_codes and ep: - is_happend = check_miss_lcard(ep=ep, area=area) - if is_happend: - cates.append(EventCate.objects.get(code='miss_lcard').first().id) + ep = Employee.objects.filter(id_number=data['info']['extend']['candidateInfo'][0]['id']).first() + # 检查是否携带定位卡只针对内部员工和相关方 + if 'miss_lcard' in algo_codes and ep: + is_happend = check_miss_lcard(ep=ep, area=area) + if is_happend: + cates.append(EventCate.objects.filter(code='miss_lcard').first().id) event = Event() event.global_img = save_dahua_pic(global_img_o) event.area = area @@ -436,7 +436,8 @@ def loc_change(data): # 触发超时滞留事件 code_name = 'stand_area' if code_name: # 2分钟不再次触发 - last_event = Event.objects.filter(cates__code=code_name, employee=blts.employee).order_by('-create_time').first() + last_event = Event.objects.filter( + cates__code=code_name, employee=blts.employee).order_by('-create_time').first() if last_event and last_event.create_time + timedelta(minutes=2) > timezone.now(): pass else: