package gcom.gui.atendimentopublico.ordemservico; import gcom.atendimentopublico.ordemservico.ArquivoTextoAcompanhamentoServico; import gcom.atendimentopublico.ordemservico.EspecificacaoServicoTipo; import gcom.atendimentopublico.ordemservico.FiltroArquivoTextoAcompanhamentoServico; import gcom.atendimentopublico.ordemservico.FiltroOrdemServicoUnidade; import gcom.atendimentopublico.ordemservico.FiltroServicoTipoPrioridade; import gcom.atendimentopublico.ordemservico.OrdemServico; import gcom.atendimentopublico.ordemservico.OrdemServicoUnidade; import gcom.atendimentopublico.ordemservico.ServicoTipo; import gcom.atendimentopublico.ordemservico.ServicoTipoPrioridade; import gcom.atendimentopublico.ordemservico.bean.ObterDescricaoSituacaoOSHelper; import gcom.atendimentopublico.registroatendimento.AtendimentoRelacaoTipo; import gcom.atendimentopublico.registroatendimento.RegistroAtendimento; import gcom.atendimentopublico.registroatendimento.bean.ObterDadosRegistroAtendimentoHelper; import gcom.atendimentopublico.registroatendimento.bean.ObterDescricaoSituacaoRAHelper; import gcom.fachada.Fachada; import gcom.faturamento.credito.FiltroCreditoTipo; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.SituacaoTransmissaoLeitura; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; 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; /** * <<Descri��o da Classe>> * * @author lms/S�vio * @date 06/09/2006-18/10/2006 */ public class ExibirAtualizarOrdemServicoAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("exibirAtualizarOrdemServico"); AtualizarOrdemServicoActionForm form = (AtualizarOrdemServicoActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado"); if (httpServletRequest.getParameter("primeiraVez") != null && !httpServletRequest.getParameter("primeiraVez").equals("")) { if (httpServletRequest.getParameter("ehPopup") != null && !httpServletRequest.getParameter("ehPopup").equals("")) { sessao.setAttribute("ehPopup", httpServletRequest .getParameter("ehPopup")); } if (httpServletRequest.getParameter("retornoTela") != null && !httpServletRequest.getParameter("retornoTela").equals( "")) { sessao.setAttribute("retornoTela", httpServletRequest .getParameter("retornoTela")); } if(httpServletRequest.getParameter("veioAcompanhamentoRoteiro") != null){ sessao.setAttribute("veioAcompanhamentoRoteiro",httpServletRequest.getParameter("veioAcompanhamentoRoteiro")); sessao.setAttribute("dataProgramacaoAtualizar",httpServletRequest.getParameter("dataProgramacao")); sessao.setAttribute("chaveArquivoAtualizar", httpServletRequest.getParameter("chaveArquivo")); } Integer numeroOS = Util .converterStringParaInteger(httpServletRequest .getParameter("numeroOS")); // [FS0001] - Verificar unidade do usu�rio fachada.verificarUnidadeUsuario(numeroOS, usuarioLogado); // Ordem de Servi�o OrdemServico ordemServico = pesquisarOrdemServico(numeroOS); form.setOrdemServico(ordemServico); if(httpServletRequest.getParameter("veioAcompanhamentoRoteiro") != null){ //[FS0008 - Verificar sele��o do arquivo finalizado] 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.atualizar_os.situacao_finalizado"); } } } //[FS0009 - Verificar sele��o de ordem de servi�o diferente de pendente] if(httpServletRequest.getParameter("veioAcompanhamentoRoteiro") != null){ if (ordemServico.getSituacao() != OrdemServico.SITUACAO_PENDENTE){ throw new ActionServletException("atencao.situacao.diferente_pendente", "atualizar a"); } } // limpa do campos do form form.resetarConsultarDadosOSPopup(); // Dados Gerais da OS form.setNumeroOS(ordemServico.getId() + ""); form.setSituacaoOSId(ordemServico.getSituacao() + ""); // Caso de Uso [UC0454] ObterDescricaoSituacaoOSHelper situacaoOS = fachada .obterDescricaoSituacaoOS(ordemServico.getId()); form.setSituacaoOS(situacaoOS.getDescricaoSituacao()); if (ordemServico.getRegistroAtendimento() != null) { form.setNumeroRA(ordemServico.getRegistroAtendimento().getId() + ""); // Caso de Uso [UC0420] ObterDescricaoSituacaoRAHelper situacaoRA = fachada .obterDescricaoSituacaoRA(ordemServico .getRegistroAtendimento().getId()); form.setSituacaoRA(situacaoRA.getDescricaoSituacao()); } if (ordemServico.getCobrancaDocumento() != null) { form.setNumeroDocumentoCobranca(ordemServico .getCobrancaDocumento().getId() + ""); } form.setDataGeracao(Util .formatarData(ordemServico.getDataGeracao())); if (ordemServico.getServicoTipo() != null && !ordemServico.getServicoTipo().equals("")) { form.setIdServicoTipo(ordemServico.getServicoTipo().getId() + ""); form.setDescricaoServicoTipo(ordemServico.getServicoTipo() .getDescricao()); ServicoTipo servicoTipo = fachada .pesquisarSevicoTipo(ordemServico.getServicoTipo() .getId()); sessao.setAttribute("servicoTipo", servicoTipo); if (ordemServico.getServicoTipoReferencia() != null && !ordemServico .getServicoTipoReferencia().equals("")) { ServicoTipo st = fachada.pesquisarSevicoTipo(ordemServico.getServicoTipoReferencia() .getId()); form.setIdServicoTipoReferencia(st.getId().toString()); form.setDescricaoServicoTipoReferencia(st.getDescricao()); form.getOrdemServico().setServicoTipoReferencia(st); form.setIdServicoTipoReferencia("" + ordemServico .getServicoTipoReferencia().getId()); form.setDescricaoServicoTipoReferencia(ordemServico.getServicoTipoReferencia() .getDescricao()); } } if (ordemServico.getOsReferencia() != null) { OrdemServico os = fachada.pesquisarOrdemServico(ordemServico .getOsReferencia().getId()); form.setIdOrdemServicoReferencia(os.getId().toString()); form.setDescricaoOrdemServicoReferencia(os.getServicoTipo() .getDescricao()); form.getOrdemServico().setOsReferencia(os); } form.setObservacao(ordemServico.getObservacao()); form.setValorServicoOriginal(ordemServico.getValorOriginal() + ""); form.setPrioridadeOriginal(ordemServico .getServicoTipoPrioridadeOriginal().getDescricao()); form.setPrioridadeAtual(ordemServico .getServicoTipoPrioridadeAtual().getDescricao() + ""); OrdemServicoUnidade ordemServicoUnidade = consultarOrdemServicoUnidade( ordemServico.getId(), AtendimentoRelacaoTipo.ABRIR_REGISTRAR); if (ordemServicoUnidade != null) { form.setUnidadeGeracaoId(ordemServicoUnidade .getUnidadeOrganizacional().getId() + ""); form.setUnidadeGeracaoDescricao(ordemServicoUnidade .getUnidadeOrganizacional().getDescricao()); form.setUsuarioGeracaoId(ordemServicoUnidade.getUsuario() .getId() + ""); form.setUsuarioGeracaoNome(ordemServicoUnidade.getUsuario() .getNomeUsuario()); } if (ordemServico.getDataEmissao() != null) { form.setDataUltimaEmissao(Util.formatarData(ordemServico .getDataEmissao())); } // fim dos dados gerais form.setDescricaoPrioridadeServicoOriginal(ordemServico .getServicoTipoPrioridadeOriginal().getDescricao()); Integer IdPrioridadeServicoAtual = Util .converterStringParaInteger(form .getIdPrioridadeServicoAtual()); if (Util.validarNumeroMaiorQueZERO(IdPrioridadeServicoAtual)) { form.setIdPrioridadeServicoAtual(IdPrioridadeServicoAtual .toString()); } else { if (ordemServico.getServicoTipoPrioridadeAtual() != null) { form .setIdPrioridadeServicoAtual(ordemServico .getServicoTipoPrioridadeAtual().getId() .toString()); } } form.setObservacao(ordemServico.getObservacao()); // Cole��o de Servi�os Tipo Collection colecaoServicosTipo = new ArrayList(); // Registro de Atendimento RegistroAtendimento ra = ordemServico.getRegistroAtendimento(); if (ra != null) { ObterDadosRegistroAtendimentoHelper registroAtendimentoHelper = fachada .obterDadosRegistroAtendimento(ra.getId()); ra = fachada.validarRegistroAtendimento(ra.getId()); for (Iterator iter = ra.getSolicitacaoTipoEspecificacao() .getEspecificacaoServicoTipos().iterator(); iter .hasNext();) { EspecificacaoServicoTipo est = (EspecificacaoServicoTipo) iter .next(); colecaoServicosTipo.add(est.getServicoTipo()); } fachada.verificarUnidadeUsuario(ordemServico.getId(), usuarioLogado); httpServletRequest.setAttribute("registroAtendimentoHelper", registroAtendimentoHelper); httpServletRequest.setAttribute("unidadeAtualRA", fachada .obterUnidadeAtualRA(ra.getId())); } sessao.setAttribute("colecaoServicosTipo", colecaoServicosTipo); FiltroServicoTipoPrioridade filtroServicoTipoPrioridade = new FiltroServicoTipoPrioridade(); filtroServicoTipoPrioridade .setCampoOrderBy(FiltroCreditoTipo.DESCRICAO); filtroServicoTipoPrioridade .adicionarParametro(new ParametroSimples( FiltroCreditoTipo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoServicoTipoPrioridade = fachada.pesquisar( filtroServicoTipoPrioridade, ServicoTipoPrioridade.class .getName()); sessao.setAttribute("colecaoServicoTipoPrioridade", colecaoServicoTipoPrioridade); } // pesquisa do enter servi�o tipo String idServicoTipo = form.getIdServicoTipo(); String descricaoServicoTipo = form.getDescricaoServicoTipo(); if (idServicoTipo != null && !idServicoTipo.equals("") && (descricaoServicoTipo == null || descricaoServicoTipo .equals(""))) { OrdemServico ordemServico = form.getOrdemServico(); if (ordemServico.getOsReferencia() != null && !ordemServico.getOsReferencia().equals("")) { form.setIdOrdemServicoReferencia("" + ordemServico.getOsReferencia().getId()); } Integer idServicoTipoInteger = Util.converterStringParaInteger(form .getIdServicoTipo()); ServicoTipo servicoTipo = fachada .pesquisarSevicoTipo(idServicoTipoInteger); if (servicoTipo != null && !servicoTipo.equals("")) { form.getOrdemServico().setServicoTipo(servicoTipo); form.setDescricaoServicoTipo(servicoTipo.getDescricao()); form.setIdServicoTipo(servicoTipo.getId().toString()); sessao.setAttribute("servicoTipo", servicoTipo); } else { form.setIdServicoTipo(""); form.getOrdemServico().setServicoTipo(null); httpServletRequest.setAttribute("nomeCampo", "idServicoTipo"); httpServletRequest.setAttribute("idServicoTipoNaoEncontrado", "exception"); form.setDescricaoServicoTipo("Tipo Servi�o Inexistente"); } } // pesquisa do enter Ordem de Servi�o Refer�ncia String idOSReferencia = form.getIdOrdemServicoReferencia(); String descricaoOsReferencia = form .getDescricaoOrdemServicoReferencia(); if (idOSReferencia != null && !idOSReferencia.equals("") && (descricaoOsReferencia == null || descricaoOsReferencia .equals(""))) { Integer idOrdemServicoReferencia = Util .converterStringParaInteger(form .getIdOrdemServicoReferencia()); OrdemServico os = fachada .pesquisarOrdemServico(idOrdemServicoReferencia); if (os != null && !os.equals("")) { form.setIdOrdemServicoReferencia(os.getId().toString()); form.setDescricaoOrdemServicoReferencia(os.getServicoTipo() .getDescricao()); form.getOrdemServico().setOsReferencia(os); } else { form.setIdOrdemServicoReferencia(""); form.getOrdemServico().setOsReferencia(null); httpServletRequest.setAttribute("nomeCampo", "idOrdemServicoReferencia"); httpServletRequest.setAttribute( "idOrdemServicoReferenciaNaoEncontrado", "exception"); form .setDescricaoServicoTipo("Ordem Servi�o Refer�ncia Inexistente"); } } // pesquisa do enter Servi�o Tipo Refer�ncia String idServicoTipoReferencia = form.getIdServicoTipoReferencia(); String descricaoServicoTipoReferencia = form .getDescricaoServicoTipoReferencia(); if (idServicoTipoReferencia != null && !idServicoTipoReferencia.equals("") && (descricaoServicoTipoReferencia == null || descricaoServicoTipoReferencia .equals(""))) { Integer idTipoServicoReferenciaInteger = Util .converterStringParaInteger(form .getIdServicoTipoReferencia()); ServicoTipo st = fachada .pesquisarSevicoTipo(idTipoServicoReferenciaInteger); if (st != null && !st.equals("")) { form.setIdServicoTipoReferencia(st.getId().toString()); form.setDescricaoServicoTipoReferencia(st.getDescricao()); form.getOrdemServico().setServicoTipoReferencia(st); } else { form.setIdServicoTipoReferencia(""); form.setDescricaoServicoTipoReferencia(""); form.getOrdemServico().setServicoTipoReferencia(null); httpServletRequest.setAttribute("nomeCampo", "idServicoTipoReferencia"); httpServletRequest.setAttribute( "idServicoTipoReferenciaNaoEncontrado", "exception"); form .setDescricaoServicoTipo("Servi�o Tipo Refer�ncia Inexistente"); } } // sessao.setAttribute("servicoTipo", servicoTipo); // httpServletRequest.setAttribute("registroAtendimento", ra); return retorno; } private OrdemServico pesquisarOrdemServico(Integer id) { Fachada fachada = Fachada.getInstancia(); OrdemServico retorno = fachada.consultarDadosOrdemServico(id); if (retorno == null) { throw new ActionServletException("atencao.naocadastrado", null, "Ordem de Servi�o"); } return retorno; } /** * Consulta a Ordem Servi�o Unidade pelo id do OS e Tipo (1=ABRIR/REGISTRAR * e 3-ENCERRAR) * * @author S�vio luiz * @date 18/09/2006 */ private OrdemServicoUnidade consultarOrdemServicoUnidade(Integer idOS, Integer idAtendimentoTipo) { OrdemServicoUnidade retorno = null; Fachada fachada = Fachada.getInstancia(); Collection colecaoOrdemServicoUnidade = null; FiltroOrdemServicoUnidade filtroOrdemServicoUnidade = new FiltroOrdemServicoUnidade(); filtroOrdemServicoUnidade.adicionarParametro(new ParametroSimples( FiltroOrdemServicoUnidade.ORDEM_SERVICO_ID, idOS)); filtroOrdemServicoUnidade.adicionarParametro(new ParametroSimples( FiltroOrdemServicoUnidade.ATENDIMENTO_RELACAO_TIPO_ID, idAtendimentoTipo)); filtroOrdemServicoUnidade .adicionarCaminhoParaCarregamentoEntidade("unidadeOrganizacional"); // filtroOrdemServicoUnidade // .adicionarCaminhoParaCarregamentoEntidade("unidadeOrganizacional"); filtroOrdemServicoUnidade .adicionarCaminhoParaCarregamentoEntidade("usuario"); // filtroOrdemServicoUnidade // .adicionarCaminhoParaCarregamentoEntidade("usuario.nomeUsuario"); colecaoOrdemServicoUnidade = fachada.pesquisar( filtroOrdemServicoUnidade, OrdemServicoUnidade.class.getName()); if (colecaoOrdemServicoUnidade != null && !colecaoOrdemServicoUnidade.isEmpty()) { retorno = (OrdemServicoUnidade) Util .retonarObjetoDeColecao(colecaoOrdemServicoUnidade); } return retorno; } }