Tempo real gasto no chamado

Olá galera!

Fiz uma simples Query MySQL para verificar o tempo real gasto desde a abertura do chamado até seu fechamento no GLPI.
Essa query foi feita com base nas principais colunas para gerar informações a respeito do chamado (ID do chamado, Técnico, Aberto em?, Fechado em? e Tempo Gasto [diferença]).

[sql]
— Query : Thiago Passamani
— GLPI 0.80
SELECT
Chamados.id AS ‘Chamado’,
Tecnicos.realname AS ‘Tecnico’,
Chamados.date AS ‘Aberto em?’,
Chamados.closedate AS ‘Fechado em?’,
TIMEDIFF(Chamados.closedate, Chamados.date) as ‘Tempo gasto’
FROM glpi_tickets AS Chamados
INNER JOIN glpi_tickets_users AS Tickets_Users ON(Chamados.id = Tickets_Users.tickets_id)
INNER JOIN glpi_users as Tecnicos ON(Tickets_Users.users_id = Tecnicos.id)
WHERE Chamados.status = ‘closed’
AND Tickets_Users.type = ‘2’;
[/sql]

Resultado:

[ ATUALIZAÇÃO 1 ]

[sql]
— Query : Thiago Passamani
— GLPI 0.78.3 / 0.78.4 / 0.78.5
SELECT
Chamados.id AS ‘Chamado’,
Tecnicos.realname AS ‘Tecnico’,
Chamados.date AS ‘Aberto em?’,
Chamados.closedate AS ‘Fechado em?’,
TIMEDIFF(Chamados.closedate, Chamados.date) as ‘Tempo gasto’
FROM glpi_tickets AS Chamados
INNER JOIN glpi_users as Tecnicos ON(Chamados.users_id_assign = Tecnicos.id)
WHERE Chamados.status = ‘closed’;
[/sql]

[ ATUALIZAÇÃO 2 ]

[sql]
— Versão 0.72.4
SELECT
Chamados.id AS ‘Chamado’,
Tecnicos.realname AS ‘Tecnico’,
Chamados.date AS ‘Aberto em?’,
Chamados.closedate AS ‘Fechado em?’,
TIMEDIFF(Chamados.closedate, Chamados.date) as ‘Tempo gasto’
FROM glpi_tracking AS Chamados
INNER JOIN glpi_users as Tecnicos ON(Chamados.assign = Tecnicos.id)
WHERE Chamados.status in(‘old_done’,’old_nordone’);
[/sql]

[ ATUALIZAÇÃO 3 ]
[sql]
— Versão 0.90.x
SELECT
Chamados.id AS ‘Chamado’,
Tecnicos.name AS ‘Login’,
CONCAT(Tecnicos.firstname, ‘ ‘, Tecnicos.realname) AS ‘Tecnico’,
Chamados.date AS ‘Aberto em?’,
Chamados.closedate AS ‘Fechado em?’,
TIMEDIFF(Chamados.closedate, Chamados.date) as ‘Tempo gasto’
FROM glpi_tickets AS Chamados
INNER JOIN glpi_tickets_users AS Tickets_Users ON(Chamados.id = Tickets_Users.tickets_id)
INNER JOIN glpi_users as Tecnicos ON(Tickets_Users.users_id = Tecnicos.id)
WHERE Chamados.status = ‘6’
AND Tickets_Users.type = ‘2’;
[/sql]

Espero que essa query ajude no desenvolvimento de relatórios e se desenvolverem, postem aqui.

 

Para dúvidas, críticas, sugestões ou reclamações. Por favor comentem!

Até a próxima…


Publicado

em

por

Comentários

37 respostas para “Tempo real gasto no chamado”

  1. Avatar de Andre Luiz Coelho
    Andre Luiz Coelho

    SELECT
    Chamados.id AS ‘Chamado’,
    DATE_FORMAT(Chamados.date, ‘%d/%m/%Y’) AS ‘Data Abertura’,
    TIME_FORMAT(Chamados.date, ‘%h:%i:%s’) AS ‘Hora Abertura’,
    DATE_FORMAT(Chamados.closedate, ‘%d/%m/%Y’) AS ‘Data Fechamento’,
    TIME_FORMAT(Chamados.closedate, ‘%h:%i:%s’) AS ‘Hora Fechamento’,
    SEC_TO_TIME(Chamados.takeintoaccount_delay_stat) AS ‘Tempo Atribuido’,
    SEC_TO_TIME(Chamados.waiting_duration) AS ‘Tempo Pendente’,
    TIMEDIFF(Chamados.closedate, Chamados.date) as ‘Tempo Total’,
    ((TIMEDIFF(Chamados.closedate, Chamados.date)) – (SEC_TO_TIME(Chamados.waiting_duration))) as ‘TOTAL’
    FROM glpi_tickets AS Chamados
    WHERE Chamados.date > ‘2017-04-01 00:00:00’ AND Chamados.date < '2017-04-30 23:59:59' and Chamados.status = '6';

    No cálculo de tempo real (total – pendente) tem como formatar para 00:00:00 ?????

  2. Avatar de Thiago Passamani

    Bruno não tenho pronta. Caso queira, presto serviço de consultoria e assim gero a consulta pra você.

  3. Avatar de Bruno Carvalho
    Bruno Carvalho

    Thiago, bom dia tudo bem?
    Gostaria de tirar um consulta que me de o número de chamados atendidos nos últimos 6 meses ,entre 18hs e 19 hs, como ficaria?

    Obrigado!!

  4. Avatar de Thiago Passamani

    Bryan ai terá de criar outra consulta. Usando as informações do calendário do GLPI.

  5. Avatar de Thiago Passamani

    Manuela está no próprio post em ATUALIZAÇÃO 3.

  6. Avatar de Bryan Reis
    Bryan Reis

    Boa tarde Thiago,

    Como faço para cadastrar os dias úteis para contar na abertura/fechamento dos chamados.
    Quero que sábado, domingo e feriado não conte no meu Dashboard, pois emito relatórios para Gerência através dele.

  7. Avatar de Jhonny Ilis
    Jhonny Ilis

    E no caso de somar todas as horas de cada técnico:

    SELECT
    Chamados.id AS ‘Chamado’,
    Tecnicos.name AS ‘Login’,
    CONCAT(Tecnicos.firstname, ‘ ‘, Tecnicos.realname) AS ‘Tecnico’,
    Chamados.date AS ‘Aberto em?’,
    Chamados.closedate AS ‘Fechado em?’,
    TIME_FORMAT(SEC_TO_TIME(sum(TIME_TO_SEC(TIMEDIFF( Chamados.closedate, Chamados.date)))), “%H:%i”) AS ‘Tempo Gasto’
    FROM glpi_tickets AS Chamados
    INNER JOIN glpi_tickets_users AS Tickets_Users ON(Chamados.id = Tickets_Users.tickets_id)
    INNER JOIN glpi_users as Tecnicos ON(Tickets_Users.users_id = Tecnicos.id)
    WHERE Chamados.status = ‘6’ AND (date BETWEEN ‘2016-10-01 00:00:00’ AND ‘2016-10-20 23:59:59’)
    AND Tickets_Users.type = ‘2’
    GROUP BY Tecnico;

    Uma única linha para cada técnico já com o tempo total

  8. Avatar de Manuela
    Manuela

    Olá,

    Alguem tem essa query atualizada para versão 0.90.4 ?

    Agradeço desde Jááá!

  9. Avatar de Thiago Passamani

    Tiago atualizei, veja se te ajuda.

  10. Avatar de Tiago

    Fala galera!!

    Alguem tem essa query atualizada para versão 0.90.1 ?

    No aguardo! valeu!
    Tiago

  11. Avatar de Douglas Silva

    Atualização para versão 0.85.3

    SELECT
    Chamados.id AS ‘Chamado’,
    Tecnicos.realname AS ‘Tecnico’,
    Chamados.date AS ‘Aberto em?’,
    Chamados.closedate AS ‘Fechado em?’,
    TIMEDIFF(Chamados.closedate, Chamados.date) as ‘Tempo gasto’
    FROM glpi_tickets AS Chamados
    INNER JOIN glpi_tickets_users AS Tickets_Users ON(Chamados.id = Tickets_Users.tickets_id)
    INNER JOIN glpi_users as Tecnicos ON(Tickets_Users.users_id = Tecnicos.id)
    WHERE Chamados.status = ‘6’
    AND Tickets_Users.type = ‘2’;

  12. Avatar de Marcio Santana
    Marcio Santana

    Thiago,
    Boa tarde!

    Uso a versão 85.2, e não entendo muito de banco de dados, você acha que é possível coletar apenas o tempo em atribuição? estamos prestando serviço a uma empresa que nos paga pelo tempo em que passamos com o chamado em atribuição, porém não encontrei um relatório que mostre isso, encontrei apenas diretamente no chamado, na guia Estatísticas. Onde posso criar esse relatório?

    Marcio Santana

  13. Avatar de Alex Sousa

    Ola Thiago, estou com a versao 85.2 e nao esta funcionando o relatorio.Existe alguma particularidade para esta versao …
    abcs

  14. Avatar de Alex Sousa

    Ola Thiago estou com a versao 85.2 e nao estou conseguindo gerar esse relatorio, tem alguma dica …
    abcs

  15. Avatar de Thiago Passamani

    Aguiberto não há uma ferramenta, você vai ter que customizar código de relatório para pode gerar os resultados que você quer.

  16. Avatar de Aguiberto
    Aguiberto

    Customizar como?
    Qual ferramenta eu posso fazer isso?
    Aponta um norte pra mim para que eu possa encontrar uma solução.

    obrigado.

  17. Avatar de Thiago Passamani

    Aguiberto tem que customizar o relatório para ser exibido no GLPI.

  18. Avatar de Aguiberto
    Aguiberto

    Bom dia Thiago,

    Como que faço para adicionar um relatório desse no glpi?
    Eu preciso de alguns relatórios mais específicos e não sei como criar estes relatórios no glpi. Você poderia me ajudar?

    Obrigado.

  19. Avatar de Thiago Passamani

    Caio você tem que preencher o cadastro da SLA e adicionar o calendário de atendimento, assim você vai conseguir.

  20. Avatar de Caio Freire
    Caio Freire

    Boa tarde!

    Preciso de uma ajudar na seguinte questão, um cliente quer abrir chamados onde dependendo do chamado ele tem niveis para controle de tempo, tipo, após o chamado aberto tenho x horas para dar um solução e Y horas para solucionar e z horas para fechar o chamado solucionado, adicionei as SLA e ele me da o tempo final do chamado, ou seja, quando vai fechar, contudo gostaria de saber se tem como eu fazer o GLPI contar em tempo real o tempo decorrido, ou seja, minuto transcorrido até o momento da visualição atual..

  21. Avatar de Thiago Passamani

    Caio na versão 0.83.2 já tem essa possibilidade. Está em ESTATÍSTICAS > por chamado, ai você faz filtro por “TIPO” (incidente e requisição) e por “CATEGORIA”.

  22. Avatar de Caio Freire

    Thiago,

    proderia me auxiliar na seguinte questão: Preciso gerar um relatorio onde eu mostre quais os tipos de chamados (incidente e solicitação) que mais são abertos e quais categorias que tiveram chamados mais abertos, procurei alguns plugins para isso, porém só tem relatorios relativos a hardware e não a chamados, o que vc me sugere?

  23. Avatar de Rodrigo Leal

    @Rodrigo Leal:

    E feriados também… onde eu cadastros os feriados no GLPI?

  24. Avatar de Rodrigo Leal

    Thiago,

    Preciso descobrir o tempo gasto levando em consideração os dias úteis. Tipo… Um chamado que foi aberto às 17h do dia 10 e foi solucionado e fechado no dia 11 às 10h teve a duração de 3h. Entende?

    Vocês saber se existe esta informação no Banco de Dados do GLPI ou quais tabelas devo usar para fazer esta consulta. Pode me ajudar?

    Aguardo sua resposta o mais breve possível.

    Respeitosamente,

    Rodrigo Leal

  25. Avatar de Marcos
    Marcos

    @Thiago Passamani: Então, até ai eu entendi, por isso comentei que acho q deve ter alguma coisa errada, pois se vc ir em chamados la no GLPI e mandar ele mostrar os chamados por periodo ele me mostra 19 chamados com o status de “FECHADO” quando faço pela query ele ta me mostrando apenas 3 chamados com o tempo MUITO elevado, será porque estou executando ele diretamente no SQL do phpmyadmin? qual ferramenta é essa da sua visualização que vc mostra no print…
    Olha o resultado do periodo do mes 09

    Chamado Tecnico Aberto em? Fechado em? Tempo gasto
    97 Marcos Augusto Schimidt 2011-07-27 10:41:00 2011-09-15 10:56:11 838:59:59
    152 Marcos Augusto Schimidt 2011-08-22 10:30:00 2011-09-14 08:48:57 550:18:57
    198 Marcos Augusto Schimidt 2011-09-23 16:48:00 2011-09-26 10:30:48 65:42:48

  26. Avatar de Thiago Passamani

    @Marcos nesse caso ele pega só os chamados fechados (status = closed), basta tirar da query que irá pegar todos os chamados.

  27. Avatar de Marcos
    Marcos

    Entendi, mas acho que ela esta se perdendo em algum lugar, pois nao traz todos os chamados do mês, e com isso infelizmente ainda caio no problema de ter q lançar manualmente, ou melhor, fazer formula no excel…mas de qualquer forma valeu ai Thiago..

  28. Avatar de Thiago Passamani

    @Marcos nessa query faço a verificação usando a data de abertura e data de fechamento, claro que isso é bem básico. Teria que aprofundar mais essa query para pegar o tempo que realmente foi atendido.

  29. Avatar de Marcos
    Marcos

    Hmm, saquei, entao é por isso que ele gerou apenas no email acima que te mandei esses 4 eventos no periodo de 1 mes?? sendo que no correio eu tenho como falei 19 chamados nesse periodo..

  30. Avatar de Thiago Passamani

    @Marcos no GLPI se não colocar o tempo gasto nas tarefas em alguns casos, não é possível gerar o relatório e vai ser gerado como 0 segundos.

  31. Avatar de Marcos
    Marcos

    Thiago, me desculpa, mas funcionou sim, o problema foi no control c + control V só que o resultado esta furado, acho q dá pra entender um pouco abaixo.
    Tem datas do dia 27/07 e segundo o relatorio tirado dentro do proprio GLPI eu tive no mes de setembro um total de 19 chamados, e porque não uso o relatório de lá? porque ele não me mostra o campo “Duração Total” fica sempre como 0 Segundo’s

    Obrigado.

    Chamado Tecnico Aberto em? Fechado em? Tempo gasto
    97 Marcos Augusto Schimidt 2011-07-27 10:41:00 2011-09-15 10:56:11 838:59:59
    152 Marcos Augusto Schimidt 2011-08-22 10:30:00 2011-09-14 08:48:57 550:18:57
    198 Marcos Augusto Schimidt 2011-09-23 16:48:00 2011-09-26 10:30:48 65:42:48

  32. Avatar de Marcos
    Marcos

    Thiago, valeu o retorno, mas ele retornou um erro..

    consulta SQL:

    SET @DataIni = ’2011 -09 – 01′;

    Mensagens do MySQL : Documentação
    #1054 – Unknown column ‘’2011’ in ‘field list’

  33. Avatar de Thiago Passamani

    @Marcos sim é possivel

    SET @DataIni = ‘2011-09-01’;
    SET @DataFim = ‘2011-09-31’;
    SELECT
    t1.id AS ‘Chamado’,
    u1.realname AS ‘Tecnico’,
    t1.date AS ‘Aberto em?’,
    t1.closedate AS ‘Fechado em?’,
    TIMEDIFF(t1.closedate, t1.date) as ‘Tempo gasto’
    FROM glpi_tickets t1
    INNER JOIN glpi_tickets_users tu1 ON(t1.id = tu1.tickets_id)
    INNER JOIN glpi_users as u1 ON(tu1.users_id = u1.id)
    WHERE t1.status = ‘closed’
    AND t1.closedate >= @DataIni
    AND t1.closedate < @DataFim AND tu1.type = '2';

  34. Avatar de Marcos
    Marcos

    Valeu Thiago…

    Obrigado…funcionou, eu queria colocar por periodo de datas, tipo quantidade de chamados atendidos no perio de 01/09/11 a 31/09/11 é possivel??

    Valeu..

  35. Avatar de Thiago Passamani

    @Marcos a query é a mesma da 0.80

    [sql]
    SELECT
    t1.id AS ‘Chamado’,
    u1.realname AS ‘Tecnico’,
    t1.date AS ‘Aberto em?’,
    t1.closedate AS ‘Fechado em?’,
    TIMEDIFF(t1.closedate, t1.date) as ‘Tempo gasto’
    FROM glpi_tickets t1
    INNER JOIN glpi_tickets_users tu1 ON(t1.id = tu1.tickets_id)
    INNER JOIN glpi_users as u1 ON(tu1.users_id = u1.id)
    WHERE t1.status = ‘closed’
    AND tu1.type = ‘2’;
    [/sql]

  36. Avatar de Marcos
    Marcos

    Falae thiago, isso iria salvar a minha vida, mas nao ta funcionando na versao GLPI 0.80.4

    vc pode passar o bizu pra gente?
    grande abraço

  37. Avatar de Alexandre Proton
    Alexandre Proton

    Nossa !!!!
    Funcionou e muito bem perfeito adorei o relatorio.
    Obrigado