From de37adb6dec5e9da70f9cc11b234176ee6fda986 Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期五, 24 五月 2024 21:04:39 +0800
Subject: [PATCH] 添加布控模块,合并person_status和snapshot_count_summary数据库等

---
 data/prepare.go |   31 ++++++++++++++++++++++++++-----
 1 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/data/prepare.go b/data/prepare.go
index ac6cf9a..8b0f675 100644
--- a/data/prepare.go
+++ b/data/prepare.go
@@ -7,10 +7,14 @@
 )
 
 // 璁$畻鎶撴媿澶╂暟
-func CalculateCaptureDays(details []db.CaptureDetail) int {
+func CalculateCaptureDays(details []db.CaptureDetail) (int, int) {
 	// 浣跨敤 map 鏉ュ瓨鍌ㄦ瘡澶╂槸鍚︽湁鎶撴媿璁板綍
 	captureMap := make(map[string]bool)
-	for _, detail := range details {
+	//pointDate := ""
+	//pointTime := ""
+	//pointDirection := ""
+	overnightCount := 0
+	for i, detail := range details {
 		// 瑙f瀽鎶撴媿鏃ユ湡
 		layout := "2006-01-02 15:04:05"
 		captureTime, err := time.Parse(layout, detail.CaptureDate)
@@ -18,10 +22,27 @@
 			fmt.Println("瑙f瀽鎶撴媿鏃ユ湡鏃跺嚭閿�:", err)
 			continue
 		}
+		//fmt.Println(captureTime, detail.Direction)
 		// 鑾峰彇鏃ユ湡閮ㄥ垎
 		date := captureTime.Format("2006-01-02")
+		//time := captureTime.Format("15:04:05")
 		// 鍦� map 涓爣璁拌繖涓�澶╂湁鎶撴媿璁板綍
 		captureMap[date] = true
+		if i == len(details)-1 {
+			break
+		}
+
+		// 绗竴涓獙璇佹潯浠讹細褰撳墠涓� in锛屾椂闂村湪涓嬪崍 16 鐐逛互鍚�
+		currTime, _ := time.Parse("2006-01-02 15:04:05", detail.CaptureDate)
+		if detail.Direction == "in" && currTime.Hour() >= 16 {
+			// 绗簩涓獙璇佹潯浠讹細涓嬩竴涓负 out锛屾椂闂村湪涓婂崍 5 鐐逛箣鍚� 12 鐐逛箣鍓�
+			nextDetail := details[i+1]
+			nextTime, _ := time.Parse("2006-01-02 15:04:05", nextDetail.CaptureDate)
+			nextDay := nextTime.AddDate(0, 0, -1).Format("2006-01-02")
+			if nextDetail.Direction == "out" && nextTime.Hour() >= 5 && nextTime.Hour() < 12 && nextDay == detail.CaptureDate[:10] {
+				overnightCount++
+			}
+		}
 	}
 
 	// 缁熻鏈夋姄鎷嶈褰曠殑澶╂暟
@@ -30,7 +51,7 @@
 		captureDays++
 	}
 
-	return captureDays
+	return captureDays, overnightCount
 }
 
 // 璁剧疆鐘舵��
@@ -103,7 +124,7 @@
 		person, ok := statusIndex[info.DocumentNumber]
 		if !ok {
 			// 涓嶅瓨鍦ㄥ搴旂殑浜哄憳鐘舵�佷负鏂版暟鎹�
-			filteredInfos = append(filteredInfos, db.PersonStatus{CommunityID: communityID, DocumentNumber: info.DocumentNumber, Status: info.Status, FrequentAddress: info.FrequentAddress})
+			filteredInfos = append(filteredInfos, db.PersonStatus{OrgId: info.OrgId, CommunityID: communityID, DocumentNumber: info.DocumentNumber, Status: info.Status, FrequentAddress: info.FrequentAddress})
 			continue
 		}
 
@@ -114,7 +135,7 @@
 		}
 
 		// 鏇存柊杩囨护鍚庣殑淇℃伅鍒楄〃
-		filteredInfos = append(filteredInfos, db.PersonStatus{CommunityID: communityID, DocumentNumber: info.DocumentNumber, Status: info.Status, FrequentAddress: info.FrequentAddress})
+		filteredInfos = append(filteredInfos, db.PersonStatus{OrgId: info.OrgId, CommunityID: communityID, DocumentNumber: info.DocumentNumber, Status: info.Status, FrequentAddress: info.FrequentAddress})
 
 	}
 

--
Gitblit v1.8.0