From fca319958029fa924308e50cb61202d7d6ff5008 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期三, 19 二月 2025 13:33:37 +0800
Subject: [PATCH] 暂停聚集模型

---
 models/accessRegularity.go |   32 +++++++++++++++++++++-----------
 1 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/models/accessRegularity.go b/models/accessRegularity.go
index 286734c..dfb3986 100644
--- a/models/accessRegularity.go
+++ b/models/accessRegularity.go
@@ -94,7 +94,7 @@
 		return fmt.Errorf("task id:%s, %s timeRange Time range setting error. %+v", task.ID, task.Name, task.Rules)
 	}
 
-	logger.Debugf("LocationModel init finish ...task id:%s, name:%s, rule:%+v", task.ID, task.Name, m)
+	logger.Debugf("AccessRegularity init finish ...task id:%s, name:%s, rule:%+v", task.ID, task.Name, m)
 
 	return nil
 }
@@ -106,11 +106,14 @@
 	// 鏌ユ壘鎸囧畾鏃堕棿鑼冨洿鍐呭嚭琛岃繃鐨勬。妗堢紪鍙�
 	now := time.Now()
 	startDate := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location()).AddDate(0, 0, -m.Duration)
+	endDate := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location())
+
 	err := db.GetDB().Raw(`
 		SELECT
 			document_number,
 			frequent_address,
 			community_id,
+			org_id
 		FROM
 			snapshot_count_summary
 		WHERE
@@ -123,31 +126,36 @@
 		logger.Warnf(err.Error())
 	}
 
+	logger.Debugf("task %s base filter result %d", m.Task.Name, len(baseFilter))
 	esCli := db.GetEsClient()
+	// 璋冪敤es鍒嗘瀽姝や汉鐨勫嚭琛岃寰嬫槸鍚︾鍚堟潯浠讹紝 杩斿洖绗﹀悎鏉′欢鐨勬鏁板拰鏈�鍚庝竴娆$鍚堟潯浠剁殑鏃堕棿
+	sTime := startDate.Format(time.DateTime)
+	eTime := endDate.Format(time.DateTime)
+
 	for _, p := range baseFilter {
-		// 璋冪敤es鍒嗘瀽姝や汉鐨勫嚭琛岃寰嬫槸鍚︾鍚堟潯浠讹紝 杩斿洖绗﹀悎鏉′欢鐨勬鏁板拰鏈�鍚庝竴娆$鍚堟潯浠剁殑鏃堕棿
-		sTime := startDate.Format(time.DateTime)
-		eTime := time.Now().Format(time.DateTime)
 		captures, err := service.QueryEsRecord(esCli, sTime, eTime, nil, []interface{}{p.CommunityId}, []string{p.DocumentNumber})
+		//logger.Debugf("task %s person %s captures %d", m.Task.Name, p.DocumentNumber, len(captures))
+
 		if len(captures) == 0 || err != nil {
 			continue
 		}
+		//logger.Debugf("task %s person %s captures %+v", m.Task.Name, p.DocumentNumber, captures[0])
 
 		// 鏍规嵁鎶撴媿鏃堕棿鍜屽嚭鍏ユ柟鍚戯紝璁$畻绗﹀悎瑙勫垯鍐呯殑鍑哄叆娆℃暟
-		hitCount := countValidDays(captures, m.StartHour, m.EndHour, m.LastDirection)
+		hitCount, pd := countValidDays(captures, m.StartHour, m.EndHour, m.LastDirection)
 
 		if hitCount > m.Appearances {
 			// 鍐欐暟鎹簱
 			result := &db.ModelTaskResults{
 				Title:         m.Task.Name,
-				Event:         fmt.Sprintf("%s %d娆�", m.Task.Name, hitCount),
+				Event:         fmt.Sprintf("%s - %s 鏃堕棿娈靛唴, %s %d娆�", sTime, eTime, m.Task.Name, hitCount),
 				ModelID:       m.Task.ModelID,
 				ModelTaskID:   m.Task.ID,
 				CommunityId:   p.CommunityId,
 				OrgID:         p.OrgId,
 				ObjectIds:     p.DocumentNumber,
 				Location:      p.FrequentAddress,
-				PicDate:       time.Unix(p.LastAppearanceTime, 0).Format(time.DateTime),
+				PicDate:       pd,
 				FirstPersonID: p.DocumentNumber,
 			}
 
@@ -166,7 +174,7 @@
 
 func (m *RegularityModel) Shutdown() error {
 	// 娓呯悊璧勬簮
-	fmt.Println("Shutting down LocationModel Model")
+	fmt.Println("Shutting down accessRegularityS Model")
 	return nil
 }
 
@@ -174,10 +182,11 @@
 	return ""
 }
 
-func countValidDays(records []*service.ESRecordInfo, startHour, endHour int, direction string) int {
+func countValidDays(records []*service.ESRecordInfo, startHour, endHour int, direction string) (int, string) {
 	layout := "2006-01-02 15:04:05"             // 鏃堕棿鏍煎紡
 	lastDirectionMap := make(map[string]string) // 璁板綍鏈�鍚庝竴鏉� Direction
 	lastTimeMap := make(map[string]time.Time)   // 璁板綍鏈�鍚庝竴鏉℃椂闂�
+	lastPicDate := ""
 
 	// 鍒ゆ柇鏄惁璺ㄥぉ
 	var isCrossDay bool
@@ -187,7 +196,7 @@
 
 	for _, record := range records {
 		// 瑙f瀽鏃堕棿
-		t, err := time.Parse(layout, record.PicDate)
+		t, err := time.ParseInLocation(layout, record.PicDate, time.Local)
 		if err != nil {
 			fmt.Println("瑙f瀽鏃堕棿澶辫触:", err)
 			continue
@@ -219,6 +228,7 @@
 		if lastTime, exists := lastTimeMap[key]; !exists || t.After(lastTime) {
 			lastTimeMap[key] = t
 			lastDirectionMap[key] = record.CameraLocation.Direction
+			lastPicDate = record.PicDate
 		}
 	}
 
@@ -230,5 +240,5 @@
 		}
 	}
 
-	return count
+	return count, lastPicDate
 }

--
Gitblit v1.8.0