dispath dahua event 大改后bug

This commit is contained in:
曹前明 2022-09-23 10:27:24 +08:00
parent 32cdb2ad59
commit 12d86ae839
1 changed files with 10 additions and 9 deletions

View File

@ -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: