From 16b34c939d6790fe6ebe61f8f0e85fe80ee52224 Mon Sep 17 00:00:00 2001 From: sunty <1172534965@qq.com> Date: 星期三, 29 五月 2024 14:44:16 +0800 Subject: [PATCH] 修改准备数据流程,适应较大数据量的操作 --- data/prepare.go | 37 ++++++++++++++++--------------------- 1 files changed, 16 insertions(+), 21 deletions(-) diff --git a/data/prepare.go b/data/prepare.go index 8b0f675..1d38dd2 100644 --- a/data/prepare.go +++ b/data/prepare.go @@ -65,11 +65,11 @@ } // SetFrequentAddress 鏂规硶璁$畻鍑虹幇鏈�棰戠箒鐨勫嚭琛屽湴鍧�骞惰缃负甯哥敤鍦板潃 -func SetFrequentAddress(c *db.CaptureInfo) { +func GetFrequentAddress(captureDetail []db.CaptureDetail) string { outAddressCounts := make(map[string]int) inAddressCounts := make(map[string]int) // 缁熻姣忎釜鍑鸿鍦板潃鐨勫嚭鐜版鏁� - for _, detail := range c.CaptureDetail { + for _, detail := range captureDetail { if detail.Direction == "out" { outAddressCounts[detail.CaptureAddress]++ } @@ -96,12 +96,11 @@ } } } - // 灏嗗嚭鐜版鏁版渶澶氱殑鍑鸿鍦板潃璁剧疆涓哄父鐢ㄥ湴鍧� - c.FrequentAddress = frequentAddress + return frequentAddress } // 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, communityID string) []db.PersonStatus { filteredInfos := make([]db.PersonStatus, 0) // 鏋勫缓蹇�熸煡鎵剧储寮曪紝鏂逛究鏌ユ壘瀵瑰簲鐨勪汉鍛樼姸鎬佸拰瑙勫垯 @@ -109,35 +108,31 @@ ruleIndex := make(map[string]db.PersonnelStatusRule) for _, person := range personStatus { - statusIndex[person.DocumentNumber] = person + statusIndex[person.DocumentNumber] = *person } for _, rule := range ruleInfos { ruleIndex[rule.Name] = rule } - + //fmt.Println("statusIndex: ", statusIndex) + //fmt.Println("ruleIndex: ", ruleIndex) // 澶勭悊姣忎釜鎶撴媿淇℃伅 for _, info := range captureInfos { //fmt.Println("info", info.DocumentNumber, info.Status, info.FrequentAddress) //fmt.Println("person", statusIndex[info.DocumentNumber].DocumentNumber, statusIndex[info.DocumentNumber].Status, statusIndex[info.DocumentNumber].FrequentAddress) // 妫�鏌ユ槸鍚﹀瓨鍦ㄥ搴旂殑浜哄憳鐘舵�� - person, ok := statusIndex[info.DocumentNumber] - if !ok { - // 涓嶅瓨鍦ㄥ搴旂殑浜哄憳鐘舵�佷负鏂版暟鎹� - filteredInfos = append(filteredInfos, db.PersonStatus{OrgId: info.OrgId, CommunityID: communityID, DocumentNumber: info.DocumentNumber, Status: info.Status, FrequentAddress: info.FrequentAddress}) - continue - } - + person := statusIndex[info.DocumentNumber] + //fmt.Println("person: ", person.DocumentNumber, person.Status, person.FrequentAddress, person.LastAppearanceTime, person.LastAppearanceStatusTime) // 鍒ゆ柇鐘舵�佸拰甯哥敤鍦板潃鏄惁鐩哥瓑锛屽鏋滅浉绛夊垯蹇界暐 - if (info.Status == person.Status || info.CaptureDays <= ruleIndex[person.DocumentNumber].DetectionDaysEnd) && - info.FrequentAddress == person.FrequentAddress { - continue - } - + //if (info.Status == person.Status || info.CaptureDays <= ruleIndex[person.DocumentNumber].DetectionDaysEnd) && + // info.FrequentAddress == person.FrequentAddress { + // continue + //} // 鏇存柊杩囨护鍚庣殑淇℃伅鍒楄〃 - filteredInfos = append(filteredInfos, db.PersonStatus{OrgId: info.OrgId, CommunityID: communityID, DocumentNumber: info.DocumentNumber, Status: info.Status, FrequentAddress: info.FrequentAddress}) + //fmt.Println("LastAppearanceTime: ", person.LastAppearanceTime) + filteredInfos = append(filteredInfos, db.PersonStatus{CommunityID: communityID, DocumentNumber: info.DocumentNumber, Status: info.Status, FrequentAddress: info.FrequentAddress, LastAppearanceStatusTime: person.LastAppearanceTime}) } - + //fmt.Println("filteredInfos: ", filteredInfos) return filteredInfos } -- Gitblit v1.8.0