
    h                    (   d dl mZ d dlmZmZ d dlZd dlmZ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  e            Z ej        d          ZddZddZddZddZd dZe                    de
           ed          fd!d            ZdS )"    )annotations)datedatetimeN)	APIRouterRequestQuery)HTMLResponse)	templatessbCOMPANY_ORDERTODAY_date_display_and_compare_to_int_safe_normalize_multiline_norm_company_labelu   ^\s*\(?공석\)?\s*$name
str | Nonereturnboolc                    | sdS t          |                                           }t                              |          rdS |dv S )NFT>      결원-)strstripVACANCY_PATmatch)r   ss     0/var/www/html/bot/app/web/pages/group/history.py_is_vacant_namer      sJ     uD		A t    r   r   c                V    | pd                     dd                                          S )N  )replacer   )r   s    r   _keyr%      s(    GS"%%++---r    date | Nonec                |   | dS t          | t                    rt          | t                    s| S t          | t                    r|                                 S t          | t                    r5| dz  }| dz  dz  }| dz  }	 t          |||          S # t          $ r Y dS w xY wt          | t
                    r|                                 }|sdS 	 |dd                             d          \  }}}t          t          |          t          |          t          |                    S # t          $ r Y dS w xY wdS )z=int(yyyymmdd) | 'YYYY-MM-DD' | date | datetime -> date | NoneNi'  d   
   r   )
isinstancer   r   int	Exceptionr   r   split)vymdr   s        r   _to_dater2      sW   yt!T :a#:#: !X vvxx!S J#XG	1a==  	 	 	44	!S GGII 	4	fll3''GAq!AAA/// 	 	 	44	4s%   B 
B! B!AD+ +
D98D9r1   c                    | r| dndS )Nz%Y-%m-%dr    r1   s    r   	_fmt_dater6   7   s    (a???S(r    c                B    | sd S | j          d| j        dd| j        ddS )Nu   년 02du   월 u   일)yearmonthdayr5   s    r   _fmt_date_korr<   :   s:     tf99!'9991599999r    z/group/history)response_class)defaultrequestr   companyc                
  '()K   	 t          j        d                              d                              d                                          }|j        pg }n# t          $ r g }Y nw xY wt          d d          }|t          v r|n|d         )t          )          (d,(fd	''fd
|D             }|s|r)fd|D             }d |D             }g }|D ]\}|	                    d          p+|	                    d          p|	                    d          pd
                                pd}t          |	                    d                    \  }	}
t          |	                    d                    \  }}t          |	                    d                    \  }}t          |	                    d                    \  }}t          |
          p!t          |	                    d                    }t          |          p!t          |	                    d                    }t          |          p!t          |	                    d                    }t          |          p!t          |	                    d                    }i |||	pt          |          |pt          |          |pt          |          |||t          |	                    d                    |r|pt          |          nd d d
}t          |	                    d                     |d<   |                    |           ^i }|D ]}t          |	                    d                    t          |	                    d                    |	                    d          |	                    d          f}|                    |g                               |           |                                D ]U\  }}|                    d            d }|r|d         	                    d          nd }t)          |          D ]g\  }}|	                    d          pd}|dk    r|}%|	                    d           } |}!| r'|!r%| |!k    r|r||k    r||d!<   t          |           |d"<   |}ht)          |          D ]\  }"}#|#	                    d#          sd }$t+          |"d$z
  d%d%          D ]L}%||%         }&|&	                    d#          r |&	                    d          r|&	                    d          }$ nMt-          |$          |#d&<   W|                    d' d()           t/          j        d*| |)|d+          S )-Nkepco_history*i N  r   depr   r   r   c                    | sdS t          |           }|k    rdS t          |           }|rt          |          k    rdS |v p|v S )NFT)r%   r   )rD   dep_keynormcur_keys      r   _matcheszgroup_history.<locals>._matchesL   sj     	5s))g4"3'' 	DJJ'))4'!7W%77r    c                P    g | ]"} |                     d                      |#S 
