§
    ìî”j   ã                  óh   — d dl mZ d dlZd dlZd dlmZ  ej        d¦  «        Z G d„ d¦  «        ZdS )é    )ÚannotationsN)ÚAnyzdscons.deepseek.historyc                  ó,   — e Zd ZdZdd„Zdd„Zddd„ZdS )ÚDeepSeekHistoryMixinz3Mission history, sample missions and logging mixin.Úreturnúlist[dict[str, Any]]c                ó~   — dddddddg d¢d	œd
ddddddg d¢d	œdddddddg d¢d	œddddddd g d!¢d	œd"d#d$d%d&d'd(g d)¢d	œgS )*u@   Danh má»¥c 4 ká»‹ch báº£n nhiá»‡m vá»¥ thá»±c táº¿ cá»§a DSCons.zmission-ipc-cong-ben-kemuX   Tháº©m Ä�á»‹nh & Láº­p Há»“ SÆ¡ Nghiá»‡m Thu Thanh ToÃ¡n IPC Ä�á»£t 2 (Cá»‘ng Báº¿n Kem)Úxay_lapu2   Trá»¥ Cá»™t 1: Thi cÃ´ng XÃ¢y láº¯p & Thá»§y lá»£iuÉ   Phá»‘i há»£p 6 nhÃ¢n sá»± AI tháº©m Ä‘á»‹nh khá»‘i lÆ°á»£ng hiá»‡n trÆ°á»�ng, chá»©ng chá»‰ nÃ©n máº«u bÃª tÃ´ng R28, bÃ³c tÃ¡ch BOQ 03a, rÃ  soÃ¡t FIDIC vÃ  kháº¥u trá»« táº¡m á»©ng 10%, retention 5%.u5   Chá»§ Ä‘áº§u tÆ° Ban QLDA NÃ´ng nghiá»‡p Háº£i PhÃ²nguù   Kiá»ƒm toÃ¡n toÃ n diá»‡n khá»‘i lÆ°á»£ng Ä‘áº¯p Ä‘Ãª bao, Ã©p cá»�c cá»« Larsen vÃ  bÃª tÃ´ng cá»‘ng Ä�á»£t 2 Dá»± Ã¡n Cá»‘ng Báº¿n Kem & Chiáº¿u sÃ¡ng Kiáº¿n Minh. Láº­p báº£ng phá»¥ lá»¥c 03a nghiá»‡m thu thanh toÃ¡n theo Luáº­t XÃ¢y dá»±ng 2025.)ÚphucÚhungÚquynhÚthaoÚnamÚtung)Ú	sample_idÚtitleÚpillarÚpillar_titleÚdescriptionÚtarget_partnerÚsuggested_promptÚinvolved_personaszmission-transport-thoat-nuoc-hpuO   Kiá»ƒm ToÃ¡n Váº­n Táº£i Xe Ben & BÃ¹n Náº¡o VÃ©t (ThoÃ¡t NÆ°á»›c Háº£i PhÃ²ng)Úvan_tai_xe_benu8   Trá»¥ Cá»™t 2: Logistics CÆ¡ Giá»›i & Váº­n Táº£i Xe Benu¾   Ä�á»‘i soÃ¡t 36 chuyáº¿n xe Howo 4 chÃ¢n, kiá»ƒm tra vÃ© cÃ¢n bÃ¹n náº¡o vÃ©t KÃªnh Ä�Ã´ng Ä�Ã¬nh VÅ©, giÃ¡m sÃ¡t Ä‘á»‹nh má»©c tiÃªu hao dáº§u 24L/h vÃ  xuáº¥t há»“ sÆ¡ cÆ°á»›c váº­n táº£i.u?   CÃ´ng ty TNHH MTV ThoÃ¡t NÆ°á»›c Háº£i PhÃ²ng (MST: 0200149705)uç   Thá»±c hiá»‡n Ä‘á»‘i soÃ¡t toÃ n bá»™ 36 chuyáº¿n xe ben váº­n chuyá»ƒn bÃ¹n bÃ¹ náº¡o vÃ©t tuyáº¿n KÃªnh Ä�Ã´ng Ä‘áº¿n bÃ£i tháº£i Ä�Ã¬nh VÅ©. Kiá»ƒm tra tiÃªu hao dáº§u Ä‘á»‹nh má»©c vÃ  Ä‘á»‘i chiáº¿u vÃ© cÃ¢n xuáº¥t hÃ³a Ä‘Æ¡n.)r   r   r   r   zmission-machinery-loan-khaiuF   Ä�á»‘i SoÃ¡t Cho ThuÃª Ca MÃ¡y Ä�Ã o Kobelco & TÃ­nh OEE (Loan Kháº£i)Úcho_thue_ca_mayu7   Trá»¥ Cá»™t 3: Cho ThuÃª MÃ¡y MÃ³c & Ca MÃ¡y CÆ¡ Giá»›iuÊ   Ä�á»‘i soÃ¡t báº£ng cháº¥m cÃ´ng thá»£ lÃ¡i 28 ca mÃ¡y Ä‘Ã o Kobelco SK200, kiá»ƒm tra nháº­t trÃ¬nh GPS, tÃ­nh chá»‰ sá»‘ hiá»‡u suáº¥t OEE Ä‘áº¡t 87.4% vÃ  láº­p biÃªn báº£n Ä‘á»‘i chiáº¿u cÃ´ng ná»£.u7   CÃ´ng ty TNHH XÃ¢y Dá»±ng Loan Kháº£i (MST: 0201889988)uÊ   Kiá»ƒm toÃ¡n há»£p Ä‘á»“ng cho thuÃª mÃ¡y Ä‘Ã o bÃ¡nh xÃ­ch Kobelco SK200 táº¡i cÃ´ng trÆ°á»�ng Thá»§y NguyÃªn. Ä�á»‘i soÃ¡t ca mÃ¡y thá»±c táº¿, kháº¥u trá»« táº¡m á»©ng vÃ  tÃ­nh toÃ¡n chá»‰ sá»‘ OEE.)r   r   r   zmission-materials-trung-kienuN   Kiá»ƒm ToÃ¡n CÃ¡t San Láº¥p, Hao Há»¥t Ä�á»‹nh Má»©c & Máº«u R28 (Trung KiÃªn)Úvat_tu_san_lapu-   Trá»¥ Cá»™t 4: Mua BÃ¡n Váº­t TÆ° & San Láº¥puÏ   Kiá»ƒm toÃ¡n tá»· lá»‡ hao há»¥t cÃ¡t Ä‘áº¯p 2.8% theo Ä�M 12/2021/BXD, rÃ  soÃ¡t Ä‘iá»�u kiá»‡n nghiá»‡m thu chá»©ng chá»‰ CO/CQ, káº¿t quáº£ nÃ©n máº«u bÃª tÃ´ng R28 vÃ  Ä‘á»‘i soÃ¡t 3 bÃªn 3-Way Matching.u4   CÃ´ng ty CP Ä�áº§u tÆ° Trung KiÃªn (MST: 0201805660)uÂ   Kiá»ƒm toÃ¡n toÃ n diá»‡n 1,250 m3 cÃ¡t san láº¥p cung cáº¥p cho Dá»± Ã¡n Ä�a Ä�á»™. Ä�á»‘i soÃ¡t hÃ³a Ä‘Æ¡n VAT vá»›i phiáº¿u nháº­p kho, kiá»ƒm tra tá»· lá»‡ hao há»¥t vÃ  há»“ sÆ¡ nÃ©n máº«u.)r   r   r   r   zmission-internal-managementu>   Quáº£n Trá»‹ Ná»™i Bá»™ (RÃ  soÃ¡t hÃ³a Ä‘Æ¡n, Kiá»ƒm kÃª kho)Úquan_tri_noi_bou%   Nhiá»‡m vá»¥: Quáº£n trá»‹ Ná»™i bá»™un   RÃ  soÃ¡t, phÃ¢n loáº¡i hoÃ¡ Ä‘Æ¡n, kiá»ƒm kÃª váº­t tÆ° trong kho, Ä‘á»‘i chiáº¿u 3 chiá»�u (3-Way Matching).u   Ná»™i bá»™ CÃ´ng tyu
  Kiá»ƒm kÃª váº­t tÆ° trong kho thÃ¡ng nÃ y, Ä‘á»‘i chiáº¿u sá»‘ liá»‡u tá»“n kho vá»›i dá»¯ liá»‡u xuáº¥t nháº­p trÃªn ERP. PhÃ¢n loáº¡i cÃ¡c hÃ³a Ä‘Æ¡n VAT vÃ  thá»±c hiá»‡n Ä‘á»‘i soÃ¡t 3 chiá»�u (3-way matching) vá»›i phiáº¿u nháº­p kho vÃ  biÃªn báº£n bÃ n giao.)r   r   Úminh© )Úselfs    úMC:\Projects\DSCons\app\modules\agents\application\deepseek_harness\history.pyÚget_sample_missionsz(DeepSeekHistoryMixin.get_sample_missions   sý   € ð 8ØsØ#Ø Tð  kØ"Yð %`Ø%UÐ%UÐ%Uð	ð 	ð ?ØjØ*Ø Zð  `Ø"cð %NØ%DÐ%DÐ%Dð	ð 	ð ;ØaØ+Ø Yð  lØ"[ð %qØ%<Ð%<Ð%<ð	ð 	ð <ØiØ*Ø Oð  qØ"Xð %iØ%EÐ%EÐ%Eð	ð 	ð ;ØYØ+Ø Gð  PØ"7ð %qØ%<Ð%<Ð%<ð	ð 	ðS3
ð 3	
ó    Ú
mission_idÚstrÚmission_titler   Ústeps_countÚintÚdurationÚfloatÚreportÚNonec                óÀ  — d}t          j        |||||dœ¦  «        }	 | j                             ¦   «         5 }	|	                     ¦   «         5 }
|
                     |d|› �|f¦  «         |	                     ¦   «          ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS # t          $ r&}t           	                    d|¦  «         Y d}~dS d}~ww xY w)uA   Ghi nháº­n lá»‹ch sá»­ nhiá»‡m vá»¥ vÃ o báº£ng audit PostgreSQL.ap  
            INSERT INTO erp_agent_work_logs (
                employee_id, action_type, description, status, metadata, created_at
            ) VALUES (
                (SELECT id FROM employees LIMIT 1),
                'DHS_MISSION_EXECUTION',
                %s,
                'COMPLETED',
                %s::jsonb,
                NOW()
            );
        )r#   r%   r   r&   Úduration_secondsu   HoÃ n thÃ nh nhiá»‡m vá»¥ DHS: Nu0   Lá»—i ghi nháº­n mission log vÃ o PostgreSQL: %s)
