zhangzengfei
2025-02-06 dd39847ba992605ef5fe2254140e8bfd8cf04b25
models/disappear.go
@@ -101,24 +101,25 @@
         s.community_id,
         s.org_id,
         p.person_name,
         p.id_card ,
         p.id_card,
         s.last_appearance_time,
         s.last_direction,
         s.last_location
         s.last_location
      FROM
         snapshot_count_summary AS s
         JOIN person AS p ON p.id = s.document_number 
      WHERE
         s.STATUS = 'resident'
         AND p.id_card != ""
         p.id_card != ""
         AND TIMESTAMPDIFF(
            YEAR,
            STR_TO_DATE( CASE WHEN LENGTH( id_card ) = 18 THEN SUBSTRING( id_card, 7, 8 ) ELSE NULL END, '%Y%m%d' ),
         CURDATE( ) >= ?
          AND TIMESTAMPDIFF(
            CURDATE( )
         ) >= ?
         AND TIMESTAMPDIFF(
            YEAR,
            STR_TO_DATE( CASE WHEN LENGTH( id_card ) = 18 THEN SUBSTRING( id_card, 7, 8 ) ELSE NULL END, '%Y%m%d' ),
         CURDATE( ) <= ?
         CURDATE( )
         ) <= ?
      `, m.MinAge, m.MaxAge).Scan(&ageFilter).Error
      if err != nil {
         logger.Warnf(err.Error())
@@ -196,12 +197,12 @@
      }
      logger.Debugf("match key person result %d", len(keyFilter))
   }
   if len(lastFilter) > 0 {
      lastFilter = intersectPersonInfo(lastFilter, keyFilter)
   } else {
      lastFilter = keyFilter
      if len(lastFilter) > 0 {
         lastFilter = intersectPersonInfo(lastFilter, keyFilter)
      } else {
         lastFilter = keyFilter
      }
   }
   logger.Debugf("last result %d", len(lastFilter))
@@ -241,6 +242,11 @@
   return service.SaveTaskResults(results)
}
func (m *DisappearModel) KeepAlive() error {
   db.GetDB().Model(m.Task).Where("id = ?", m.Task.ID).Update("last_run_time", time.Now())
   return nil
}
func (m *DisappearModel) Shutdown() error {
   // 清理资源
   fmt.Println("Shutting down Disappear Model")