
    j                         d dl mZmZ ddededee         fdZddededee         fdZddededefd	Z	dedefd
Z
dS )    )	query_all	query_one   zjhmdaysreturnc                 ,    d}t          || |d          S )Na  
        SELECT device_name, shot_time, jd, wd, ssfj, sspcs
        FROM "jcgkzx_monitor"."wcnr_ryrl_gj"
        WHERE zjhm = %(zjhm)s
          AND shot_time >= CURRENT_TIMESTAMP - make_interval(days => %(days)s)
        ORDER BY shot_time DESC
        LIMIT 50
    r   r   r   r   r   sqls      M/home/longshao/multi-rider-rag/modules/profile/services/trajectory_service.pyget_recent_trajectoryr      s#    C S466777    Z   c                 ,    d}t          || |d          S )Na~  
        SELECT device_name AS location, COUNT(*) AS count,
               AVG(jd) AS avg_jd, AVG(wd) AS avg_wd
        FROM "jcgkzx_monitor"."wcnr_ryrl_gj"
        WHERE zjhm = %(zjhm)s
          AND shot_time >= CURRENT_TIMESTAMP - make_interval(days => %(days)s)
          AND device_name IS NOT NULL
        GROUP BY device_name
        ORDER BY count DESC
        LIMIT 10
    r
   r   r   s      r   get_hotspotsr      s#    
C S466777r   c                    d}t          || |d          }t          d |D                       }t          d |D                       }|dk    rt          ||z  d          nd}t          |d d	          d d
         }||d |D             |dS )NaK  
        SELECT
            EXTRACT(HOUR FROM shot_time)::INTEGER AS hour,
            COUNT(*) AS count
        FROM "jcgkzx_monitor"."wcnr_ryrl_gj"
        WHERE zjhm = %(zjhm)s
          AND shot_time >= CURRENT_TIMESTAMP - make_interval(days => %(days)s)
        GROUP BY EXTRACT(HOUR FROM shot_time)
        ORDER BY hour
    r
   c              3   B   K   | ]}|                     d d          V  dS )countr   Nget.0rs     r   	<genexpr>z#get_time_pattern.<locals>.<genexpr>,   s0      00agq!!000000r   c              3      K   | ]N}|                     d d          dk    s|                     d d          dk     6|                     dd          V  OdS )hourr         r   Nr   r   s     r   r   z#get_time_pattern.<locals>.<genexpr>-   sp       I IAvq))R//1553C3Ca3G3G eeGQ''3G3G3G3GI Ir   r      c                 .    |                      dd          S )Nr   r   r   )xs    r   <lambda>z"get_time_pattern.<locals>.<lambda>2   s    AEE'1,=,= r   T)keyreverse   c                 0    g | ]}|d          |d         dS )r   r   )r   r    r   s     r   
<listcomp>z$get_time_pattern.<locals>.<listcomp>7   s(    TTTA&	AgJ??TTTr   )total_recordsnight_ratio
peak_hourshourly_distribution)r   sumroundsorted)r   r   r   rowstotalnight_countr,   r-   s           r   get_time_patternr5      s    	C S46677D00400000E I I I I I I IK 49199%e+Q///!K"="=tLLLRaRPJ "TTTTT#	  r   c                 *    d}t          |d| i          S )Nz
        SELECT device_name, shot_time, jd, wd
        FROM "jcgkzx_monitor"."wcnr_ryrl_gj"
        WHERE zjhm = %(zjhm)s
        ORDER BY shot_time DESC
        LIMIT 1
    r   )r   )r   r   s     r   get_last_seenr7   <   s    C S64.)))r   N)r   )r   )shared.db.kingbaser   r   strintlistdictr   r   r5   r7   r)   r   r   <module>r=      s    3 3 3 3 3 3 3 3	8 	8 	83 	8T
 	8 	8 	8 	88 8s 8# 8tDz 8 8 8 8 3 c 4    :* * * * * * * *r   