/* * Sistema de Ouvidoria: um canal através do qual os usuários * podem encaminhar suas reclamações, elogios e sugestões. * * Copyright (C) 2011 SERPRO * * Este programa é software livre; você pode redistribuí-lo e/ou * modificá-lo sob os termos da Licença Pública Geral GNU, conforme * publicada pela Free Software Foundation; tanto a versão 2 da * Licença como (a seu critério) qualquer versão mais nova. * * Este programa é distribuído na expectativa de ser útil, mas SEM * QUALQUER GARANTIA; sem mesmo a garantia implícita de * COMERCIALIZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM * PARTICULAR. Consulte a Licença Pública Geral GNU para obter mais * detalhes. * * Você deve ter recebido uma cópia da Licença Pública Geral GNU, * sob o título "LICENCA.txt", junto com esse programa. Se não, * acesse o Portal do Software Público Brasileiro no endereço * http://www.softwarepublico.gov.br/ ou escreva para a Fundação do * Software Livre (FSF) Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02111-1301, USA. * * Contatos através do seguinte endereço internet: * http://www.serpro.gov.br/sistemaouvidoria/ */ package br.gov.serpro.ouvidoria.controller; import java.sql.Timestamp; import java.util.List; import br.gov.serpro.ouvidoria.dao.Dao; import br.gov.serpro.ouvidoria.dao.DaoException; import br.gov.serpro.ouvidoria.dao.DaoFactory; import br.gov.serpro.ouvidoria.model.Acionamento; import br.gov.serpro.ouvidoria.model.Funcionalidade; import br.gov.serpro.ouvidoria.model.Funcionario; import br.gov.serpro.ouvidoria.model.Historico; /** * HistoricoCtrl * * Objetivo: Fornecer um ponto centralizado de log das Funcionalidades da * aplicação * * @author SERPRO * @version $Revision: 1.1.2.3 $, $Date: 2011/10/19 18:18:10 $ * @version 0.1, Date: 2004/12/13 */ public class HistoricoCtrl { private final Dao historicoDao; private final Dao funcionalidadeDao; /** * Construtor recebendo objeto Dao * * @param daoFactory */ public HistoricoCtrl(DaoFactory daoFactory) { historicoDao = daoFactory.create(Historico.class); funcionalidadeDao = daoFactory.create(Funcionalidade.class); } /** * Grava o histórico da funcionalidade * * @param funcionario * @param role * @param acionamento * @throws DaoException */ public void Log(final Funcionario funcionario, final String role, final Acionamento acionamento) throws DaoException { // se o funcionário é nulo, nada a fazer if (funcionario == null) { return; } // se o perfil (role) for nulo ou vazio, nada a fazer if (role == null || role.trim().length() == 0) { return; } // obter a funcionalidade Funcionalidade funcionalidade = (Funcionalidade) funcionalidadeDao .get(new Long(role)); // se a funcionalidade é nula, nada a fazer if (funcionalidade == null) { return; } // verificar se a funcionalidade deve ser gravada em histórico Boolean geraHistorico = funcionalidade.getGeraHistorico(); if (geraHistorico != null && geraHistorico.booleanValue()) { Historico historico = new Historico(); historico.setDataCadastramento(new Timestamp(System .currentTimeMillis())); historico.setFuncionalidade(funcionalidade); historico.setFuncionario(funcionario); historico.setAcionamento(acionamento); historicoDao.save(historico); } } /** * Método para consultar histórico de acionamento * * @param pAcionamento * - Acionamento a ser consultado */ public List consultaHistAcionamento(final Acionamento pAcionamento) throws DaoException { String lsQuery = ""; List lstHistorico = null; lsQuery = " Select h from Historico as h " + " Where h.acionamento.id = " + pAcionamento.getId() + " Order by h.dataCadastramento DESC "; // Recupera lista de soluções lstHistorico = historicoDao.query(lsQuery); return lstHistorico; } }