
    j:                        d dl Z d dlZd dlmZmZ d dl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mZmZ d dlmZ d dlmZmZmZ defd	Zd
edededededefdZdedz  defdZ dedeeef         fdZ!dedz  dede"defdZ#dedefdZ$dedefdZ%dedefdZ&dZ'd/deeef         dedeeef         fdZ(	 	 d0d eeef         d!eeef         dz  dedeeef         fd"Z)d1d eeef         d#ed!eeef         dz  defd$Z*d
ed%edeeef         dz  d&e+eeef                  deeef         f
d'Z,d2d
ed%ed)ede+eeef                  fd*Z-d
ed%ed+edeeef         fd,Z.d
ed%ed-e+e         deeef         fd.Z/dS )3    N)datetime	timedelta)Any)uuid4)DISPATCH_DEFAULT_CONTENTDISPATCH_DEFAULT_NOTEDISPATCH_DEFAULT_TITLEDISPATCH_FKSXDISPATCH_GJDQDISPATCH_QSSXDISPATCH_RWYIDDISPATCH_SJCSLYDISPATCH_YWFZRDISPATCH_YWFZRLXDHDISPATCH_ZJLXlogger)fetch_dispatch_person_context)get_dispatch_queue_itemlist_dispatch_queueupsert_dispatch_queue_itemreturnc                  B    t          t          j                              S N)inttime     I/home/longshao/multi-rider-rag/modules/dispatch/services/queue_service.py_now_tsr      s    ty{{r   	owner_keyjob_idasset_id
face_indexperson_id_noc                     d                     | pd|pd|pdt          |          |pdg          }t          j        |                    d                                                    S )N| zutf-8)joinstrhashlibsha1encode	hexdigest)r    r!   r"   r#   r$   raws         r   	_queue_idr/   !   s_    
((IOV\r8>r3z??T`Tfdfg
h
hC<

7++,,66888r   jobc                 "   | sdS t          |                     d          pd                                                                          }t          |                     d          pd                                          }|dk    rdS |r|S dS )N   违法行为待确认	model_keyr'   source_namebczju   飙车炸街（翘车头）)r)   getstriplower)r0   r3   r4   s      r   _guess_illegal_typer9   &   s     '&&CGGK((.B//5577==??Icggm,,23399;;KF,, ""r   c                     	 t          |           }n/# t          $ r"}t          j        d| |           i cY d }~S d }~ww xY w|pi S )Nz2failed to fetch dispatch region context for %s: %s)r   	Exceptionr   warning)r$   payloadexcs      r   _region_context_from_dbr?   2   sf    /==   K\[^___						 =bs    
>9>>
asset_namesimilarity_scorec                    g }| r|                      d          r+|                    d|                      d                      |                      d          r+|                    d|                      d                      |r|                    d|            |r|                    d|d           d                    |          S )	Nsource_typeu   来源类型：r4   u   来源任务：u   结果图：u   相似度：z.4fz / )r6   appendr(   )r0   r@   rA   partss       r   _build_source_summaryrF   ;   s    E
 E77=!! 	ELLC377=+A+ACCDDD77=!! 	ELLC377=+A+ACCDDD 20J00111 <:$4:::;;;::er   illegal_typec                 *    | r| dk    r|  dS t           S )Nr2   u   人员核查任务)r	   rG   s    r   _default_titlerJ   I   s*     3(???2222!!r   c                 ,    | r| dk    rd|  dS t           S )Nr2   u!   请核查该对象近期涉嫌“u   ”，并反馈处置情况。)r   rI   s    r   _default_contentrL   O   s-     `(???_<____##r   valuec                     t          | pd                                          }|sdS t          |          dk    r|S |ddt          |          z
  z  z   S )Nr'      0)r)   r7   len)rM   r.   s     r   _normalize_region_coderR   U   sZ    
ekr


 
 
"
"C r
3xx2~~
SXX&&&r   )rwdyidzlbtzlnrkssjjzsjqssxfksxhcdxidhcdxmcywfzr	ywfzrlxdhsssjDmsssjMcwxtidsjcslyzjhmzjlxlxdhxmdzmcxfdwminimalr=   payload_modec                      t          |pd                                                                          dk    rt                     S  fdt          D             S )Nrh   fullc                 >    i | ]}|                     |d           S )r'   )r6   ).0keyr=   s     r   
<dictcomp>z+filter_dispatch_payload.<locals>.<dictcomp>z   s)    QQQ#CS"%%QQQr   )r)   r7   r8   dictDISPATCH_MINIMAL_PAYLOAD_FIELDS)r=   ri   s   ` r   filter_dispatch_payloadrr   w   sZ    
<$9%%++--3355??G}}QQQQ1PQQQQr   
queue_item	overridesc                    |pi }t          j                    }|                    d          p|                    d          }|                    d          p%|t	          d          z                       d          }t          |                    d          p|                     d          pd                                          }t          |                    d	          p|                     d
          pd                                          }t          |                    d          p|                     d          pd                                          }t          |                    d          p|                     d          pd                                          }	i dt          |                    d          pt                                                    dt          |                    d          p"t          |                     dd                                                              dt          |                    d          p"t          |                     dd                                                              d|d|dt          |                    d          pt                                                    dt          |                    d          pt                                                    d|d|d|d|dt          |                    d          pt                                                    dt          |                    d          pt                                                    dt          |                    d          pt                                                    d|	dt          |                    d          p|                     d          pd                                          dt          |                    d          p|                     d          pd                                          t          |                    d           p|                     d!          pd                                          t          |                    d"          p|                     d#          pd                                          t          |                    d$          p|                     d%          pd                                          t          |                    d&          pt                      j                                                  t          |                    d'          p|                     d'          pt"                                                    t          |                    d(          pt$                                                    t          |                    d)          pt&                                                    |||t          |                    d*          pd+|                    d,          z                                             t          |                    d-          pd                                          t          |                    d.          p|                     d.          pd                                          t          |                    d/          p|                     d/          p|	                                          d0}
