diff --git a/apps/ecm/migrations/0009_auto_20220704_1504.py b/apps/ecm/migrations/0009_auto_20220704_1504.py new file mode 100644 index 00000000..ed0c842c --- /dev/null +++ b/apps/ecm/migrations/0009_auto_20220704_1504.py @@ -0,0 +1,26 @@ +# Generated by Django 3.2.12 on 2022-07-04 07:04 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ecm', '0008_auto_20220704_0841'), + ] + + operations = [ + migrations.RemoveField( + model_name='remind', + name='dept', + ), + migrations.RemoveField( + model_name='remind', + name='post', + ), + migrations.AddField( + model_name='event', + name='happen_time', + field=models.DateTimeField(blank=True, null=True, verbose_name='事件发生时间'), + ), + ] diff --git a/apps/ecm/models.py b/apps/ecm/models.py index 0331c96f..b1963daa 100644 --- a/apps/ecm/models.py +++ b/apps/ecm/models.py @@ -90,6 +90,7 @@ class Event(CommonBModel): voice = models.TextField('语音地址', null=True, blank=True) is_timeout = models.BooleanField('是否超时', default=False) mark = models.PositiveSmallIntegerField('事件标记', default=10, help_text='10(正常)/20(误报)') + happen_time = models.DateTimeField('事件发生时间', null=True, blank=True) handle_time = models.DateTimeField('处理时间', null=True, blank=True) handle_user = models.ForeignKey(User, verbose_name='处理人', on_delete=models.CASCADE, null=True, blank=True) diff --git a/apps/ecm/service.py b/apps/ecm/service.py index f4ba9c93..5fe1da6a 100644 --- a/apps/ecm/service.py +++ b/apps/ecm/service.py @@ -21,6 +21,7 @@ from django.conf import settings import os from apps.utils.speech import generate_voice from threading import Thread +from apps.utils.tools import timestamp_to_time from apps.vm.models import Visit requests.packages.urllib3.disable_warnings() @@ -203,8 +204,9 @@ def create_remind(event: Event): # 开始发送通知 for i in Remind.objects.filter(event=event): if i.notify_setting.sms_enable: - if i.user.employee.phone: - Thread(target=send_sms, args=(i.user.employee.phone, '1001', {'code': '5678'}), daemon=True).start() + if i.recipient.employee.phone: + Thread(target=send_sms, args=(i.recipient.employee.phone, + '1001', {'code': '5678'}), daemon=True).start() if i.notify_setting.wechat_enable: pass event.is_pushed = True @@ -243,6 +245,7 @@ def dispatch_dahua_event(data: dict): event.obj_cate = obj_cate event.vchannel = vchannel event.employee = ep + event.happen_time = timestamp_to_time(int(data['info']['alarmDate'])) event.save() for i in ecs: Eventdo.objects.get_or_create(cate=i, event=event, defaults={ diff --git a/apps/utils/tools.py b/apps/utils/tools.py index 70aa6b39..e4d9824b 100755 --- a/apps/utils/tools.py +++ b/apps/utils/tools.py @@ -1,7 +1,7 @@ import textwrap import random import string -import time +from datetime import datetime def print_roundtrip(response, *args, **kwargs): @@ -35,6 +35,11 @@ def rannum(num): return salt +def timestamp_to_time(millis): + """10位时间戳转换为日期格式字符串""" + return datetime.fromtimestamp(millis) + + def p_in_poly(p, poly): px = p['x'] py = p['y']