| | |
| | | |
| | | import ( |
| | | "basic.com/valib/logger.git" |
| | | "fmt" |
| | | "ruleModelEngine/cache" |
| | | "ruleModelEngine/config" |
| | | "ruleModelEngine/db" |
| | | "strconv" |
| | | "time" |
| | | ) |
| | | |
| | | type alarmRule struct { |
| | | ruleId int |
| | | ruleText string |
| | | } |
| | | |
| | | func TaskAnalysisService(id string) { |
| | | alarmRules := make([]alarmRule, 0) |
| | | time.Sleep(time.Second * 2) |
| | | //fmt.Println("布控入口") |
| | | alarmRules := make([]db.AlarmRule, 0) |
| | | time.Sleep(time.Millisecond * 1) |
| | | var taskPerson db.TaskPerson |
| | | var err error |
| | | for i := 0; i <= 2; i++ { |
| | |
| | | if taskPerson.Id != "" { |
| | | break |
| | | } |
| | | time.Sleep(time.Second * 15) |
| | | time.Sleep(time.Second * 1) |
| | | } |
| | | fmt.Println("personInfo: ", taskPerson) |
| | | fmt.Println("device: ", cache.Device) |
| | | //fmt.Println("personInfo: ", taskPerson) |
| | | //fmt.Println("device: ", cache.Device) |
| | | tasks, err := db.GetAllTaskData() |
| | | if err != nil { |
| | | logger.Error("GetAllTaskData Error", err) |
| | | } |
| | | fmt.Println(tasks) |
| | | //fmt.Println(tasks) |
| | | |
| | | for _, task := range tasks { |
| | | switch task.Name { |
| | | case "未成年出顶楼": |
| | | flag := UnderageClimbingToRooftop(taskPerson) |
| | | if flag == true { |
| | | alarmRules = append(alarmRules, alarmRule{ruleId: task.Id, ruleText: task.Name}) |
| | | alarmRules = append(alarmRules, db.AlarmRule{RuleId: strconv.Itoa(task.Id), RuleText: task.Name, AlarmLevel: "0"}) |
| | | } |
| | | case "未成年入商住楼": |
| | | flag := UnderageEnteringCommercialBuilding(taskPerson) |
| | | if flag == true { |
| | | alarmRules = append(alarmRules, alarmRule{ruleId: task.Id, ruleText: task.Name}) |
| | | alarmRules = append(alarmRules, db.AlarmRule{RuleId: strconv.Itoa(task.Id), RuleText: task.Name, AlarmLevel: "0"}) |
| | | } |
| | | case "窜楼": |
| | | flag := ClimbingFloorsIllegally(taskPerson) |
| | | flag := ClimbingFloorsIllegally(taskPerson, config.Api.CsHours, config.Api.CsTimes) |
| | | if flag == true { |
| | | alarmRules = append(alarmRules, alarmRule{ruleId: task.Id, ruleText: task.Name}) |
| | | alarmRules = append(alarmRules, db.AlarmRule{RuleId: strconv.Itoa(task.Id), RuleText: task.Name, AlarmLevel: "0"}) |
| | | } |
| | | case "只进不出": |
| | | flag := EnteringButNotLeaving(taskPerson) |
| | | if flag == true { |
| | | alarmRules = append(alarmRules, alarmRule{ruleId: task.Id, ruleText: task.Name}) |
| | | } |
| | | case "进出异常": |
| | | continue |
| | | //days := config.Api.AInterval |
| | | //docNumIdMap, err := db.QueryLastIdByDayRange(days, days-1) |
| | | //if err != nil { |
| | | // logger.Error("QueryByDayRange err: ", err) |
| | | //} |
| | | // |
| | | //for docNumber, id := range docNumIdMap { |
| | | // flag := EnteringButNotLeaving(docNumber, id, days) |
| | | // alarmRules = append(alarmRules, db.AlarmRule{RuleId: strconv.Itoa(task.Id), RuleText: task.Name, AlarmLevel: "0"}) |
| | | // |
| | | // if flag == true { |
| | | // alarmRules = append(alarmRules, db.AlarmRule{RuleId: strconv.Itoa(task.Id), RuleText: task.Name, AlarmLevel: "0"}) |
| | | // } |
| | | //} |
| | | |
| | | case "申住不一": |
| | | flag := registeredAddressNotMatchActualResidence(taskPerson) |
| | | if flag == true { |
| | | alarmRules = append(alarmRules, alarmRule{ruleId: task.Id, ruleText: task.Name}) |
| | | alarmRules = append(alarmRules, db.AlarmRule{RuleId: strconv.Itoa(task.Id), RuleText: task.Name, AlarmLevel: "0"}) |
| | | } |
| | | default: |
| | | continue |
| | | |
| | | } |
| | | } |
| | | addFlag, err := db.AddAlarmRules(alarmRules, id) |
| | | if err != nil { |
| | | logger.Error("AddAlarmRules err: ", err) |
| | | } |
| | | if addFlag == true { |
| | | logger.Info("AddAlarmRules success: ", id) |
| | | } |
| | | |
| | | } |