o
    mh                     @  s   U d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	 d dl
Z
d dlmZmZ e Zg dZedd	g Zdd
d
dddddddddddZded< g dZd&ddZd'ddZd(ddZejd e	d!d)d$d%ZdS )*    )annotations)DictList)	APIRouterRequest)HTMLResponseN)	templatessb)   부총리실
   제1차관
   제2차관u   공공정책국u   공공혁신심의관u   공공정책총괄과u   공공제도기획과   재무경영과u   평가분석과u   인재경영과u   공공윤리정책과u   공공혁신기획과u   경영관리과	   부총리	   장관실u   차관u   국장u	   심의관u   과장zDict[str, str]MOEF_KPS_EXPECTED_POS))r   2028   담당)r   2022r   )r   5631r   phone
str | Nonereturnc                 C  s*   | sd S t dt| }|r|dS d S )Nz(\d{4})\s*$   )researchstrgroup)r   m r   //var/www/html/bot/app/web/pages/gov/moef/kps.py_last4(   s   r    depr   posc                 C  s<   | pd  }|p	d  }|dkrdS |dkr|dkrdS |S )N r   r
   r   u   비서실장)strip)r!   r"   dpr   r   r   
_canon_dep-   s   r'   rows
List[Dict]r   c                 C  s(   | pg } | j dd d | r| d S i S )Nc                 S  s@   |  dpd rdnd|  dpd rdnd|  dpdfS )Nnamer#   r   r   r   )getr$   xr   r   r   <lambda>7   s   z_pick_best.<locals>.<lambda>keyr   )sort)r(   r   r   r   
_pick_best5   s   r2   z/gov/moef/kps)response_classrequestr   c              
     sL  zt dddtd }|jpg }W n ty$   g }Y nw i }i }i }|D ]K}|	dp5d
 }|	dp>d
 }t||}	t|	dpMd
 }
|	|d< ||	g | |rk||	|fg | |
rx||	|
fg | q-g }tD ]}	t  g }t	|	d	}t|	|	|fg }|rň |	d
 |||	dpd	
 pd	|	dpd	
 pd	|	dpd	
 pd	d n
||dd	d	d tD ]i\}}
}||	krqч fdd|	|	|
fg D }t|}|r0 |	d
 ||	dpd
 p||	dpd	
 pd	|	dpd	
 pd	|	dp&d	
 p+d	d q||dd	d	d qч fdd|	|	g D }|jdd d |D ]A} |	d
 ||	dped	
 pjd	|	dpqd	
 pvd	|	dp}d	
 pd	|	dpd	
 pd	d qR||	|d q}td| |dS )Nmoef_kpsz&id,department,position,name,phone,task
departmentiP  r#   positionr   _dep-idr*   task)r"   r*   r   r;   u   (공석)c                      g | ]}| d  vr|qS r:   r+   .0r-   used_idsr   r   
<listcomp>q       z gov_moef_kps.<locals>.<listcomp>c                   r<   r=   r>   r?   rA   r   r   rC   ~   rD   c                 S  s   |  dpd|  dpdfS )Nr7   r#   r*   r>   r,   r   r   r   r.      s    zgov_moef_kps.<locals>.<lambda>r/   )r6   r(   zgov/moef/kps.html)r4   groups)r	   tableselectin_MOEF_KPS_DEPT_WHITELISTlimitexecutedata	Exceptionr+   r$   r'   r    
setdefaultappendMOEF_KPS_DEPT_ORDERsetr   r2   addMOEF_KPS_PHONE_ROLE_LAST4r1   r   TemplateResponse)r4   resrawby_dep
by_dep_pos	by_dep_l4rraw_depr"   r!   l4rE   rows_for_dep
leader_pos
leader_rowr%   rolecandspick	remainingr   rA   r   gov_moef_kps>   s   



rd   )r   r   r   r   )r!   r   r"   r   r   r   )r(   r)   r   r   )r4   r   )
__future__r   typingr   r   fastapir   r   fastapi.responsesr   r   app.web.depsr   r	   routerrP   rI   r   __annotations__rS   r    r'   r2   r+   rd   r   r   r   r   <module>   s:    


	