From 8496ad2c954f6caaf3c9155f58f81ca04d5d5451 Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期一, 09 九月 2024 20:52:30 +0800
Subject: [PATCH] 1、住户不再降级 2、住户地址随时间边长定位越来越准确 3、住户分析的服务人员归类到访客

---
 data/prepare.go             |    5 ++++-
 db/models.go                |    9 +++++++++
 rule/service.go             |    7 ++++++-
 config/rulemodelengine.yaml |    2 +-
 rule/engine.go              |    3 ++-
 5 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/config/rulemodelengine.yaml b/config/rulemodelengine.yaml
index 7bf547e..866adf5 100644
--- a/config/rulemodelengine.yaml
+++ b/config/rulemodelengine.yaml
@@ -29,7 +29,7 @@
   host: 192.168.20.115
   port: 4101
   capAddrDaysThreshold: 50 #capAddrDaysThreshold 鎶撴媿闈炵┖闈�1妤奸潪鍦颁笅鍦板潃澶╂暟鍗犳�诲ぉ鏁版瘮鍊硷紝鐧惧垎鍒�
-  timeThreshold: 270 #timeThreshold 鏌ヨ妗f鏃堕棿鑼冨洿锛屼负涔嬪墠timeThreshold澶╀箣鍐呯殑鏁版嵁
+  timeThreshold: 30 #timeThreshold 鏌ヨ妗f鏃堕棿鑼冨洿锛屼负涔嬪墠timeThreshold澶╀箣鍐呯殑鏁版嵁
   csTimes: 10 #climbed stairs times 绐滄ゼ娆℃暟
   csHours: 5 #climbed stairs hours 绐滄ゼ棰勮鏃堕棿 璇sHours鏃堕棿鑼冨洿涔嬪唴
   aInterval: 3 #interval time between anomalies  杩涘嚭寮傚父闂撮殧鏃堕棿
diff --git a/data/prepare.go b/data/prepare.go
index 6fec710..86d24cc 100644
--- a/data/prepare.go
+++ b/data/prepare.go
@@ -200,7 +200,7 @@
 }
 
 // processData 鍑芥暟澶勭悊鏁版嵁锛屾牴鎹姹傝繃婊ゆ帀鏁版嵁骞舵牴鎹鍒欐洿鏂扮姸鎬�
-func ProcessData(captureInfos []db.CaptureInfo, personStatus []*db.PersonStatus, ruleInfos []db.PersonnelStatusRule, communityID string) []db.PersonStatus {
+func ProcessData(captureInfos []db.CaptureInfo, personStatus []*db.PersonStatus, ruleInfos []db.PersonnelStatusRule, statusNo map[string]int, communityID string) []db.PersonStatus {
 	filteredInfos := make([]db.PersonStatus, 0)
 
 	// 鏋勫缓蹇�熸煡鎵剧储寮曪紝鏂逛究鏌ユ壘瀵瑰簲鐨勪汉鍛樼姸鎬佸拰瑙勫垯
@@ -230,6 +230,9 @@
 		//}
 		// 鏇存柊杩囨护鍚庣殑淇℃伅鍒楄〃
 		//fmt.Println("LastAppearanceTime: ", person.LastAppearanceTime)
+		if statusNo[person.Status] > statusNo[info.Status] {
+			continue
+		}
 		filteredInfos = append(filteredInfos, db.PersonStatus{CommunityID: communityID, DocumentNumber: info.DocumentNumber, Status: info.Status, FrequentAddress: info.FrequentAddress, LastAppearanceStatusTime: person.LastAppearanceTime})
 
 	}
diff --git a/db/models.go b/db/models.go
index d6125f2..c48417b 100644
--- a/db/models.go
+++ b/db/models.go
@@ -41,6 +41,14 @@
 	BuildingTypeOffice         BuildingType = 6 //鍐欏瓧妤�
 )
 
+//type status int
+
+const (
+	StatusStranger int = 1
+	StatusVisitor  int = 2
+	StatusResident int = 3
+)
+
 type Device struct {
 	DeviceCode       string       `gorm:"column:deviceCode" json:"deviceCode" example:"J83762"`                                 //璁惧缂栫爜
 	AreaID           string       `json:"areaID" gorm:"index;column:communityID;type:varchar(299);"`                            //甯镐綇灏忓尯 domain unit ID
@@ -92,6 +100,7 @@
 	FrequentAddress          string `gorm:"column:frequent_address;type:varchar(255);not null;default:''" json:"frequentAddress"` //甯稿嚭鐜板湴鐐�
 	CreatedAt                time.Time
 	UpdatedAt                time.Time
+	NewStatus                string `gorm:"-"`
 	////OrgId           string `gorm:"column:org_id"`
 	//CommunityID     string `gorm:"column:communityID"`
 	//DocumentNumber  string `gorm:"column:documentNumber"`
diff --git a/rule/engine.go b/rule/engine.go
index ca60c2c..8d3322f 100644
--- a/rule/engine.go
+++ b/rule/engine.go
@@ -113,7 +113,8 @@
 				//fmt.Println(addrDataArray)
 				//fmt.Println("threshold: ", threshold)
 				//fmt.Println("stdDev: ", stdDev)
-				info.Status = "fieldworker"
+				//info.Status = "fieldworker"
+				info.Status = "visitor"
 				captureInfo = append(captureInfo, info)
 				identity = append(identity, db.Identity{
 					CommunityID:    communityID,
diff --git a/rule/service.go b/rule/service.go
index 0b45822..b670028 100644
--- a/rule/service.go
+++ b/rule/service.go
@@ -128,6 +128,10 @@
 		logger.Error("GetAllData Error", err)
 	}
 	fmt.Println("ruleInfo: ", ruleInfo)
+	statusNo := make(map[string]int)
+	statusNo["stranger"] = db.StatusStranger
+	statusNo["visitor"] = db.StatusVisitor
+	statusNo["resident"] = db.StatusResident
 	communityIDs, err := db.GetCommunityIDs()
 	fmt.Println("communityIDs:", communityIDs)
 	if err != nil {
@@ -164,6 +168,7 @@
 			//涓氬姟閫昏緫
 		}
 		fmt.Println("绀惧尯妗f鎬绘潯鏁帮細", len(documentNumberIDS))
+
 		captureInfos := make([]db.CaptureInfo, 0)
 		batchSize := config.Elastic.BatchSize
 		//fmt.Println(batchSize)
@@ -238,7 +243,7 @@
 
 		//continue
 
-		postCaptureInfos := data.ProcessData(captureInfos, personStatusList, ruleInfo, communityID)
+		postCaptureInfos := data.ProcessData(captureInfos, personStatusList, ruleInfo, statusNo, communityID)
 		for _, inf := range postCaptureInfos {
 			fmt.Println("---->pause prepare: capture ", inf.DocumentNumber, inf.Status, inf.FrequentAddress)
 			//return

--
Gitblit v1.8.0