
    ]j>3                        d dl Z d dlZd dlZd dlZd dlmZ d dlmZ  e         e j                  dd      Z
 e j                  dd      Z e j                  dd	      Z e j                  d
d      Zd Zd Zedk(  r e        yy)    N)datetime)load_dotenvDB_HOST	localhostDB_NAMEsgd_wkveDB_USERsgd_wkve_userDB_PASS2hOyYbkJUchqc                 v   t        j                  |       st        |       j                         dk(  ry t        |       j                         } 	 t	        j
                  | d      }|j                  d      S # t        $ r; 	 t	        j
                  | d      }|j                  d      cY S # t        $ r Y Y y w xY ww xY w)N z%d/%m/%Y %H:%M:%Sz%Y-%m-%d %H:%M:%Sz%d/%m/%Y)pdisnastrstripr   strptimestrftime
ValueError)data_strdts     7/var/www/html/robot/execution/process_attachment_sgd.pyconverter_data_horar      s    	wwxCM//1R78}""$Hx)<={{.// 	""8Z8B;;233 			s0   &A4 4	B8>&B'$B8'	B40B83B44B8c                  t   t        t        j                        dk  r t        d       t        j                  d       t        j                  d   } t
        j                  j                  |       s#t        d|         t        j                  d       t        d|         	 t        j                  | d      }	 t        d	k(  rPt
        j                  j                  d
      r1	 t        j                  j                  d
