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