department)get).0rrI   s     r   
<listcomp>z!group_history.<locals>.<listcomp>W   s4    @@@a((155+>+>"?"?@@@@r    c                v    g | ]5}t                    t          |                    d                     v 3|6S rK   )r%   rM   )rN   rO   currents     r   rP   z!group_history.<locals>.<listcomp>Y   s=    QQQ!d7mmtAEE,<O<O7P7P&P&PA&P&P&Pr    c                    g | ]H}t          |                    d                     r"t          |                    d                    F|IS )r   rR   )r   rM   r   )rN   rO   s     r   rP   z!group_history.<locals>.<listcomp>\   s\       f..37i8H8H3I3I	  r    tasktitlepositionr   startend	posted_at
actual_endcareer)
_task
_start_str_end_str_posted_str_start_date	_end_date_posted_date_career_str_actual_end_str_actual_end_reasonrR   	_inactiverL   r   r`   ra   c                    |                      d          pt          j        t          |                      d                    fS Nrb   idrM   r   minr   xs    r   <lambda>zgroup_history.<locals>.<lambda>   s6    !%%"7"7"C48\RSRWRWX\R]R]E^E^!_ r    )keyr\   rb   _title_change_from_title_change_atextended   _extended_prev_end_korc                    |                      d          pt          j        t          |                      d                    fS rh   rj   rl   s    r   rn   zgroup_history.<locals>.<lambda>   s0    quu^,,8,quuT{{:S:ST r    T)ro   reversezgroup/history.html)r?   tabsrR   rows)rD   r   r   r   )r   tableselectlimitexecutedatar,   r   r%   rM   r   r   r2   r6   r   r   append
setdefaultitemssort	enumerateranger<   r
   TemplateResponse)*r?   r@   resrawrx   cur_rowsenrichedrO   rT   
start_disp	start_cmpend_dispend_cmpposted_disp
posted_cmpactual_end_dispactual_end_cmpstart_dend_dposted_dactual_end_ditemgroupspgkey_r   	prev_taskfirst_startidxitcur_taskpdsdicurprev_end_datejprevrI   rH   rR   s*                                          @@@r   group_historyr   ?   s     h''..s3399%@@HHJJ(.b    D M11ggtAwG7mmG	8 	8 	8 	8 	8 	8 A@@@3@@@H R RQQQQsQQQ   H H  fKwK1553D3DKRRTT[X[ 9!%%.. I I
I5aeeEllCC'";AEE+<N<N"O"OZ*CAEE,DWDW*X*X'	**Hw0H0H((Fu0F0F
++L{9K9K0L0L//P8AEE,<O<O3P3P

$:	'(:(: 4Ie$4$4&=)H*=*="$/h@@O[e J9\3J3Jae"&
 
 
 !%QUU9%5%5 6 66[ ')F . .QUU<(())4f+>+>m$$aeeK&8&8:$##**1----LLNN I I5

__
```	5:DeAhll=111 '' 
	! 
	!GCvvg-#Haxx$	''BB 7b 7R"WWWyH7L7L+4'()22%& II  && 	I 	IFAs77:&&  M1q5"b))  Qx88J'' 88K(( $(HH[$9$9ME -:-,H,HC())	I MMTT    
 %TgxPP  s   AA A,+A,)r   r   r   r   )r   r   r   r   )r   r&   )r1   r&   r   r   )r1   r&   r   r   )r?   r   r@   r   )
__future__r   r   r   refastapir   r   r   fastapi.responsesr	   app.web.depsr
   r   r   r   r   r   r   r   routercompiler   r   r%   r2   r6   r<   rM   r   r4   r    r   <module>r      s   " " " " " " # # # # # # # # 				 - - - - - - - - - - * * * * * *                    
 bj011       . . . .   6) ) ) ): : : :
 \::@Ed@S@S@S t t t t ;:t t tr    