@Override
  @RequestMapping(method = RequestMethod.POST, value = "/update")
  @ResponseBody
  public ResponseBodyWrapper update(@RequestBody EstruturaOrganizacional estruturaOrganizacional) {

    ResponseBodyWrapper responseBody =
        new ResponseBodyWrapper(
            estruturaOrganizacionalService.save(estruturaOrganizacional), getEditView());

    return responseBody;
  }
  /**
   * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
   *
   * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> Método
   * responsável por buscar todas as estruturas organizacionais nivel 0 (zero)
   *
   * @author renato.jesus
   * @return
   */
  @RequestMapping(value = "/findParents", method = RequestMethod.GET, produces = "application/json")
  @ResponseBody
  public ResponseBodyWrapper findParents(
      @RequestParam(value = "idOrganizacao") Long idOrganizacao) {

    ResultResponseVH<List<EstruturaOrganizacional>> resultResponseVH =
        new ResultResponseVH<List<EstruturaOrganizacional>>(
            estruturaOrganizacionalService.findParents(idOrganizacao));

    ResponseBodyWrapper responseBody = new ResponseBodyWrapper(resultResponseVH, getEditView());

    return responseBody;
  }
  /**
   * Método responsável por listar estruturas organizacionais na tree por nome
   *
   * @author rogerio.cassimiro
   * @param nome
   * @return responseBody
   */
  @RequestMapping(
      value = "/listarEstruturasPorNome",
      method = RequestMethod.GET,
      produces = "application/json")
  @ResponseBody
  public ResponseBodyWrapper listarEstruturasPorNome(@RequestParam(value = "nome") String nome) {

    ResultResponseVH<List<EstruturaOrganizacional>> resultResponseVH =
        new ResultResponseVH<List<EstruturaOrganizacional>>(
            estruturaOrganizacionalService.listarEstruturasOrganizacionaisPorNomeTree(nome));

    ResponseBodyWrapper responseBody = new ResponseBodyWrapper(resultResponseVH, getEditView());

    return responseBody;
  }
  /**
   * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
   *
   * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> Método
   * responsável por listar estruturas organizacionais por nome usando View simples
   *
   * @author rogerio.cassimiro
   * @param nome
   * @return List<EstruturaOrganizacional>
   */
  @RequestMapping(
      value = "/listarEstruturasOrganizacionaisBuscaSimples",
      method = RequestMethod.GET,
      produces = "application/json")
  @ResponseBody
  public ResponseBodyWrapper listarEstruturasOrganizacionaisBuscaSimples(
      @RequestParam(value = "nome") String nome) {

    ResultResponseVH<List<EstruturaOrganizacional>> resultResponseVH =
        new ResultResponseVH<List<EstruturaOrganizacional>>(
            estruturaOrganizacionalService.listarEstruturasOrganizacionais(nome));

    ResponseBodyWrapper responseBody =
        new ResponseBodyWrapper(
            resultResponseVH, Views.EstruturaOrganizacionalAutoCompleteView.class);

    return responseBody;
  }
  /**
   * Método responsável por listar estruturas organizacionais da tree por pelo id da estrutura
   * selecionada
   *
   * @author rogerio.cassimiro
   * @param nome
   * @param idOrganizacao
   * @param exibirEstruturasAtivas
   * @return responseBody
   */
  @RequestMapping(
      value = "/listarEstruturasOrganizacionaisDaTree",
      method = RequestMethod.GET,
      produces = "application/json")
  @ResponseBody
  public ResponseBodyWrapper listarEstruturasOrganizacionaisDaTree(
      @RequestParam(value = "idOrganizacao") Long idOrganizacao,
      @RequestParam(value = "nome") String nome,
      @RequestParam(value = "exibirEstruturasAtivas") Boolean exibirEstruturasAtivas) {

    ResultResponseVH<List<EstruturaOrganizacional>> resultResponseVH =
        new ResultResponseVH<List<EstruturaOrganizacional>>(
            estruturaOrganizacionalService.listarEstruturasOrganizacionaisDaTree(
                idOrganizacao, nome, exibirEstruturasAtivas));

    ResponseBodyWrapper responseBody = new ResponseBodyWrapper(resultResponseVH, getEditView());

    return responseBody;
  }
  /**
   * Método responsável por listar <code>EstruturaOrganizacional</code> que são loja por nome e uma
   * <code>Organizacao</code>
   *
   * @author iago
   * @param nome
   * @param idOrganizacao
   * @return <code>ResponseBodyWrapper</code>
   */
  @RequestMapping(
      value = "/listarEstruturasOrganizacionaisLojaPorNomeEOrganizacao",
      method = RequestMethod.GET,
      produces = "application/json")
  @ResponseBody
  public ResponseBodyWrapper listarEstruturasOrganizacionaisLojaPorNomeEOrganizacao(
      @RequestParam(value = "nome") String nome,
      @RequestParam(value = "idOrganizacao") String idOrganizacao) {

    ResultResponseVH<List<EstruturaOrganizacional>> resultResponseVH =
        new ResultResponseVH<List<EstruturaOrganizacional>>(
            estruturaOrganizacionalService.listarEstruturasOrganizacionaisLojaPorNomeEOrganizacao(
                nome, Long.parseLong(idOrganizacao)));

    ResponseBodyWrapper responseBody =
        new ResponseBodyWrapper(
            resultResponseVH, Views.EstruturaOrganizacionalAutoCompleteSimplesView.class);

    return responseBody;
  }