t        t         t"              }n3t        j                  j                  t        t        t         t"              }|j%                  d      }g d}j'                         D ]e  \  }}	 t)        |j*                  d         }	t        j,                  |j*                  d         s|	j/                         dk(  rVt        j0                  |j*                  d         rt)        |j*                  d         nd }
t        j0                  |j*                  d         rt)        |j*                  d         nd }t        j0                  |j*                  d         rt)        |j*                  d         nd }t        j0                  |j*                  d         rt)        |j*                  d         nd }t        j0                  |j*                  d         rt)        |j*                  d         nd }t        j0                  |j*                  d         rt)        |j*                  d         nd }t        j0                  |j*                  d         rt)        |j*                  d         nd }t        j0                  |j*                  d         rt)        |j*                  d         nd }t        j0                  |j*                  d         rt)        |j*                  d         nd }t3        |j*                  d         }t3        |j*                  d         }t3        |j*                  d         }t3        |j*                  d         }t3        |j*                  d         }t        j0                  |j*                  d          rt)        |j*                  d          nd }t        j0                  |j*                  d!         rt)        |j*                  d!         nd }t        j0                  |j*                  d"         rt)        |j*                  d"         nd }t        j0                  |j*                  d#         rt)        |j*                  d#         nd }t        j0                  |j*                  d$         rt)        |j*                  d$         nd }t        j0                  |j*                  d%         rt)        |j*                  d%         nd }t        j0                  |j*                  d&         rt)        |j*                  d&         nd }j5                  d'|	f       |j7                         }i d(|
d)|d*|d+|d,|d-|d.|d/|d0|d1|d2|d3|d4|d5|d6|d7|d8|||||d9} |r+g }!g }"g }#| j9                         D ]  \  }$}%|j;                  |$      }&|$|v r|&t)        |&      }&|%t)        |%      }%t)        |&      t)        |%      k7  sM|!j=                  |$ d:       |"j=                  |%       |#j=                  |	|$|&|%f        |!rz|"j=                  |	       d;d<j?                  |!       d=}'|j5                  |'tA        |"             |#D ]  }(|j5                  d>|(        jC                          t        d?|	 d@       n[t        d?|	 dA       nKdB})|	|
||||||||||||||||||||f}*|j5                  |)|*       jC                          t        d?|	 dC       h t        dG       	 t        dH       ddddddI}+j5                  dJ       |jE                         },dK}-g }.|,D ]1  }/|/dL   }0|/d(   }1|+j;                  |1d      }2|.j=                  |0|2f       3 |.r:|jG                  |-|.       jC                          t        dMt        |.       dN       t        dO       dP}3|j5                  |3       jC                          t        dQ|jH                   dR       t        dS       dT}4|j5                  |4       |jC                          t        dU|jH                   dR       t        dV       jK                          jK                          	 t        jL                  |        t        dX|  dY       y # t        $ r.}t        d|        t        j                  d       Y d }~d }~ww xY w# t        $ rM}t        d| d       t        j                  j                  t        t        t         t"              }Y d }~d }~ww xY w# t        $ r.}t        d|        t        j                  d       Y d }~d }~ww xY w# t        $ r,}t        dD| dE|j*                  d    dF|        Y d }~d }~ww xY w# t        $ r}5t        dW|5        Y d }5~5hd }5~5ww xY w# tN        $ r}t        dZ|  d[|        Y d }~y d }~ww xY w)\N   u.   Erro: Caminho do arquivo Excel não fornecido.   u    Erro: Arquivo não encontrado - zProcessando arquivo: r   )headerzErro ao ler arquivo Excel: r   z/var/run/mysqld/mysqld.sock)unix_socketdatabaseuserpasswordu!   Conexão via Unix socket falhou (z). Tentando via TCP...)hostr   r    r!   T)
dictionaryz$Erro ao conectar ao banco de dados: )inicio_esperadoprazocriacao	encerradoentrega_estimadar                     	   
                                    z'SELECT * FROM tarefas WHERE tarefa = %sstatus_tarefasdescricao_resumida	companhiaunidade_negociogrupo_suportedesignado_paraitem_requisicaorequisitado_porsolicitado_parar$   r%   r&   r'   r(   info_adicionaisserv_detalhadoatualizadopor)atualizacaomotivoemailemail_ponto_focalz = %szUPDATE tarefas SET z, z WHERE tarefa = %sz\INSERT INTO log_alteracoes (tarefa, campo, valor_antigo, valor_novo) VALUES (%s, %s, %s, %s)zTarefa 'z' atualizada com sucesso.u   ' já está atualizada.aV  
                INSERT INTO tarefas (
                    tarefa, status_tarefas, descricao_resumida, companhia, unidade_negocio,
                    grupo_suporte, designado_para, item_requisicao, requisitado_por, solicitado_para, 
                    inicio_esperado, prazo, criacao, encerrado, entrega_estimada, info_adicionais,
                    serv_detalhado, atualizadopor, atualizacao, motivo, email, email_ponto_focal
                ) VALUES (
                    %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s
                )
                z' inserida com sucesso.zErro processando linha z
 (tarefa: z): u.   Iniciando sincronização pós-importação...z!Sincronizando tabela de status...)zEm andamento	ResolvidoPendente	Cancelado	Encerradoz,SELECT idtarefa, status_tarefas FROM tarefasz
            INSERT INTO status (idtarefa, id_status) VALUES (%s, %s)
            ON DUPLICATE KEY UPDATE id_status = VALUES(id_status)
        idtarefazStatus atualizados: z registros.zAtualizando levantamento...u~  
            INSERT INTO levantamento (
                idtarefa, tarefa, nome_demanda, escopo, data_solicitacao, 
                idUsuario, id_status, status_siged, 
                id_focal, id_gat, idlocalidade
            )
            SELECT 
                t.idtarefa, t.tarefa, t.info_adicionais, t.serv_detalhado, t.criacao, 
                57, s.id_status, sd.status_nome, 120,
                CASE 
                    WHEN t.grupo_suporte LIKE '%CARAJAS%' THEN 31
                    WHEN t.grupo_suporte LIKE '%SÃO LUIS%' THEN 58
                    WHEN t.grupo_suporte LIKE '%SOSSEGO%' THEN 32
                    WHEN t.grupo_suporte LIKE '%S11D%' THEN 37
                    WHEN t.grupo_suporte LIKE '%MARABÁ%' THEN 61
                    WHEN t.grupo_suporte LIKE '%SALOBO%' THEN 32
                    WHEN t.grupo_suporte LIKE '%SERRA SUL%' THEN 37
                    WHEN t.grupo_suporte LIKE '%ACAILÂNDIA%' THEN 61
                    WHEN t.grupo_suporte LIKE '%BELÉM%' THEN 87
                    WHEN t.grupo_suporte LIKE '%SANTA INÊS%' THEN 61
                    WHEN t.grupo_suporte LIKE '%OURILANDIA%' THEN 32
                    ELSE 1
                END,
                CASE
                    WHEN t.grupo_suporte LIKE '%SALOBO%' THEN 1
                    WHEN t.grupo_suporte LIKE '%CARAJAS%' THEN 3
                    WHEN t.grupo_suporte LIKE '%SÃO LUIS%' THEN 12
                    WHEN t.grupo_suporte LIKE '%SOSSEGO%' THEN 5
                    WHEN t.grupo_suporte LIKE '%S11D%' THEN 2
                    WHEN t.grupo_suporte LIKE '%MARABÁ%' THEN 11
                    WHEN t.grupo_suporte LIKE '%SERRA SUL%' THEN 2
                    WHEN t.grupo_suporte LIKE '%OURILANDIA%' THEN 6
                    WHEN t.grupo_suporte = 'PRJ Cabling WKVE -LA BR MG-DIFL' THEN 23
                    ELSE 12
                END
            FROM tarefas t
            LEFT JOIN status s ON t.idtarefa = s.idtarefa
            LEFT JOIN status_demanda sd ON s.id_status = sd.id_status
            ON DUPLICATE KEY UPDATE 
                nome_demanda = VALUES(nome_demanda),
                escopo       = VALUES(escopo)
        z6Levantamento atualizado com sucesso (linhas afetadas: z).z#Corrigindo info_adicionais nulos...zQUPDATE tarefas SET info_adicionais = serv_detalhado WHERE info_adicionais IS NULLz-Info adicionais corrigidos (linhas afetadas: u'   Sincronização concluída com sucesso!u,   Erro durante o processo de sincronização: u   Arquivo temporário z deletado com sucesso.zErro ao deletar o arquivo z: )(lensysargvprintexitospathexistsr   