t)          |
|1          S )2NrV   z%Y-%m-%d %H:%M:%SrW      )daysre   person_namer'   rb   r$   rd   person_phoner^   sssj_dmrS   rT   rG   rU   rX   rY   bszrZ   r[   hcdxdhzlbzr\   r]   r_   sssj_mcssfjDmssfj_dmssfjMcssfj_mczbpcsdmzbpcs_dmzbpcsmczbpcs_mcr`   ra   gjdqrc   pchpch_z%Y%m%d%H%M%Sdzdmrf   rg   )r   r   r   r`   ra   r   rc   rb   rd   re   r   r   rf   rg   ri   )r   nowr6   strftimer   r)   r7   r   rJ   rL   r   r
   r   r   r   r   hexr   r   r   rr   )rs   rt   ri   r   start_dtend_dtrx   r$   ry   rz   r=   s              r   build_dispatch_payloadr   }   s^   
 RI
,..C}}V$$I5H(I(IH]]6""]sYA->->->'>&H&HI\&]&]FimmD))PZ^^M-J-JPbQQWWYYKy}}V,,T
~0N0NTRTUU[[]]Ly}}V,,T
~0N0NTRTUU[[]]L)--))LZ^^I-F-FL"MMSSUUG" 	#immH--?@@FFHH" 	IMM&))_^JNN>[]<^<^-_-_``ffhh	"
 	IMM&))a-=jnn^]_>`>`-a-abbhhjj" 	" 	" 	IMM&)):];;AACC" 	IMM&)):];;AACC" 	|" 	," 	+" 	," 	IMM&))B-BCCIIKK" 	Y]]7++=~>>DDFF"  	S{33I7IJJPPRR!"" 	'#"$ 	#immH--P	1J1JPbQQWWYY%"& 	#immH--P	1J1JPbQQWWYY'"( immH--P	1J1JPbQQWWYYy}}Y//S:>>*3M3MSQSTTZZ\\y}}Y//S:>>*3M3MSQSTTZZ\\Y]]7++:uww{;;AACCimmH--\1I1I\_]]cceeIMM&)):];;AACCIMM&)):];;AACC9==''RFS\\.5Q5Q,QSSYY[[IMM&))/R006688IMM&))IZ^^F-C-CIrJJPPRRIMM&))NZ^^F-C-CNwOOUUWWC" " "GF #7FFFFr   templatec                 ^   |pi }t          |pd                                          }|sdS t          | |          }|                    dd          |                    dd          |                    dd          |                     dd          |                    dd          |                    dd          |                    d	d          |                     d
