dispath dahua event 大改后bug
This commit is contained in:
parent
32cdb2ad59
commit
12d86ae839
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue