|
@@ -662,7 +662,38 @@ class AlarmPlan:
|
|
|
|
|
|
# 卫生间频次统计
|
|
# 卫生间频次统计
|
|
def handle_bathroom_stay_frequency(self):
|
|
def handle_bathroom_stay_frequency(self):
|
|
- return
|
|
|
|
|
|
+ try:
|
|
|
|
+ dev_id = self.dev_id_
|
|
|
|
+ device:Device = dev_map_find(dev_id)
|
|
|
|
+ if not device:
|
|
|
|
+ return
|
|
|
|
+
|
|
|
|
+ start_dt, end_dt = helper.get_query_time_range(self.param_)
|
|
|
|
+ params = {
|
|
|
|
+ "dev_id" : self.dev_id_,
|
|
|
|
+ "event_type": event_desc_map[EventType.STAY_DETECTION.value],
|
|
|
|
+ "start_dt": start_dt,
|
|
|
|
+ "end_dt": end_dt
|
|
|
|
+ }
|
|
|
|
+ userdata = {
|
|
|
|
+ "start_dt" : start_dt,
|
|
|
|
+ "end_dt" : end_dt
|
|
|
|
+ }
|
|
|
|
+ db_req_que.put(DBRequest(
|
|
|
|
+ sql=sqls.sql_query_events_by_datetime,
|
|
|
|
+ params=params,
|
|
|
|
+ callback=self.cb_bathroom_stay_frequency,
|
|
|
|
+ userdata=userdata))
|
|
|
|
+
|
|
|
|
+ except json.JSONDecodeError as e:
|
|
|
|
+ tb_info = traceback.extract_tb(e.__traceback__)
|
|
|
|
+ for frame in tb_info:
|
|
|
|
+ LOGERR(f"[{frame.filename}:{frame.lineno}] @{frame.name}(), error:{e}, {e.doc}")
|
|
|
|
+ except Exception as e:
|
|
|
|
+ tb_info = traceback.extract_tb(e.__traceback__)
|
|
|
|
+ for frame in tb_info:
|
|
|
|
+ LOGERR(f"[{frame.filename}:{frame.lineno}] @{frame.name}(), error: {e}")
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
# 异常消失
|
|
# 异常消失
|
|
@@ -682,10 +713,10 @@ class AlarmPlan:
|
|
|
|
|
|
for row in result:
|
|
for row in result:
|
|
dev_id: str = row.get("dev_id")
|
|
dev_id: str = row.get("dev_id")
|
|
- event_uuid: str = row.get("uuid")
|
|
|
|
|
|
+ event_uuid: str = row.get("uuid")
|
|
plan_uuid: str = row.get("plan_uuid")
|
|
plan_uuid: str = row.get("plan_uuid")
|
|
event_type: int = row.get("event_type")
|
|
event_type: int = row.get("event_type")
|
|
- info: dict = json.loads(row["info"]) if row.get("info") else {}
|
|
|
|
|
|
+ info: dict = json.loads(row["info"]) if row.get("info") else {}
|
|
is_handle: str = row.get("is_handle")
|
|
is_handle: str = row.get("is_handle")
|
|
create_time: str = row.get("create_time")
|
|
create_time: str = row.get("create_time")
|
|
update_time: str = row.get("update_time")
|
|
update_time: str = row.get("update_time")
|
|
@@ -744,10 +775,10 @@ class AlarmPlan:
|
|
|
|
|
|
for row in result:
|
|
for row in result:
|
|
dev_id: str = row.get("dev_id")
|
|
dev_id: str = row.get("dev_id")
|
|
- event_uuid: str = row.get("uuid")
|
|
|
|
|
|
+ event_uuid: str = row.get("uuid")
|
|
plan_uuid: str = row.get("plan_uuid")
|
|
plan_uuid: str = row.get("plan_uuid")
|
|
event_type: int = row.get("event_type")
|
|
event_type: int = row.get("event_type")
|
|
- info: dict = json.loads(row["info"]) if row.get("info") else {}
|
|
|
|
|
|
+ info: dict = json.loads(row["info"]) if row.get("info") else {}
|
|
is_handle: str = row.get("is_handle")
|
|
is_handle: str = row.get("is_handle")
|
|
create_time: str = row.get("create_time")
|
|
create_time: str = row.get("create_time")
|
|
update_time: str = row.get("update_time")
|
|
update_time: str = row.get("update_time")
|
|
@@ -926,3 +957,75 @@ class AlarmPlan:
|
|
LOGERR(f"[{frame.filename}:{frame.lineno}] @{frame.name}(), error: {e}")
|
|
LOGERR(f"[{frame.filename}:{frame.lineno}] @{frame.name}(), error: {e}")
|
|
return
|
|
return
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ # 如厕频次统计回调
|
|
|
|
+ def cb_bathroom_stay_frequency(self, result, userdata):
|
|
|
|
+ try:
|
|
|
|
+ if result:
|
|
|
|
+ count = 0
|
|
|
|
+ event_list = []
|
|
|
|
+
|
|
|
|
+ for row in result:
|
|
|
|
+ dev_id: str = row.get("dev_id")
|
|
|
|
+ event_uuid: str = row.get("uuid")
|
|
|
|
+ plan_uuid: str = row.get("plan_uuid")
|
|
|
|
+ event_type: int = row.get("event_type")
|
|
|
|
+ info: dict = json.loads(row["info"]) if row.get("info") else {}
|
|
|
|
+ is_handle: str = row.get("is_handle")
|
|
|
|
+ create_time: str = row.get("create_time")
|
|
|
|
+ update_time: str = row.get("update_time")
|
|
|
|
+ is_deleted: str = row.get("is_deleted")
|
|
|
|
+ remark: str = row.get("remark")
|
|
|
|
+
|
|
|
|
+ event_list.append(info)
|
|
|
|
+
|
|
|
|
+ this_event_uuid = str(uuid.uuid4())
|
|
|
|
+ last_info = {
|
|
|
|
+ "start_time" : userdata["start_dt"],
|
|
|
|
+ "end_time" : userdata["end_dt"],
|
|
|
|
+ "count" : len(event_list),
|
|
|
|
+ "event_list" : event_list
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # 入库
|
|
|
|
+ event_uuid = str(uuid.uuid4())
|
|
|
|
+ params = {
|
|
|
|
+ "dev_id": dev_id,
|
|
|
|
+ "uuid": this_event_uuid,
|
|
|
|
+ "plan_uuid": self.plan_uuid_,
|
|
|
|
+ "event_type": event_desc_map[self.event_type_],
|
|
|
|
+ "info": json.dumps(last_info, ensure_ascii=False),
|
|
|
|
+ "is_handle": 0,
|
|
|
|
+ "create_time": get_bj_time_s(),
|
|
|
|
+ "is_deleted": 0,
|
|
|
|
+ "remark": json.dumps({}, ensure_ascii=False)
|
|
|
|
+ }
|
|
|
|
+ db_req_que.put(DBRequest(sql=sqls.sql_insert_events, params=params, callback=None))
|
|
|
|
+
|
|
|
|
+ # 通知
|
|
|
|
+ mqtt_send.alarm_event(dev_id, self.dev_name_, this_event_uuid, plan_uuid, event_desc_map[self.event_type_], last_info, "events")
|
|
|
|
+
|
|
|
|
+ LOGINFO(f"EventAttr_ToiletingFrequency succeed")
|
|
|
|
+ else:
|
|
|
|
+ LOGDBG("EventAttr_ToiletingFrequency, empty result")
|
|
|
|
+
|
|
|
|
+ except json.JSONDecodeError as e:
|
|
|
|
+ tb_info = traceback.extract_tb(e.__traceback__)
|
|
|
|
+ for frame in tb_info:
|
|
|
|
+ LOGERR(f"[{frame.filename}:{frame.lineno}] @{frame.name}(), error:{e}, {e.doc}")
|
|
|
|
+ except Exception as e:
|
|
|
|
+ tb_info = traceback.extract_tb(e.__traceback__)
|
|
|
|
+ for frame in tb_info:
|
|
|
|
+ LOGERR(f"[{frame.filename}:{frame.lineno}] @{frame.name}(), error: {e}")
|
|
|
|
+ return
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|