d          d}|                                D ]0\  }}|                    d|z   dz   t          |pd                    }1|S )Nr'   )rt   re   rb   rd   rG   rW   r   r]   r4   )re   rb   rd   rG   deadliner   r]   r4   {})r)   r7   r   r6   itemsreplace)rs   r   rt   textr=   valuesrn   rM   s           r   render_sms_templater      s&   RIx~2$$&&D r$Z9EEEGkk$##FB''FB''"~r::KK++;;y"--[[b11!~~mR88	 	F llnn ? ?
U||C#IOS"-=-=>>Kr   owner_ipidentified_itemsc                 
   t                      }d}d}g }t          |          }|pg D ];}	t          |	                    d          pd                                          }
t          |	                    d          pd                                          }|	                    d          pg }t          |          D ]\  }}|                    d          pg }|s |d         }t          |                    d          pd                                          }|sat          |          }t          |                    d          pd          }t          | t          |pi                     d	          pd          |
||          }t          |          }t          |                    d
          pd                                          p5t          |                    d          pd                                          }t          |                    d          pd                                          }i d	|d| d|dt          |pi                     d	          pd                                          d|
dt          |pi                     d          pd                                          dt          |pi                     d          pd                                          dt          |pi                     d          pd                                          d|d|d|d|d|d|d|dt          |                    dd                    dt          |                    d          pd                                          i dt          |                    d d                    d!t          |                    d"          pd                                          d#t          |                    d$          pd                                          d%t          |                    d&          pd                                          d't          |                    d(          pd                                          d)t          d*t          d+d,d-|rd,nd.d/dd0i d1|	|t          |||          d2d3|r|                    d3          ni d4dd5|r$t          |                    d5          p|          n|d6|}t          |d78          |d0<   t!          |           |r|d9z  }n|d9z  }|                    |           =|||d:S );Nr   r"   r'   r@   facestop_matches	id_numberscoreidre   namerd   r    r   source_job_idsource_asset_idsource_job_typejob_typer4   rC   r#   rx   r$   ry   rA   rG   rz   dsr~   dsmcr   ssxqr   ssxqmcr   pcsr   pcsmcrf   dzrS   ra   dispatch_statuspending
sms_status
need_phone
last_errordraft_payloadidentity_payload)item	top_matchsource_summarydispatch_responsesms_preview
created_ts
updated_tsrh   r      )createdupdatedr   )r   r9   r)   r6   r7   	enumerater?   floatr/   r   rR   r   r   rF   r   r   r   rD   )r    r   r0   r   r   r   r   r   rG   r   r"   r@   r   r#   facematchesr   r$   region_contextrA   queue_idexistingrx   ry   rs   s                            r   ingest_identity_resultsr      s-    ))CGGE&s++L &B B% B%txx
++1r2288::,//5266<<>>
!!'R )% 0 0 >	% >	%Jhh}--3G 
Iy}}[99?R@@FFHHL 4\BBN$Y]]7%;%;%@qAA C0E0E0K,L,LhXbdpqqH.x88HN&&t,,23399;; <y}}V,,23399;;  ~11&99?R@@FFHHL&h&Y& H&  ciR__T%:%:%@b!A!A!G!G!I!I	&
 "8& "3	rz'B'B'Hb#I#I#O#O#Q#Q& sCI2??=#A#A#GRHHNNPP& sCI2??=#A#A#GRHHNNPP& j& j& {& & & #$4& &  1.2D2DT22N2NOO!&" 3~11&99?R@@FFHH#& &$ 1.2D2DVR2P2PQQ%&& 3~11(;;ArBBHHJJ'&( C 2 25 9 9 ?R@@FFHH)&* C 2 27 ; ; ArBBHHJJ+&, N..t44:;;AACC-&. ./&0 /1&2 "93&4 <Iii\5&6 b7&8  9&: # !*&;CM]&^&^% %;&D $(%ZX\\2E%F%F%FXZE&F rG&H Yc(,,|"<"<"CDDDVYI&J cK& &JN +AZc*d*d*dJ'&z222 11LL$$$$}>	%@ 7UCCCr   d   limitc                     t          | ||          }|D ]+}|                    d          st          |d          |d<   ,|S )N)r   r   rh   r   )r   r6   r   )r    r   r   r   r   s        r   list_dispatch_queue_itemsr     sY    	85AAAE Y Yxx(( 	Y$:4i$X$X$XD!Lr   r   c                    t          |          }|st          d          t          |                    d          pd                                          }t          |                    d          pd                                          }|r|| k    rt          d          n|r||k    rt          d          |                    d          st          |d          |d<   |S )Nzqueue item not foundr    r'   r   r   rh   r   )r   LookupErrorr)   r6   r7   r   )r    r   r   r   stored_owner_keystored_owner_ips         r   get_dispatch_queue_detailr      s    "8,,D 20111488K006B77==??$((:..4"55;;==O 2y((4555 )	 2_88011188O$$ U 6t) T T T_Kr   	queue_idsc                    g }d}d}t                      }|pg D ]I}t          | ||          }t          |                    d          pd                                          }	|	s|dz  }|                    |           gt          |	          }
