| | |
| | | |
| | | } |
| | | |
| | | logger.Debugf("DisappearModel init finish ...task id:%s, name:%s, rule:%+v\n", task.ID, task.Name, m) |
| | | logger.Debugf("DisappearModel init finish ...task id:%s, name:%s, rule:%+v", task.ID, task.Name, m) |
| | | |
| | | if m.DisappearTime == 0 { |
| | | logger.Warnf("invalid parameters. task id:%s, name:%s\n", task.ID, task.Name) |
| | | logger.Warnf("invalid parameters. task id:%s, name:%s", task.ID, task.Name) |
| | | return errors.New("invalid parameters") |
| | | } |
| | | |
| | |
| | | s.org_id, |
| | | p.person_name, |
| | | p.id_card, |
| | | s.last_appearance_time, |
| | | p.last_appearance_time, |
| | | s.last_direction, |
| | | s.last_location |
| | | FROM |
| | |
| | | return fmt.Errorf("no results found that match the age condition %s - %s", m.MinAge, m.MaxAge) |
| | | } |
| | | |
| | | logger.Debugf("match age result %d", len(ageFilter)) |
| | | logger.Debugf("task %s match age result %d", m.Task.Name, len(ageFilter)) |
| | | } |
| | | |
| | | if m.PersonLabel != "" { |
| | |
| | | s.org_id, |
| | | p.person_name, |
| | | p.id_card, |
| | | s.last_appearance_time, |
| | | p.last_appearance_time, |
| | | s.last_direction, |
| | | s.last_location |
| | | FROM |
| | |
| | | return fmt.Errorf("no results found that match the label condition %s", m.PersonLabel) |
| | | } |
| | | |
| | | logger.Debugf("match label result %d", len(labelFilter)) |
| | | logger.Debugf("task %s match label result %d", m.Task.Name, len(labelFilter)) |
| | | } |
| | | |
| | | // 合并一下条件 |
| | |
| | | s.org_id, |
| | | p.person_name, |
| | | p.id_card, |
| | | s.last_appearance_time, |
| | | p.last_appearance_time, |
| | | s.last_direction, |
| | | s.last_location |
| | | FROM |
| | |
| | | logger.Warnf(err.Error()) |
| | | } |
| | | |
| | | logger.Debugf("match key person result %d", len(keyFilter)) |
| | | logger.Debugf("task %s match key person result %d", m.Task.Name, len(keyFilter)) |
| | | |
| | | if len(lastFilter) > 0 { |
| | | lastFilter = intersectPersonInfo(lastFilter, keyFilter) |
| | |
| | | } |
| | | } |
| | | |
| | | logger.Debugf("last result %d", len(lastFilter)) |
| | | logger.Debugf("task %s last result %d", m.Task.Name, len(lastFilter)) |
| | | |
| | | var personIds = make(map[string]struct{}, 0) |
| | | for _, p := range lastFilter { |
| | | if len(m.AreaIds) > 0 { |
| | | _, o1 := m.AreaIds[p.CommunityId] |
| | |
| | | FirstPersonID: p.DocumentNumber, |
| | | } |
| | | |
| | | // 同一个人报警一次 |
| | | if _, ok := personIds[p.DocumentNumber]; ok { |
| | | continue |
| | | } else { |
| | | personIds[p.DocumentNumber] = struct{}{} |
| | | } |
| | | |
| | | results = append(results, result) |
| | | } |
| | | } |
| | | |
| | | logger.Debugf("task %s last filter result %d", m.Task.Name, len(results)) |
| | | return service.SaveTaskResults(results) |
| | | } |
| | | |