ÚjsonÚdumpsÚpostgres_clientÚget_connectionÚcursorÚexecuteÚcommitÚ	ExceptionÚloggerÚdebug)r   r#   r%   r   r&   r(   r*   ÚsqlÚpayload_metaÚconnÚcurÚexcs               r    Ú_persist_mission_logz)DeepSeekHistoryMixin._persist_mission_logD   s–  € ðˆõ ”zà(Ø!.Ø Ø*Ø$,ðð ñ
ô 
ˆð	RØÔ%×4Ò4Ñ6Ô6ð "¸$Ø—[’[‘]”]ð " cØ—K’KØÐOÀÐOÐOÐQ]Ð^ñô ð ð —K’K‘M”M�Mð	"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "øõ ð 	Rð 	Rð 	RÝ�LŠLÐKÈSÑQÔQÐQÐQÐQÐQÐQÐQÐQøøøøð	Røøøs^   žB- ·B Á0BÁ<B ÂB	ÂB ÂB	ÂB ÂB- Â B$Â$B- Â'B$Â(B- Â-
CÂ7CÃCé
   Úlimitc                ó¸  — d}	 | j                              ¦   «         5 }|                     ¦   «         5 }|                     ||f¦  «         |                     ¦   «         }d„ |D ¦   «         cddd¦  «         cddd¦  «         S # 1 swxY w Y   	 ddd¦  «         dS # 1 swxY w Y   dS # t
          $ r'}t                               d|¦  «         g cY d}~S d}~ww xY w)u:   Truy xuáº¥t lá»‹ch sá»­ cÃ¡c nhiá»‡m vá»¥ Ä‘Ã£ thá»±c thi.zï
            SELECT id, action_type, description, status, metadata, created_at
            FROM erp_agent_work_logs
            WHERE action_type = 'DHS_MISSION_EXECUTION'
            ORDER BY created_at DESC
            LIMIT %s;
        c           
     óB  — g | ]œ}t          |d          ¦  «        |d         |d         |d         t          |d         t          ¦  «        r|d         nt          j        |d         pd¦  «        |                     d¦  «        r|d                              ¦   «         nddœ‘Œ�S )	ÚidÚaction_typer   ÚstatusÚmetadataz{}Ú
