package br.com.centralit.citcorpore.ajaxForms; import java.util.ArrayList; import java.util.Collection; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citcorpore.bean.AutoCompleteDTO; import br.com.centralit.citcorpore.bean.EmpregadoDTO; import br.com.centralit.citcorpore.negocio.EmpregadoService; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.UtilI18N; public class AutoCompleteResponsavel extends AbstractAutoComplete { @Override public Class<EmpregadoDTO> getBeanClass() { return EmpregadoDTO.class; } @Override public void load(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws Exception { if (request.getParameter("query") != null) { final String consulta = new String(request.getParameter("query").getBytes("ISO-8859-1"), "UTF-8"); // Corrige o enconding do par�metro desejado. final String idContratoStr = request.getParameter("contrato"); Integer idContrato = null; if (idContratoStr != null && !idContratoStr.equals("-1") && !idContratoStr.equals("")) { idContrato = Integer.parseInt(idContratoStr); } final Collection<EmpregadoDTO> listEmpregadoDto = new ArrayList<>(); final String idUnidadeStr = request.getParameter("unidade"); Integer idUnidade = null; if (idUnidadeStr != null && !idUnidadeStr.equals("-1") && !idUnidadeStr.equals("")) { idUnidade = Integer.parseInt(idUnidadeStr); } /* Criado para permitir filtrar as solicita��es que n�o possuem respons�vel. valdoilo.damasceno */ final EmpregadoDTO empregadoSemResponsavel = new EmpregadoDTO(); empregadoSemResponsavel.setNome(UtilI18N.internacionaliza(request, "citsmart.comum.semresponsavel")); empregadoSemResponsavel.setIdEmpregado(-1); listEmpregadoDto.add(empregadoSemResponsavel); if (idContrato != null) { listEmpregadoDto.addAll(getEmpregadoService().findSolicitanteByNomeAndIdContratoAndIdUnidade(consulta, idContrato, idUnidade)); } final AutoCompleteDTO autoCompleteDTO = new AutoCompleteDTO(); final List<String> listNome = new ArrayList<>(); final List<Integer> listIdEmpregado = new ArrayList<>(); /* Criado para permitir filtrar as solicita��es que n�o possuem respons�vel. valdoilo.damasceno */ listNome.add(UtilI18N.internacionaliza(request, "citsmart.comum.semresponsavel")); listIdEmpregado.add(-1); if (listEmpregadoDto != null && !listEmpregadoDto.isEmpty()) { for (final EmpregadoDTO empregadoDto : listEmpregadoDto) { if (empregadoDto.getIdEmpregado() != null) { listNome.add(empregadoDto.getNome()); listIdEmpregado.add(empregadoDto.getIdEmpregado()); } } } autoCompleteDTO.setQuery(consulta); autoCompleteDTO.setSuggestions(listNome); autoCompleteDTO.setData(listIdEmpregado); String json = ""; if (request.getParameter("colection") != null) { json = getGSON().toJson(listEmpregadoDto); } else { json = getGSON().toJson(autoCompleteDTO); } request.setAttribute("json_response", json); } } private EmpregadoService empregadoService; private EmpregadoService getEmpregadoService() throws Exception { if (empregadoService == null) { empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, null); } return empregadoService; } }