开启喇叭日志

This commit is contained in:
曹前明 2022-09-01 19:19:00 +08:00
parent 8e89a0d555
commit 8c051eb482
4 changed files with 28 additions and 24 deletions

View File

@ -184,8 +184,9 @@ class TestViewSet(CustomGenericViewSet):
测试算法2 测试算法2
""" """
from apps.ecm.service import dispatch_dahua_event from apps.ecm.service import dispatch_dahua_event
data = {'id': None, 'category': 'alarm', 'method': 'alarm.msg', 'info': {'orgName': '河北省', 'alarmPictureSize': '885977', 'nodeCode': '1002182$1$0$0', 'deviceCode': '1002182', 'alarmCode': '{B55A1489-0064-8D42-B6F4-EFF2DE1DA9B1}', 'alarmPicture': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20220831/1/dsf_3c4ef3fe-290f-11ed-884a-e4246c7d1635_55425449_56311426.jpg', 'nodeType': 2, 'deviceName': '192.168.10.155', # data = {'id': None, 'category': 'alarm', 'method': 'alarm.msg', 'info': {'orgName': '河北省', 'alarmPictureSize': '885977', 'nodeCode': '1002182$1$0$0', 'deviceCode': '1002182', 'alarmCode': '{B55A1489-0064-8D42-B6F4-EFF2DE1DA9B1}', 'alarmPicture': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20220831/1/dsf_3c4ef3fe-290f-11ed-884a-e4246c7d1635_55425449_56311426.jpg', 'nodeType': 2, 'deviceName': '192.168.10.155',
'alarmDate': '1661942981', 'alarmGrade': 2, 'isSave': True, 'unitType': 1, 'unitSeq': 0, 'extend': {'params': {'ObjectType': 'Human', 'GroupId': 30.0, 'ObjectSubType': ''}, 'objectSubType': ''}, 'alarmType': 964, 'channelSeq': 0, 'orgCode': '001', 'channelName': '192.168.10.155_视频通道_1', 'alarmStat': 1, 'isEvent': True}, 'subsystem': 'admin', 'userIds': None, 'sid': None, 'domainId': None, 'infoArray': None, 'protocol': None} # 'alarmDate': '1661942981', 'alarmGrade': 2, 'isSave': True, 'unitType': 1, 'unitSeq': 0, 'extend': {'params': {'ObjectType': 'Human', 'GroupId': 30.0, 'ObjectSubType': ''}, 'objectSubType': ''}, 'alarmType': 964, 'channelSeq': 0, 'orgCode': '001', 'channelName': '192.168.10.155_视频通道_1', 'alarmStat': 1, 'isEvent': True}, 'subsystem': 'admin', 'userIds': None, 'sid': None, 'domainId': None, 'infoArray': None, 'protocol': None}
data = {'id': 1662026969203, 'category': 'alarm', 'method': 'alarm.msg', 'info': {'orgName': '曲阳县金隅水泥厂', 'nodeCode': '1000038$1$0$24', 'deviceCode': '1000038', 'alarmCode': '44df73ba-a423-4479-af70-1f930b00a7e0', 'alarmPicture': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20220901/1/dsf_80fed821-29c9-11ed-884a-e4246c7d1635_27257520_27264993.jpg', 'nodeType': 2, 'alarmDate': '1662026965', 'alarmGrade': 2, 'isSave': True, 'extend': {'faceImageUrl': ['6ad010cf-ce45-11ec-9715-e4246c7d1635/20220901/1/dsf_80fed821-29c9-11ed-884a-e4246c7d1635_27257520_27264993.jpg'], 'glass': 0, 'beard': 0, 'candidateInfo': [{'birthday': '2022-8-24', 'faceImageUrl': ['6ad010cf-ce45-11ec-9715-e4246c7d1635/20220901/1/dsf_80fed821-29c9-11ed-884a-e4246c7d1635_27264993_27338395.jpg'], 'groupName': '全体人员', 'similarity': 97, 'sex': 1, 'cardType': 1, 'name': '曹前明', 'devPersonId': '48', 'id': '342422199004040175', 'type': 0}], 'sex': 0, 'occurrenceCount': 0, 'deviceCode': '1000038', 'globalScenePicUrl': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20220901/1/dsf_80fed821-29c9-11ed-884a-e4246c7d1635_26915031_27257520.jpg', 'eye': 0, 'alarmType': 1001003, 'perFlag': -1, 'mouth': 0, 'feature': [], 'isHit': True, 'channelSeq': 24, 'szSerialUUID': '', 'channelName': '窑头平台值班室', 'beginTime': 1662026965, 'endTime': 1662026965, 'age': -1, 'mask': 0}, 'unitType': 1, 'alarmType': 1001003, 'channelSeq': 24, 'orgCode': '001001001', 'channelName': '窑头平台值班室', 'alarmStat': 1, 'isEvent': True}, 'subsystem': 'evo-face', 'userIds': None, 'sid': None, 'domainId': None, 'infoArray': None, 'protocol': None}
dispatch_dahua_event(data=data) dispatch_dahua_event(data=data)
return Response() return Response()