read_excel	Exceptionr   mysql	connectorconnectr   r	   r   cursoriterrowsr   ilocr   r   notnar   executefetchoneitemsgetappendjointuplecommitfetchallexecutemanyrowcountcloseremoveOSError)6	file_pathdfeconn
socket_errr^   date_columnsindexrowtarefastatusr=   r>   r?   r@   rA   rB   rC   rD   r$   r%   r&   r'   r(   rE   rF   rG   rH   rI   rJ   rK   existingnovos_dadoscampos_para_atualizarvalores_para_atualizaralteracoes_logcampo
novo_valorvalor_atual
sql_update	log_entry
sql_insertvalores_insert
status_maptarefas_statussql_upsert_statusstatus_recordstid_val
status_str	status_idsql_levantamentosql_info_adicionaissync_errs6                                                         r   mainr      s	   
388}q>?I77>>)$0<=	!)
-.]]9Q/k!bggnn5R&S.. =$ $	 /  ??**  	 + D -
 \L kkm rR
sq	R!%Fwwsxx{#v||~';)+#((1+)>S!%DF57XXchhqk5JSXXa[!1PT,.HHSXXa[,ACHHQK(tI24((388A;2Gc#((1+.TO02!0EC,4M13#((1+1FS!-DN24((388A;2Gc#((1+.TO24((388A;2Gc#((1+.TO24((388A;2Gc#((1+.TO1#((2,?O'5E)#((2,7G+CHHRL9I2388B<@3588CHHRL3Ic#((2,/tO24((388B<2HS".dN13#((2,1GC-TM/1xx/E#chhrl+4K*,((388B<*@S"&dF)+#((2,)?C%TE57XXchhrl5KCHHRL 1QU NNDviP(H &$&8 Y "?	
   !. "? "? "? "?  7 Y #$4 "?  !.!"  #$  + %6+K0 (*%)+&!#)4):):)< X%E:"*,,u"5K,&2*-k*:K%1),ZJ;'3z?:-44we_E.55jA&--vuk:.VWX )*11&9#6tyyAV7W6XXj!kJNN:u5K/LM &4 	z%
 KKMHVH,EFGHVH,CDE	
 F$6	?!>?OUd#UGY@PRa"M;O`	" z>:(?@A_rRj 

:;ZI12

 	EF*
  	7Az]F+,J"z15I!!69"56		7 0.AKKM(^)<(=[IJ 	+,)T 	'(FvFWWYZ[ 	34q*+=foo=NbQR78 LLNJJL=
		)$YK/EFG{  +A3/0  9*E[\].. $ $	 /    4QC89p  	R+E7*SXXa[MQCPQQ	R|  I<XJGHHI  =*9+Rs;<<=s   !e) 9(g< "/f# Ag< 3Ah6S<h6>Dh6 Ei. $j )	f 2#ff #	g9,Ag4.g< 4g99g< <	h3#h..h36	i+?!i&&i+.	j7jj	j7j22j7__main__)rV   rR   pandasr   mysql.connectorr[   r   dotenvr   getenvr   r   r	   r   r   r   __name__     r   <module>r      s    	 
     
"))I{
+
"))Iz
*
"))I
/
"))I~
.O=b zF r   