package gcom.gui.atendimentopublico.ordemservico; import gcom.atendimentopublico.ordemservico.ArquivoTextoAcompanhamentoServico; import gcom.atendimentopublico.ordemservico.FiltroArquivoTextoAcompanhamentoServico; import gcom.atendimentopublico.ordemservico.FiltroOsProgramNaoEncerMotivo; import gcom.atendimentopublico.ordemservico.OrdemServico; import gcom.atendimentopublico.ordemservico.OsProgramNaoEncerMotivo; import gcom.atendimentopublico.ordemservico.bean.ObterDescricaoSituacaoOSHelper; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.SituacaoTransmissaoLeitura; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * [UC1199] � Acompanhamento Arquivos Roteiro Informar Situa��o Ordem de Servi�o * * @author Th�lio Ara�jo * * @date 25/08/2011 */ public class ExibirInformarSituacaoOSAcompanhamentoArquivosRoteiroAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping,ActionForm actionForm, HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping.findForward("exibirInformarSituacaoOS"); HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); // Form AcompanharRoteiroProgramacaoOrdemServicoActionForm acompanharActionForm = (AcompanharRoteiroProgramacaoOrdemServicoActionForm) actionForm; String chaveArquivo = httpServletRequest.getParameter("chaveArquivo"); ArquivoTextoAcompanhamentoServico arquivoTextoAcompanhamentoServico = null; if (chaveArquivo != null){ FiltroArquivoTextoAcompanhamentoServico filtroArquivoTextoAcompanhamentoServico = new FiltroArquivoTextoAcompanhamentoServico(); filtroArquivoTextoAcompanhamentoServico.adicionarParametro(new ParametroSimples(FiltroArquivoTextoAcompanhamentoServico.ID, chaveArquivo)); Collection<?> colecaoArquivoTxtAcompanhamentoServico = fachada.pesquisar( filtroArquivoTextoAcompanhamentoServico, ArquivoTextoAcompanhamentoServico.class.getName()); arquivoTextoAcompanhamentoServico = (ArquivoTextoAcompanhamentoServico) colecaoArquivoTxtAcompanhamentoServico .iterator().next(); if (arquivoTextoAcompanhamentoServico.getSituacaoTransmissaoLeitura().getId().equals(SituacaoTransmissaoLeitura.TRANSMITIDO)){ throw new ActionServletException("atencao.nao_possivel.informar_situacao.situacao_finalizado"); } } String chaveOs = httpServletRequest.getParameter("chave"); OrdemServico ordemServico = fachada.recuperaOSPorId(new Integer(chaveOs)); //[FS0007 - Verificar sele��o de ordem de servi�o encerrada] if(ordemServico.getSituacao() == OrdemServico.SITUACAO_ENCERRADO.shortValue()){ throw new ActionServletException("atencao.ordem_servico_encerrada_para_alocar"); } Date dataRoteiro = Util.converteStringParaDate(acompanharActionForm.getDataProgramacao()); acompanharActionForm.setIdOrdemServico(chaveOs); acompanharActionForm.setDescricaoOrdemServico(ordemServico.getServicoTipo().getDescricao()); ObterDescricaoSituacaoOSHelper obter = fachada.obterDescricaoSituacaoOS(new Integer(chaveOs)); acompanharActionForm.setSituacaoAtual(obter.getDescricaoSituacao()); acompanharActionForm.setIdAcompanhamentoArquivosRoteiro(httpServletRequest.getParameter("chaveArquivo")); this.pesquisarOsProgramNaoEncerMotivo(httpServletRequest); sessao.setAttribute("chaveOsInformarSituacao", chaveOs); sessao.setAttribute("chaveArquivoInformarSituacao", chaveArquivo); sessao.setAttribute("dataRoteiroInformarSituacao", dataRoteiro); return retorno; } private Collection<OsProgramNaoEncerMotivo> pesquisarOsProgramNaoEncerMotivo( HttpServletRequest httpServletRequest){ Collection<OsProgramNaoEncerMotivo> retorno = new ArrayList(); FiltroOsProgramNaoEncerMotivo filtroOsProgramNaoEncerMotivo = new FiltroOsProgramNaoEncerMotivo(); filtroOsProgramNaoEncerMotivo.setCampoOrderBy(FiltroOsProgramNaoEncerMotivo.DESCRICAO); retorno = Fachada.getInstancia().pesquisar(filtroOsProgramNaoEncerMotivo, OsProgramNaoEncerMotivo.class.getName()); httpServletRequest.setAttribute("colecaoMotivoNaoEncerramento", retorno ); return retorno; } }