package br.com.centralit.citcorpore.ajaxForms; import java.util.ArrayList; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import br.com.centralit.bpm.util.Enumerados; import br.com.centralit.citajax.html.AjaxFormAction; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citajax.html.HTMLForm; import br.com.centralit.citajax.html.HTMLSelect; import br.com.centralit.citcorpore.bean.EmpregadoDTO; import br.com.centralit.citcorpore.bean.GrupoDTO; import br.com.centralit.citcorpore.bean.GrupoEmpregadoDTO; import br.com.centralit.citcorpore.bean.RequisicaoLiberacaoDTO; import br.com.centralit.citcorpore.bean.TipoDemandaServicoDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.mail.MensagemEmail; import br.com.centralit.citcorpore.negocio.EmpregadoService; import br.com.centralit.citcorpore.negocio.ExecucaoLiberacaoService; import br.com.centralit.citcorpore.negocio.GrupoEmpregadoService; import br.com.centralit.citcorpore.negocio.GrupoService; import br.com.centralit.citcorpore.negocio.RequisicaoLiberacaoService; import br.com.centralit.citcorpore.negocio.TipoDemandaServicoService; import br.com.centralit.citcorpore.negocio.UsuarioService; import br.com.centralit.citcorpore.util.Enumerados.ParametroSistema; import br.com.centralit.citcorpore.util.ParametroUtil; import br.com.centralit.citcorpore.util.WebUtil; import br.com.citframework.dto.IDto; import br.com.citframework.excecao.LogicException; import br.com.citframework.excecao.ServiceException; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Constantes; import br.com.citframework.util.UtilI18N; public class DelegacaoLiberacao extends AjaxFormAction { private EmpregadoService empregadoService; private RequisicaoLiberacaoService requisicaoLiberacaoService; @Override public Class getBeanClass() { return RequisicaoLiberacaoDTO.class; } private EmpregadoService getEmpregadoService() throws ServiceException, Exception{ if(empregadoService == null){ empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, null); } return empregadoService; } private RequisicaoLiberacaoService getRequisicaoLiberacaoService(HttpServletRequest request) throws ServiceException, Exception{ if(requisicaoLiberacaoService == null){ requisicaoLiberacaoService = (RequisicaoLiberacaoService) ServiceLocator.getInstance().getService(RequisicaoLiberacaoService.class, WebUtil.getUsuarioSistema(request)); } return requisicaoLiberacaoService; } @Override public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { UsuarioDTO usuario = WebUtil.getUsuario(request); if (usuario == null){ document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada")); document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'"); return; } RequisicaoLiberacaoDTO requisicaoLiberacao = (RequisicaoLiberacaoDTO)document.getBean(); if (requisicaoLiberacao.getIdTarefa() == null) return; HTMLForm form = document.getForm("form"); form.clear(); HTMLSelect idGrupoDestino = (HTMLSelect) document.getSelectById("idGrupoDestino"); idGrupoDestino.removeAllOptions(); idGrupoDestino.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione")); GrupoService grupoSegurancaService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null); Collection colGrupos = grupoSegurancaService.listGruposServiceDesk(); if (colGrupos != null) idGrupoDestino.addOptions(colGrupos, "idGrupo", "nome", null); Integer idTarefa = requisicaoLiberacao.getIdTarefa(); request.setAttribute("nomeTarefa", requisicaoLiberacao.getNomeTarefa()); RequisicaoLiberacaoService requisicaoLiberacaoService = (RequisicaoLiberacaoService) ServiceLocator.getInstance().getService(RequisicaoLiberacaoService.class, WebUtil.getUsuarioSistema(request)); requisicaoLiberacao = requisicaoLiberacaoService.restoreAll(requisicaoLiberacao.getIdRequisicaoLiberacao()); request.setAttribute("dataHoraSolicitacao", requisicaoLiberacao.getDataHoraSolicitacaoStr()); requisicaoLiberacao.setIdTarefa(idTarefa); requisicaoLiberacao.setAcaoFluxo(Enumerados.ACAO_DELEGAR); carregaUsuarios2(document, requisicaoLiberacao, request); form.setValues(requisicaoLiberacao); } public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { UsuarioDTO usuario = WebUtil.getUsuario(request); if (usuario == null){ document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada")); document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'"); return; } RequisicaoLiberacaoDTO requisicaoLiberacao = (RequisicaoLiberacaoDTO)document.getBean(); if (requisicaoLiberacao.getIdTarefa() == null || (requisicaoLiberacao.getIdUsuarioDestino() == null && requisicaoLiberacao.getIdGrupoDestino() == null)) return; String usuarioDestino = null; String grupoDestino = null; if (requisicaoLiberacao.getIdUsuarioDestino() != null) { UsuarioService usuarioService = (UsuarioService) ServiceLocator.getInstance().getService(UsuarioService.class, null); UsuarioDTO usuarioDestinoDto = new UsuarioDTO(); usuarioDestinoDto.setIdUsuario(requisicaoLiberacao.getIdUsuarioDestino()); usuarioDestinoDto = (UsuarioDTO) usuarioService.restore(usuarioDestinoDto); if (usuarioDestinoDto != null) usuarioDestino = usuarioDestinoDto.getLogin(); } GrupoDTO grupoDestinoDto = null; if (requisicaoLiberacao.getIdGrupoDestino() != null) { GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null); grupoDestinoDto = new GrupoDTO(); grupoDestinoDto.setIdGrupo(requisicaoLiberacao.getIdGrupoDestino()); grupoDestinoDto = (GrupoDTO) grupoService.restore(grupoDestinoDto); if (grupoDestinoDto != null) grupoDestino = grupoDestinoDto.getSigla(); } try{ String enviarNotificacao = ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.NOTIFICAR_GRUPO_RECEPCAO_SOLICITACAO , "N"); //if(enviarNotificacao.equalsIgnoreCase("S")){ //enviaEmailGrupo(request ,Integer.parseInt(ParametroUtil.getValor(ParametroSistema.ID_MODELO_EMAIL_GRUPO_DESTINO, null)), grupoDestinoDto, requisicaoLiberacao); //} }catch(NumberFormatException e){ System.out.println("N�o h� modelo de e-mail setado nos par�metros."); } ExecucaoLiberacaoService execucaoFluxoService = (ExecucaoLiberacaoService) ServiceLocator.getInstance().getService(ExecucaoLiberacaoService.class, null); execucaoFluxoService.delegaTarefa(usuario.getLogin(), requisicaoLiberacao.getIdTarefa(), usuarioDestino, grupoDestino); document.executeScript("fechar();"); } /** * @param idModeloEmail * @throws Exception */ public void enviaEmailGrupo(HttpServletRequest request, Integer idModeloEmail, GrupoDTO grupoDestino, RequisicaoLiberacaoDTO requisicaoLiberacaoDto) throws Exception { if (grupoDestino == null){ return; } if (idModeloEmail == null){ return; } /*String enviaEmail = ParametroUtil.getValor(ParametroSistema.EnviaEmailFluxo, "N"); if (!enviaEmail.equalsIgnoreCase("S")){ return; }*/ ArrayList<EmpregadoDTO> empregados = (ArrayList<EmpregadoDTO>) getEmpregadoService().listEmpregadosByIdGrupo(grupoDestino.getIdGrupo()); String remetente = ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.RemetenteNotificacoesSolicitacao, null); if (remetente == null) throw new LogicException(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada")); requisicaoLiberacaoDto = (RequisicaoLiberacaoDTO) getRequisicaoLiberacaoService(request).restore(requisicaoLiberacaoDto); TipoDemandaServicoService tipoDemandaServicoService = (TipoDemandaServicoService) ServiceLocator.getInstance().getService(TipoDemandaServicoService.class, WebUtil.getUsuarioSistema(request)); TipoDemandaServicoDTO tipoDemandaServicoDTO = new TipoDemandaServicoDTO(); tipoDemandaServicoDTO.setIdTipoDemandaServico(requisicaoLiberacaoDto.getIdTipoDemandaServico()); tipoDemandaServicoDTO = (TipoDemandaServicoDTO) tipoDemandaServicoService.restore(tipoDemandaServicoDTO); requisicaoLiberacaoDto.setDemanda(tipoDemandaServicoDTO.getNomeTipoDemandaServico()); MensagemEmail mensagem = new MensagemEmail(idModeloEmail, new IDto[] {requisicaoLiberacaoDto}); try { EmpregadoDTO aux = null; for(EmpregadoDTO e : empregados){ aux = (EmpregadoDTO) getEmpregadoService().restore(e); if(aux != null && aux.getEmail() != null && !aux.getEmail().trim().equalsIgnoreCase("") ){ mensagem.envia(aux.getEmail(), "", remetente); } } } catch (Exception e) { } } public void carregaUsuarios(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { RequisicaoLiberacaoDTO requisicaoLiberacao = (RequisicaoLiberacaoDTO)document.getBean(); carregaUsuarios2(document, requisicaoLiberacao, request); } /*ESTAVA DUPLICANDO OS DADOS*/ /*public void carregaUsuarios2(DocumentHTML document, RequisicaoLiberacaoDTO requisicaoLiberacao , HttpServletRequest request) throws Exception { HTMLSelect idUsuarioDestino = (HTMLSelect) document.getSelectById("idUsuarioDestino"); idUsuarioDestino.removeAllOptions(); Collection<GrupoEmpregadoDTO> colGrupos = null; GrupoEmpregadoService grupoEmpregadoService = (GrupoEmpregadoService) ServiceLocator.getInstance().getService(GrupoEmpregadoService.class, null); if (requisicaoLiberacao.getIdGrupoDestino() == null) { GrupoService grupoSegurancaService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null); Collection<GrupoDTO> col = grupoSegurancaService.listGruposServiceDesk(); if (col != null) { colGrupos = new ArrayList(); for (GrupoDTO grupoSegurancaDto : col) { Collection<GrupoEmpregadoDTO> colAux = grupoEmpregadoService.findByIdGrupo(grupoSegurancaDto.getIdGrupo()); if (colAux != null) colGrupos.addAll(colAux); } } }else colGrupos = grupoEmpregadoService.findByIdGrupo(requisicaoLiberacao.getIdGrupoDestino()); if (colGrupos != null) { idUsuarioDestino.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione")); UsuarioService usuarioService = (UsuarioService) ServiceLocator.getInstance().getService(UsuarioService.class, null); for (GrupoEmpregadoDTO grupoEmpregadoDto : colGrupos) { UsuarioDTO usuarioDto = usuarioService.restoreByIdEmpregado(grupoEmpregadoDto.getIdEmpregado()); if (usuarioDto != null) idUsuarioDestino.addOption(""+usuarioDto.getIdUsuario(), usuarioDto.getLogin() + " - " + usuarioDto.getNomeUsuario()); } } }*/ public void carregaUsuarios2(DocumentHTML document, RequisicaoLiberacaoDTO requisicaoLiberacao , HttpServletRequest request) throws Exception { HTMLSelect idUsuarioDestino = (HTMLSelect) document.getSelectById("idUsuarioDestino"); idUsuarioDestino.removeAllOptions(); Collection<GrupoEmpregadoDTO> colGrupos = null; GrupoEmpregadoService grupoEmpregadoService = (GrupoEmpregadoService) ServiceLocator.getInstance().getService(GrupoEmpregadoService.class, null); if (requisicaoLiberacao.getIdGrupoDestino() == null) { colGrupos = grupoEmpregadoService.findUsariosGrupo(); }else colGrupos = grupoEmpregadoService.findByIdGrupo(requisicaoLiberacao.getIdGrupoDestino()); if (colGrupos != null) { idUsuarioDestino.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione")); UsuarioService usuarioService = (UsuarioService) ServiceLocator.getInstance().getService(UsuarioService.class, null); for (GrupoEmpregadoDTO grupoEmpregadoDto : colGrupos) { UsuarioDTO usuarioDto = usuarioService.restoreByIdEmpregado(grupoEmpregadoDto.getIdEmpregado()); if (usuarioDto != null){ idUsuarioDestino.addOption(""+usuarioDto.getIdUsuario(), usuarioDto.getLogin() + " - " + usuarioDto.getNomeUsuario()); } } } } }