| | |
| | | // 执行程序入口 |
| | | func ExecuteTask() { |
| | | //进出异常布控任务,暂时归类到标签计算部分 |
| | | fmt.Println("进出异常开始入口!!!!!!") |
| | | //fmt.Println("进出异常开始入口!!!!!!") |
| | | tasks, err := db.GetAllTaskData() |
| | | if err != nil { |
| | | logger.Error("GetAllTaskData Error", err) |
| | |
| | | tkInfo.Name = taskInfo.Name |
| | | } |
| | | } |
| | | fmt.Println("tkInfo: ", tkInfo) |
| | | //fmt.Println("tkInfo: ", tkInfo) |
| | | days := config.Api.AInterval |
| | | docNumIdMap, err := db.QueryLastIdByDayRange(days, days-1) |
| | | if err != nil { |
| | | logger.Error("QueryByDayRange err: ", err) |
| | | } |
| | | fmt.Println("docNumIdMap: ", len(docNumIdMap)) |
| | | //fmt.Println("docNumIdMap: ", len(docNumIdMap)) |
| | | for docNumber, id := range docNumIdMap { |
| | | //fmt.Println(docNumber, id) |
| | | alarmRules := make([]db.AlarmRule, 0) |
| | | flag := task.EnteringButNotLeaving(docNumber, id, days) |
| | | flag := task.EnteringButNotLeaving(docNumber, days) |
| | | if flag == true { |
| | | alarmRules = append(alarmRules, db.AlarmRule{RuleId: strconv.Itoa(tkInfo.Id), RuleText: tkInfo.Name, AlarmLevel: "0"}) |
| | | } |
| | | //fmt.Println("alarmRules: ", id, alarmRules) |
| | | addFlag, err := db.AddAlarmRules(alarmRules, id) |
| | | if err != nil { |
| | | logger.Error("AddAlarmRules err: ", err) |
| | |
| | | //if communityID != "50010101010000001001" { |
| | | // continue |
| | | //} |
| | | fmt.Println("communityID: ", communityID) |
| | | //查询社区内人员档案,方便数据更新 |
| | | personStatus, err := db.GetDBPersonStatusData(communityID) |
| | | personStatusList, err := db.QueryPersonStatusWithPagination(communityID, 30) |
| | | if err != nil { |
| | | logger.Error("GetDBPersonStatusData Error", err) |
| | | logger.Error("QueryPersonStatusWithPagination err: ", err) |
| | | } |
| | | //fmt.Println(labeManage) |
| | | //fmt.Println("personStatus: ", personStatus) |
| | | //fmt.Println("CcmmunityIDs: ", cmmunityID) |
| | | //按社区id查询近一个月es数据 |
| | | captureInfos, err := db.Query1MDataByCommunityId(communityID) |
| | | //fmt.Println("captureInfos: ", captureInfos) |
| | | //residentCount := 0 |
| | | // |
| | | |
| | | documentNumberIDS := make([]string, 0) |
| | | for _, personStatus := range personStatusList { |
| | | //fmt.Println("personStatus.LastAppearanceTime: ", personStatus.LastAppearanceTime) |
| | | documentNumberIDS = append(documentNumberIDS, personStatus.DocumentNumber) |
| | | //业务逻辑 |
| | | } |
| | | //fmt.Println("len(documentNumberIDS)", len(documentNumberIDS)) |
| | | captureInfos := make([]db.CaptureInfo, 0) |
| | | batchSize := config.Elastic.BatchSize |
| | | //fmt.Println(batchSize) |
| | | for i := 0; i < len(documentNumberIDS); i += batchSize { |
| | | end := i + batchSize |
| | | if end > len(documentNumberIDS) { |
| | | end = len(documentNumberIDS) |
| | | } |
| | | batch := documentNumberIDS[i:end] |
| | | //fmt.Println("batch: ", batch) |
| | | batchCaptureInfos, err := db.Query1MDataByCommunityId(communityID, batch, 30) |
| | | if err != nil { |
| | | logger.Error("Query1MDataByCommunityId Error", err) |
| | | } |
| | | if len(batchCaptureInfos) == 0 { |
| | | continue |
| | | } |
| | | //fmt.Println("batchCaptureInfos: ", batchCaptureInfos) |
| | | captureInfos = append(captureInfos, batchCaptureInfos...) |
| | | } |
| | | if len(captureInfos) == 0 { |
| | | continue |
| | | } |
| | | fmt.Println("共计有档案数据条数为:", len(captureInfos)) |
| | | //补全分析所需数据 |
| | | for i := range captureInfos { |
| | | //fmt.Println(captureInfos[i].DocumentNumber) |
| | | |
| | | captureDays, overnightCount := data.CalculateCaptureDays(captureInfos[i].CaptureDetail) |
| | | captureInfos[i].CaptureDays = captureDays |
| | | captureInfos[i].OvernightStays = overnightCount |
| | | |
| | | //if captureInfos[i].CaptureDays <= 10 && captureInfos[i].OvernightStays >= 1 { |
| | | // fmt.Println(captureInfos[i].DocumentNumber) |
| | | // fmt.Println("该人员出现天数为", captureInfos[i].CaptureDays) |
| | | // fmt.Println("该人员过夜天数为", captureInfos[i].OvernightStays) |
| | | //} |
| | | |
| | | captureInfos[i].Status = data.SetStatus(captureDays, ruleInfo) |
| | | if captureInfos[i].OvernightStays >= 5 && (captureInfos[i].CaptureDays <= 14 && captureInfos[i].CaptureDays >= 5) { |
| | | captureInfos[i].Status = "resident" |
| | | } |
| | | //if captureInfos[i].Status == "resident" { |
| | | // residentCount++ |
| | | //} |
| | | //fmt.Println("SetStatus: ", captureInfos[i].Status) |
| | | age, err := db.QueryAgeById(captureInfos[i].DocumentNumber) |
| | | if err != nil { |
| | | logger.Error("QueryAgeById ERROR", err) |
| | | } |
| | | captureInfos[i].Age = age |
| | | data.SetFrequentAddress(&captureInfos[i]) |
| | | //fmt.Println("captureInfos[i].Age: ", captureInfos[i].Age) |
| | | captureInfos[i].FrequentAddress = data.GetFrequentAddress(captureInfos[i].CaptureDetail) |
| | | //fmt.Println("CaptureDetail: ", captureInfos[i].DocumentNumber, captureInfos[i].CaptureDays, captureInfos[i].CaptureDetail) |
| | | } |
| | | //fmt.Println("residentCount: ", residentCount) |
| | | if err != nil { |
| | | logger.Error("MatchAllTargets Error", err) |
| | | } |
| | | if len(captureInfos) == 0 { |
| | | continue |
| | | } |
| | | //fmt.Println("captureInfosQ: ", captureInfos) |
| | | |
| | | for _, identity := range labeManage { |
| | | switch identity.Name { |
| | | case "服务人员": |
| | |
| | | logger.Error("UpdateDBPersonLabel Error", errIdentity) |
| | | } |
| | | //continue |
| | | //fmt.Println("captureInfos: ", captureInfos) |
| | | postCaptureInfos := data.ProcessData(captureInfos, personStatus, ruleInfo, communityID) |
| | | //fmt.Println("postCaptureInfos: ", postCaptureInfos) |
| | | //fmt.Println("共过滤条数:", len(captureInfos)-len(postCaptureInfos)) |
| | | |
| | | postCaptureInfos := data.ProcessData(captureInfos, personStatusList, ruleInfo, communityID) |
| | | /*for _, inf := range postCaptureInfos { |
| | | fmt.Println("inf: ", inf.DocumentNumber, inf.Status, inf.FrequentAddress, inf.LastAppearanceStatusTime) |
| | | }*/ |
| | | //fmt.Println("共更新档案数:", len(postCaptureInfos)) |
| | | //fmt.Println("----->captureInfos: ", len(captureInfos)) |
| | | //continue |
| | | UpdatePersonInfoErr := db.UpdatePersonInfo(postCaptureInfos, communityID) |
| | | if UpdatePersonInfoErr != nil { |
| | | logger.Error("MatchPermanentResidentTargets Error: ", UpdatePersonInfoErr) |