View File

@ -115,24 +115,28 @@ def save_voice_and_speak(event: Event):
Args: Args:
event (Event): _description_ event (Event): _description_
""" """
main_cate = event.cates.all().order_by('priority', 'create_time').first() try:
v_p, v_num = main_cate.voice_person, main_cate.voice_num main_cate = event.cates.all().order_by('priority', 'create_time').first()
_, event.voice, _ = generate_voice(event.voice_msg, v_p) v_p, v_num = main_cate.voice_person, main_cate.voice_num
event.save() _, event.voice, _ = generate_voice(event.voice_msg, v_p)
if main_cate.speaker_on: event.save()
sps = [] if main_cate.speaker_on:
if event.area: # 如果事件存在发生区域 sps = []
sps = list(TDevice.objects.filter(area=event.area, type=TDevice.DEVICE_SPEAKER).values_list('code', flat=True)) if event.area: # 如果事件存在发生区域
if len(sps) == 0: # 如果当前区域没有喇叭就找覆盖区的喇叭 sps = list(TDevice.objects.filter(area=event.area,
sps = list(TDevice.objects.filter(areas=event.area, type=TDevice.DEVICE_SPEAKER).values_list('code', flat=True))
type=TDevice.DEVICE_SPEAKER).values_list('code', flat=True)) if len(sps) == 0: # 如果当前区域没有喇叭就找覆盖区的喇叭
# 查找固定喇叭 sps = list(TDevice.objects.filter(areas=event.area,
for m in event.cates.all(): type=TDevice.DEVICE_SPEAKER).values_list('code', flat=True))
for n in m.speakers.all(): # 查找固定喇叭
if n.code not in sps: for m in event.cates.all():
sps.append(n.code) for n in m.speakers.all():
if sps: if n.code not in sps:
spClient.speak(event.voice, sps, v_num) sps.append(n.code)
if sps:
spClient.speak(event.voice, sps, v_num)
except Exception:
myLogger.error('喇叭播放失败', exc_info=True)
def create_remind(event: Event, params: dict): def create_remind(event: Event, params: dict):
@ -147,7 +151,7 @@ def create_remind(event: Event, params: dict):
n_s = NotifySetting.objects.filter(event_cate__in=event.cates.all()).order_by('sort') n_s = NotifySetting.objects.filter(event_cate__in=event.cates.all()).order_by('sort')
area_level = event.area.level area_level = event.area.level
for i in n_s: for i in n_s:
if i.user and area_level >= i.filter_area_level: if i.user and area_level < i.filter_area_level:
Remind.objects.get_or_create(event=event, recipient=i.user, Remind.objects.get_or_create(event=event, recipient=i.user,
defaults={ defaults={
'event': event, 'event': event,
@ -205,7 +209,6 @@ def create_remind(event: Event, params: dict):
for i in Remind.objects.filter(event=event): for i in Remind.objects.filter(event=event):
if i.notify_setting.sms_enable and i.recipient.employee.phone: if i.notify_setting.sms_enable and i.recipient.employee.phone:
# 发送短信通知 # 发送短信通知
Thread(target=send_sms, args=(i.recipient.employee.phone, Thread(target=send_sms, args=(i.recipient.employee.phone,
1003, params), daemon=True).start() 1003, params), daemon=True).start()
if i.notify_setting.wechat_enable: if i.notify_setting.wechat_enable:

View File

@ -71,7 +71,7 @@ class NotifySettingViewSet(CustomModelViewSet):
ordering = ['sort', 'create_time'] ordering = ['sort', 'create_time']
class EventViewSet(ListModelMixin, RetrieveModelMixin, CustomGenericViewSet): class EventViewSet(ListModelMixin, RetrieveModelMixin, DestroyModelMixin, CustomGenericViewSet):
perms_map = {'get': '*'} perms_map = {'get': '*'}
queryset = Event.objects.all() queryset = Event.objects.all()
serializer_class = EventSerializer serializer_class = EventSerializer

View File

@ -109,7 +109,7 @@ class SpClient:
if raise_exception: if raise_exception:
raise ParseError(**err_detail) raise ParseError(**err_detail)
return 'fail', dict(detail=detail, code='sp_'+str(ret['code'])) return 'fail', dict(detail=detail, code='sp_'+str(ret['code']))
# self.handle_log(result='success', response=ret) self.handle_log(result='success', response=ret)
return 'success', ret return 'success', ret
self.handle_log(result='error', errors=traceback.format_exc()) self.handle_log(result='error', errors=traceback.format_exc())
if raise_exception: if raise_exception: