o
    r=h                     @  s   d dl mZ d dlZd dlmZmZmZmZ d dlm	Z	m
Z
 d dlmZ d dlmZmZmZmZmZmZmZmZmZmZ e	 ZdddZd ddZedZd!ddZd"ddZejdedd#ddZ dS )$    )annotationsN)AnyOptionalDictList)	APIRouterRequest)HTMLResponse)
	templatessbCOMPANY_ORDER	POS_ORDERTODAY_parse_date_parts_parts_to_date_date_display_and_compare_norm_company_label_normalize_multilinegr   returnstrc                 C  s<   t | pd  }|sdS |dv rdS |dv rdS t | S )N ->      女   여성   여자ffemale   여r   >      男   남성   남자mmale   남r$   )r   striplower)r   s r(   2/var/www/html/bot/app/web/pages/group/executive.py_gender_label   s
   r*   boolc                 C  s   t | dkS )Nr   )r*   )r   r(   r(   r)   
_is_female   s   r,   u3   (?<![가-힣A-Za-z0-9])한전(?![가-힣A-Za-z0-9])careerc                 C  s.   | sdS t | }d|v rdS t|rdS dS )NFu   한국전력공사T)r   _KEPCO_WORD_REsearch)r-   tr(   r(   r)   _is_kepco_alum_text   s
   r1   pos
str | NoneOptional[str]c                 C  s   | sd S | pd  }|dd}d|v rdS d|v rdS d|v s%|dr+d|vr+dS d|v r1dS d	|v r;d
|vr;dS |dv rAdS |tv rG|S d S )Nr    u	   비상임u   비상임이사u   상임감사u   감사위원u   감사u   상임이사u   사장u   대행   상임기관장>   	   기관장r6   )r%   replaceendswithr   )r2   pp0r(   r(   r)   _normalize_position&   s$   r<   z/group/executive)response_classrequestr   c                   s  zt ddd }|jpg }W n ty    g }Y nw dd tD dd tD dd tD |D ]}|dp@d		 }t
|}|vrLq8|  d
7  < t|drc|  d
7  < t|d}|d u roq8t|d\}}t|o~|tk }	t|d\}
}t|d\}}t|}|	|d< t|d|d< |
|d< ||d< t|d}|dpd	 }|dkr| d| dn||d< | | | q8fddtD }t  fddtD }td|  ||dS )Nkepco_org_cur*i'  c                 S  s   i | ]
}|d d t D qS )c                 S  s   i | ]}|g qS r(   r(   ).0r:   r(   r(   r)   
<dictcomp>C       z.group_executive.<locals>.<dictcomp>.<dictcomp>)r   rA   cr(   r(   r)   rB   C   s    z#group_executive.<locals>.<dictcomp>c                 S     i | ]}|d qS r   r(   rD   r(   r(   r)   rB   D   rC   c                 S  rF   rG   r(   rD   r(   r(   r)   rB   E   rC   
departmentr      genderpositionendstart_expiredr-   _is_kepco_alum_start_disp	_end_dispnamer   ()
_name_linec                   s   g | ]} | | d qS ))r   totalr(   rD   )female_countstotal_countsr(   r)   
<listcomp>g   s    z#group_executive.<locals>.<listcomp>c                   s&   g | ]   fd dD dqS )c                   s   g | ]} |  qS r(   r(   rD   )gridr:   r(   r)   rY   i   s    z.group_executive.<locals>.<listcomp>.<listcomp>)rK   cellsr(   )rA   )columnsrZ   )r:   r)   rY   i   s   & zgroup/executive.html)r>   r\   rowsgender_stats)r   tableselectlimitexecutedata	Exceptionr   getr%   r   r,   r<   r   r+   r   dictr1   r*   appendr   r
   TemplateResponse)r>   resrawrdep_rawcompanypos_norm_end_cmpexpired
start_dispend_disppersonrJ   rR   r^   rows_for_tplr(   )r\   rW   rZ   rX   r)   group_executive:   sP    rv   )r   r   r   r   )r   r   r   r+   )r-   r   r   r+   )r2   r3   r   r4   )r>   r   )!
__future__r   retypingr   r   r   r   fastapir   r   fastapi.responsesr	   app.web.depsr
   r   r   r   r   r   r   r   r   r   routerr*   r,   compiler.   r1   r<   re   rv   r(   r(   r(   r)   <module>   s    0