created_atN)rB   rC   r   rD   rE   rF   )r$   Ú
isinstanceÚdictr.   ÚloadsÚgetÚ	isoformat)Ú.0Úrs     r    ú
<listcomp>z<DeepSeekHistoryMixin.get_mission_history.<locals>.<listcomp>{   s¶   € ð ð ð ð õ #& a¨¤g¡,¤,Ø+,¨]Ô+;Ø+,¨]Ô+;Ø&'¨¤kå)¨!¨J¬-½Ñ>Ô>ð)C¨¨*¬¨å!%¤¨A¨j¬MÐ,A¸TÑ!BÔ!Bà Ÿušu \Ñ2Ô2ð+&¨!¨L¬/×*CÒ*CÑ*EÔ*EÐ*Eà!%ðð ðð ð r"   Nu4   Lá»—i Ä‘á»�c lá»‹ch sá»­ mission tá»« PostgreSQL: %s)r0   r1   r2   r3   Úfetchallr5   r6   r7   )r   r?   r8   r:   r;   Úrowsr<   s          r    Úget_mission_historyz(DeepSeekHistoryMixin.get_mission_historym   s˜  € ðˆð	ØÔ%×4Ò4Ñ6Ô6ð ¸$Ø—[’[‘]”]ð  cØ—K’K  e XÑ.Ô.Ð.ØŸ<š<™>œ>�Dðð ð "&ðñ ô ðð ð ð ñ ô ð ðð ð ð ñ ô ð ð ðð ð ð øøøð ð ð ð ð ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð øõ& ð 	ð 	ð 	Ý�LŠLÐOÐQTÑUÔUÐUØˆIˆIˆIˆIˆIˆIøøøøð	øøøsi   „B( �B²7BÁ)BÁ5B( ÂB	ÂBÂ	B	Â
BÂB( ÂBÂB( Â"BÂ#B( Â(
CÂ2CÃCÃCN)r   r   )r#   r$   r%   r$   r   r$   r&   r'   r(   r)   r*   r$   r   r+   )r>   )r?   r'   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   r=   rQ   r   r"   r    r   r   
   sa   € € € € € Ø=Ð=ð5
ð 5
ð 5
ð 5
ðn'Rð 'Rð 'Rð 'RðRð ð ð ð ð ð r"   r   )	Ú
__future__r   r.   ÚloggingÚtypingr   Ú	getLoggerr6   r   r   r"   r    ú<module>rZ      sŠ   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø Ð Ð Ð Ð Ð à	ˆÔ	Ð4Ñ	5Ô	5€ðBð Bð Bð Bð Bñ Bô Bð Bð Bð Br"   