|
s|dz  }|                    |           t          |          }t          |
                    d          p|                    d          pd                                          |d<   t          |
                    d          p|                    d          pd                                          |d<   t          |
                    d	d                    |d
<   t          |
                    d          pd                                          |d<   t          |
                    dd                    |d<   t          |
                    d          pd                                          |d<   t          |
                    d          pd                                          |d<   t          |
                    d          pd                                          |d<   t          |
                    d          pd                                          |d<   t          |d<   ||d<   |                    d          pi }|                    dd          |                    dd          |                    dd          |                    dd          |                    dd          |                    dd          |                    d d          |                    d!d          |                    d"d          |                    d#d          |                    d$d          |                    d%d          |                    d&d          |                    d'd          |                    d(d          d)}t          ||d*+          |d<   t          |           |                    |           |dz  }K|||d,S )-Nr   r$   r'   r   re   rx   rd   ry   r   rz   r   r~   r   r   r   r   r   r   r   r   r   rf   rS   r   r   rT   rU   rV   rW   rX   rY   r}   r\   r]   r`   ra   r   rc   r   rg   )rT   rU   rV   rW   rX   rY   r}   r\   r]   r`   ra   r   rc   r   rg   rh   )rt   ri   )r   skippedr   )r   r   r)   r6   r7   rD   r?   rp   rR   r   r   r   )r    r   r   refreshed_itemsr   r   r   r   r   r$   r   updated_itemprevious_payloadpayload_overridess                 r   refresh_dispatch_region_contextr   0  sQ   
 OGG
))CO 4 4(HhGG488N339r::@@BB 	qLG""4(((0>> 	qLG""4(((Dzz&).*<*<T*B*B*klFVFVWdFeFe*kik&l&l&r&r&t&t]#'*>+=+=f+E+E+oIYIYZhIiIi+omo'p'p'v'v'x'x^$"89K9KDRT9U9U"V"VY"%n&8&8&@&@&FB"G"G"M"M"O"OY"89K9KFTV9W9W"X"XY"%n&8&8&B&B&Hb"I"I"O"O"Q"QY#&~'9'9%'@'@'FB#G#G#M#M#O#OZ #&~'9'9''B'B'Hb#I#I#O#O#Q#QZ ">#5#5d#;#;#ArBBHHJJV!/X%(\"88O44:$((44$((44$((44$((44$((44$((44$((44%))'266)--k2>>%))'266&**8R88$((44$((44#''r22$((44
 
" )?'")
 )
 )
_%
 	#<000|,,,17_MMMr   )rh   )Nrh   r   )r   )0r*   r   r   r   typingr   uuidr   shared.config.configr   r   r	   r
   r   r   r   r   r   r   r   r   $modules.dispatch.repository.face_sqlr   'modules.dispatch.services.store_servicer   r   r   r   r   r)   r/   rp   r9   r?   r   rF   rJ   rL   rR   rq   rr   r   r   listr   r   r   r   r   r   r   <module>r      s     ( ( ( ( ( ( ( (                                        O N N N N N             9 9c 9S 9c 9Y\ 9ad 9 9 9 9
	#TD[ 	#S 	# 	# 	# 	## $sCx.    td{  u Y\    " " " " " "$3 $3 $ $ $ $'# '# ' ' ' '# 2R RT#s(^ R3 RW[\_ad\dWe R R R R (,!0G 0GS#X0GCH~$0G 0G 
#s(^	0G 0G 0G 0Gf DcN c dSVX[S[n_cNc or    *PDPDPD 
c3h$	PD 4S>*	PD
 
#s(^PD PD PD PDf   C RVW[\_ad\dWeRf      s tTWY\T\~     @N@N@N Cy@N 
#s(^	@N @N @N @N @N @Nr   