From 61c76d09c574cbd308294dae7a2e9115d1ce5004 Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期四, 30 五月 2024 13:42:08 +0800
Subject: [PATCH] 调整进出异常过滤 置在数据段

---
 rule/service.go |   29 ++++++++++++++++++++++++-----
 1 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/rule/service.go b/rule/service.go
index 2a476d2..5fac3c6 100644
--- a/rule/service.go
+++ b/rule/service.go
@@ -3,6 +3,7 @@
 import (
 	"basic.com/valib/logger.git"
 	"fmt"
+	"ruleModelEngine/cache"
 	"ruleModelEngine/config"
 	"ruleModelEngine/data"
 	"ruleModelEngine/db"
@@ -29,8 +30,7 @@
 //	return true
 //}
 
-// 鎵ц绋嬪簭鍏ュ彛
-func ExecuteTask() {
+func executeEnteringButNotLeaving(communityId string) {
 	//杩涘嚭寮傚父甯冩帶浠诲姟锛屾殏鏃跺綊绫诲埌鏍囩璁$畻閮ㄥ垎
 	//fmt.Println("杩涘嚭寮傚父寮�濮嬪叆鍙o紒锛侊紒锛侊紒锛�")
 	tasks, err := db.GetAllTaskData()
@@ -44,17 +44,31 @@
 			tkInfo.Name = taskInfo.Name
 		}
 	}
+
 	//fmt.Println("tkInfo: ", tkInfo)
+	//fmt.Println("docNumIdMap: ", len(docNumIdMap))
+	//鑾峰彇鍟嗕綇妤糲ameraid
+
+	cameraIds := make([]string, 0)
+	for _, deviceInfo := range cache.Device {
+		if deviceInfo.AreaID == communityId && deviceInfo.BuildingType == db.BuildingTypeMixedUse {
+			cameraIds = append(cameraIds, deviceInfo.DeviceCode)
+		}
+	}
+	if len(cameraIds) == 0 {
+		logger.Info("涓嶅瓨鍦ㄥ晢浣忔ゼ璁惧锛�", cameraIds)
+		return
+	}
+	//鏌ヨ寰呭垽鏂繘鍑哄紓甯搁璀︽。妗�
 	days := config.Api.AInterval
-	docNumIdMap, err := db.QueryLastIdByDayRange(days, days-1)
+	docNumIdMap, err := db.QueryLastIdByDayRange(communityId, cameraIds, days, days-1)
 	if err != nil {
 		logger.Error("QueryByDayRange err: ", err)
 	}
-	//fmt.Println("docNumIdMap: ", len(docNumIdMap))
 	for docNumber, id := range docNumIdMap {
 		//fmt.Println(docNumber, id)
 		alarmRules := make([]db.AlarmRule, 0)
-		flag := task.EnteringButNotLeaving(docNumber, days)
+		flag := task.EnteringButNotLeaving(docNumber, communityId, cameraIds, days)
 		if flag == true {
 			alarmRules = append(alarmRules, db.AlarmRule{RuleId: strconv.Itoa(tkInfo.Id), RuleText: tkInfo.Name, AlarmLevel: "0"})
 		}
@@ -67,7 +81,10 @@
 			logger.Info("AddAlarmRules success: ", id)
 		}
 	}
+}
 
+// 鎵ц绋嬪簭鍏ュ彛
+func ExecuteTask() {
 	//return
 	ruleInfo, err := db.GetAllData()
 	if err != nil {
@@ -85,11 +102,13 @@
 	}
 	//fmt.Println(labeManage)
 	for _, communityID := range communityIDs {
+		executeEnteringButNotLeaving(communityID)
 		//涓囧叏绀惧尯
 		//if communityID != "50010101010000001001" {
 		//	continue
 		//}
 		fmt.Println("communityID: ", communityID)
+		//continue
 		//鏌ヨ绀惧尯鍐呬汉鍛樻。妗堬紝鏂逛究鏁版嵁鏇存柊
 		personStatusList, err := db.QueryPersonStatusWithPagination(communityID, 30)
 		if err != nil {

--
Gitblit v1.8.0