public ActionForward execute(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {

    System.out.println("Dentro de la Carga Mesa de Partes");
    String ls_oficina = null;
    String ls_persona = null;
    String ls_naturaleza = null;
    String ls_estado = null;
    String ls_fecha_inicio = null;
    String ls_fecha_fin = null;
    String ls_filtro, ls_valorfiltro, ls_pagina = null;
    String ls_msg_error = null;
    String ls_operacion = null;
    String ls_tipodoc = null;
    String ls_seleccion_nat = null;
    String ls_numero_registro = null;
    String ls_numero_expediente = null;
    int li_retorno = 0;

    try {

      HttpSession tempSession = request.getSession(false);

      if (tempSession == null) {

        return (mapping.findForward("expiracion"));
      }

      Connection cnx = getConnection(request, "principal");
      System.out.println("El cnx  ==> " + cnx);

      HttpSession session = request.getSession(true);

      /*Verificar si la sesion se perdio*/

      ls_oficina = String.valueOf(session.getAttribute("codigo_oficina"));
      ls_persona = String.valueOf(session.getAttribute("rs_persona"));
      ls_seleccion_nat = String.valueOf(session.getAttribute("naturaleza_doc"));

      ls_naturaleza = request.getParameter("naturaleza");
      System.out.println("ls_naturaleza" + ls_naturaleza);
      ls_estado = request.getParameter("estado");
      System.out.println("ls_estado" + ls_estado);
      ls_fecha_inicio = request.getParameter("fecha_ini");
      System.out.println("ls_fecha_inicio" + ls_fecha_inicio);
      ls_fecha_fin = request.getParameter("fecha_fin");
      System.out.println("ls_fecha_fin" + ls_fecha_fin);
      ls_filtro = request.getParameter("filtro");
      System.out.println("ls_filtro" + ls_filtro);
      ls_operacion = request.getParameter("operacion");
      System.out.println("ls_operacion" + ls_operacion);
      ls_tipodoc = request.getParameter("tipodoc");
      System.out.println("ls_tipodoc" + ls_tipodoc);
      ls_valorfiltro = request.getParameter("valorfiltro");
      System.out.println("ls_valorfiltro" + ls_valorfiltro);
      ls_numero_registro = request.getParameter("numero_registro");
      System.out.println("ls_numero_registro" + ls_numero_registro);
      ls_numero_expediente = request.getParameter("numero_expediente");
      System.out.println("ls_numero_expediente" + ls_numero_expediente);

      IUsuarioDAO daoIUsuarioDAO = new SqlUsuarioDAO();

      Collection rs_mesa_partes = new ArrayList();

      session.removeAttribute("rs_mesa_partes");

      rs_mesa_partes =
          daoIUsuarioDAO.mesa_partes_normal(
              cnx,
              ls_oficina,
              ls_fecha_inicio,
              ls_fecha_fin,
              ls_naturaleza,
              ls_estado,
              ls_tipodoc,
              ls_filtro,
              ls_valorfiltro,
              ls_numero_registro,
              ls_numero_expediente);

      System.out.println("El rs_mesa_partes" + rs_mesa_partes);
      // session.removeAttribute("rs_mesa_partes");
      session.setAttribute("rs_mesa_partes", rs_mesa_partes);
      session.setAttribute("oficina", ls_oficina);
      session.setAttribute("persona", ls_persona);
      session.setAttribute("naturaleza", ls_naturaleza);
      session.setAttribute("estado", ls_estado);
      session.setAttribute("fecha_inicio", ls_fecha_inicio);
      session.setAttribute("fecha_fin", ls_fecha_fin);

      System.out.println("operacion" + ls_operacion);
      if (ls_operacion == null) {
        ls_operacion = "";
      }
      if (ls_operacion.equals("buscar")) {
        System.out.println("entro a buscar en la lista de documentos");

        return (mapping.findForward("listadocumentos"));

      } else {
        System.out.println("entro a la pagina mesa de partes");
        return (mapping.findForward("mesapartes"));
      }

    } catch (Exception e) {
      e.printStackTrace();
    }
    return (mapping.findForward("error"));
  }
  public ActionForward execute(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {

    HttpSession session = request.getSession(true);
    Connection cnx = getConnection(request, "principal");
    System.out.println("El cnx............" + cnx);

    IAdministradorDAO daoIAdministradorDAO = new SqlAdministradorDAO();
    BPersonal detallePersonal = new BPersonal();
    BUsuario detalleUsuario = new BUsuario();

    FFormMantPersonal oForm = (FFormMantPersonal) form;
    String tipo = oForm.getTipo() == null ? "init" : oForm.getTipo().trim();
    System.out.println("El tipo 1 " + tipo);
    tipo = tipo.equals("") ? "init" : tipo;
    System.out.println("El tipo 2 " + tipo);

    String codigo_personal;
    String nombreapellido_usuario;
    String c_usuario;
    String cargo_personal;
    String oficina;
    String usuarioper;
    String es_responsable;
    int tipo_firma;
    String nombre_imagen = "";
    String nombre_pfx = "";
    String ruta_pfx = "";
    String ruta_imagen = "";

    String validacion = "";

    String codigoUsuarioBuscar;

    session.removeAttribute("c_usuario_p");

    BUsuario usuario_sistema = (BUsuario) session.getAttribute("usuario_sistema");
    codigo_personal = ((FFormMantPersonal) form).getCodigo_personal();
    nombreapellido_usuario = ((FFormMantPersonal) form).getNombreapellido_usuario();
    c_usuario = ((FFormMantPersonal) form).getC_usuario();
    cargo_personal = ((FFormMantPersonal) form).getCargo_personal();
    oficina = ((FFormMantPersonal) form).getOficina();
    es_responsable = ((FFormMantPersonal) form).getEs_responsable();
    tipo_firma = Integer.valueOf(((FFormMantPersonal) form).getTipo_firma());

    validacion = ((FFormMantPersonal) form).getValidacion();
    // usuarioper = ((FFormMantPersonal)form).getUsuarioper();
    codigoUsuarioBuscar = ((FFormMantPersonal) form).getCodigoUsuarioBuscar();

    System.out.println("codigo_personal... " + codigo_personal);
    System.out.println("nombreapellido_usuario... " + nombreapellido_usuario);
    System.out.println("c_usuario... " + c_usuario);
    System.out.println("cargo_personal... " + cargo_personal);
    System.out.println("oficina... " + oficina);
    System.out.println("es_responsable... " + es_responsable);
    System.out.println("tipo firma ...." + tipo_firma);

    System.out.println("validacion ...." + validacion);
    System.out.println("codigoUsuarioBuscar " + codigoUsuarioBuscar);

    Collection tipo_sede =
        daoIAdministradorDAO.of_lista_tipo_sede(cnx, Integer.parseInt(usuario_sistema.getSede()));
    session.setAttribute("tipo_sede", tipo_sede);

    try {

      if (tipo.equals("buscar")) {
        System.out.println("buscar");
        Collection listapersonal =
            daoIAdministradorDAO.of_lista_busca_personal(
                cnx, codigoUsuarioBuscar, Integer.parseInt(usuario_sistema.getSede()));
        session.setAttribute("listapersonal", listapersonal);
        Collection listaoficinas =
            daoIAdministradorDAO.of_lista_oficinas(
                cnx, Integer.parseInt(usuario_sistema.getSede()));
        session.setAttribute("listaoficinas", listaoficinas);
        session.setAttribute("operacion", tipo);
      } else if (tipo.equals("personal")) {

        System.out.println("Si tipo es init" + tipo);
        System.out.println("Listar personal.....");

        Collection listapersonal =
            daoIAdministradorDAO.of_lista_personal(
                cnx, Integer.parseInt(usuario_sistema.getSede()));
        Collection listaoficinas =
            daoIAdministradorDAO.of_lista_oficinas(
                cnx, Integer.parseInt(usuario_sistema.getSede()));
        Collection listausuarios =
            daoIAdministradorDAO.of_lista_usuarios(
                cnx, Integer.parseInt(usuario_sistema.getSede()));
        Collection listacargos = daoIAdministradorDAO.of_lista_cargos(cnx);

        session.setAttribute("operacion", tipo);
        session.setAttribute("listapersonal", listapersonal);
        session.setAttribute("listaoficinas", listaoficinas);
        session.setAttribute("listausuarios", listausuarios);
        session.setAttribute("listacargos", listacargos);

      } else if (tipo.equalsIgnoreCase("nuevo")) {
        // li_operacion = 2;
        try {

          System.out.println("Ingresando Personal ..........");

          cargo_personal = cargo_personal.toUpperCase();

          System.out.println("cargo_personal.UPERCASE.. " + cargo_personal);

          daoIAdministradorDAO.PersonalIng(
              cnx,
              nombreapellido_usuario,
              c_usuario,
              cargo_personal,
              oficina,
              es_responsable,
              validacion);

          Collection listaoficinas =
              daoIAdministradorDAO.of_lista_oficinas(
                  cnx, Integer.parseInt(usuario_sistema.getSede()));
          Collection listausuarios =
              daoIAdministradorDAO.of_lista_usuarios(
                  cnx, Integer.parseInt(usuario_sistema.getSede()));
          Collection listapersonal =
              daoIAdministradorDAO.of_lista_personal(
                  cnx, Integer.parseInt(usuario_sistema.getSede()));
          Collection listacargos = daoIAdministradorDAO.of_lista_cargos(cnx);

          session.setAttribute("operacion", tipo);
          session.setAttribute("listapersonal", listapersonal);
          session.setAttribute("listaoficinas", listaoficinas);
          session.setAttribute("listausuarios", listausuarios);
          session.setAttribute("listacargos", listacargos);

        } catch (SQLException e) {
          e.printStackTrace();
          closeConnection(cnx);
          // return mapping.getInputForward();
        }

        // session.removeAttribute("operacioncs");

      } else if (tipo.equalsIgnoreCase("editar")) {
        try {

          System.out.println("Modificacion de... Personal ..........");
          cargo_personal = cargo_personal.toUpperCase();
          System.out.println("cargo_personal.UPERCASE.. " + cargo_personal);

          detalleUsuario = daoIAdministradorDAO.UsuarioCons(cnx, c_usuario);

          String nombres = detalleUsuario.getNombres();
          String apellidos = detalleUsuario.getApellidos();
          boolean existeFirma = false;
          boolean existePfx = false;

          nombreapellido_usuario = nombres + " " + apellidos;

          FormFile myFile = (FormFile) session.getAttribute("vaRmyFile");
          FormFile myFilePfx = (FormFile) session.getAttribute("vaRmyFilePx");

          if (myFile != null && myFile.getFileName().length() > 0) {
            log.info("el contentType FILE UPLOAd es..");
            log.info("el fileName es..");
            String nombre_final_imagen = c_usuario + ".jpg";
            String rutaDestino_imagen =
                Constantes.CarpetaArchivosDesarrolloSellos.getNombre() + nombre_final_imagen;

            File f = new File(rutaDestino_imagen);

            if (makeSureDirectoryExists(parent(f))) {
              // Se graba en la ruta del archivo;
              FileOutputStream out = new FileOutputStream(f);
              System.out.println("El out es :" + out);
              out.write(myFile.getFileData());
              System.out.println("El myFile.getFileDat es :");
              out.flush();
              out.close();
            }
            existeFirma = true;
            nombre_imagen = nombre_final_imagen;
          }
          if (myFilePfx != null && myFilePfx.getFileName().length() > 0) {
            log.info("el contentType FILE UPLOAd es..");
            log.info("el fileName es..");

            String nombre_temporal = myFilePfx.getFileName();

            int inicio = nombre_temporal.indexOf(".");
            nombre_temporal = nombre_temporal.substring(inicio, nombre_temporal.length());
            String nombre_final_pfx = c_usuario + nombre_temporal;

            log.info("Nombre-certificado " + nombre_final_pfx);
            String rutaDestino_pfx =
                Constantes.CarpetaArchivosDesarrolloPfx.getNombre() + nombre_final_pfx;

            File f = new File(rutaDestino_pfx);

            if (makeSureDirectoryExists(parent(f))) {
              // Se graba en la ruta del archivo;
              FileOutputStream out = new FileOutputStream(f);
              System.out.println("El out es :" + out);
              out.write(myFilePfx.getFileData());
              System.out.println("El myFile.getFileDat es :");
              out.flush();
              out.close();
            }
            existePfx = true;
            nombre_pfx = nombre_final_pfx;
          }
          log.info("1->" + existeFirma);
          log.info("2-> " + existePfx);
          log.info("daoIAdministradorDAO.PersonalMod");

          log.info(
              "daoIAdministradorDAO.PersonalMod(cnx,"
                  + codigo_personal
                  + ","
                  + nombreapellido_usuario
                  + ","
                  + c_usuario
                  + ","
                  + cargo_personal
                  + ","
                  + oficina
                  + ","
                  + es_responsable
                  + ","
                  + existeFirma
                  + ","
                  + existePfx
                  + ","
                  + nombre_imagen
                  + ","
                  + Constantes.CarpetaArchivosDesarrolloSellos.getNombre()
                  + ","
                  + nombre_pfx
                  + ","
                  + Constantes.CarpetaArchivosDesarrolloPfx.getNombre()
                  + ","
                  + tipo_firma
                  + ");");
          daoIAdministradorDAO.PersonalMod(
              cnx,
              codigo_personal,
              nombreapellido_usuario,
              c_usuario,
              cargo_personal,
              oficina,
              es_responsable,
              existeFirma,
              existePfx,
              nombre_imagen,
              Constantes.CarpetaArchivosDesarrolloSellos.getNombre(),
              nombre_pfx,
              Constantes.CarpetaArchivosDesarrolloPfx.getNombre(),
              tipo_firma,
              validacion);

          detallePersonal = daoIAdministradorDAO.PersonalCons(cnx, codigo_personal);
          log.info("---->sede " + detallePersonal.getSede());

          Collection listaoficinas =
              daoIAdministradorDAO.of_lista_oficinas_x_sede(usuario_sistema.getSede());
          // Collection listaoficinas =
          // daoIAdministradorDAO.of_lista_oficinas_x_sede(detallePersonal.getSede());

          Collection listausuarios =
              daoIAdministradorDAO.of_lista_usuarios(
                  cnx, Integer.parseInt(usuario_sistema.getSede()));
          Collection listapersonal =
              daoIAdministradorDAO.of_lista_personal(
                  cnx, Integer.parseInt(usuario_sistema.getSede()));

          Collection listanombresapell = daoIAdministradorDAO.of_lista_usuarios(c_usuario);
          Collection listacargos = daoIAdministradorDAO.of_lista_cargos(cnx);

          session.setAttribute("operacion", tipo);
          session.setAttribute("listapersonal", listapersonal);
          session.setAttribute("listaoficinas", listaoficinas);

          session.setAttribute("listausuarios", listausuarios);
          session.setAttribute("listanombresapell", listanombresapell);
          session.setAttribute("listacargos", listacargos);
          session.setAttribute("detallePersonal", detallePersonal);

          session.removeAttribute("vaRmyFile");
          session.removeAttribute("vaRmyFilePfx");
          session.setAttribute("c_usuario_p", c_usuario);
          /*session.setAttribute("oficina",oficina);
           */

        } catch (SQLException e) {
          rollbackConnection(cnx);
          e.printStackTrace();
          session.setAttribute("MsjeError", "Error al actualizar al empleado: " + e.getMessage());
          // closeConnection(cnx);
          // return mapping.getInputForward();

        }

        return mapping.getInputForward();

      } else if (tipo.equalsIgnoreCase("eliminar")) {

        try {

          System.out.println("Eliminar  Usuario..........");

          daoIAdministradorDAO.PersonalElim(cnx, codigo_personal);

          Collection listaoficinas =
              daoIAdministradorDAO.of_lista_oficinas(
                  cnx, Integer.parseInt(usuario_sistema.getSede()));
          Collection listausuarios =
              daoIAdministradorDAO.of_lista_usuarios(
                  cnx, Integer.parseInt(usuario_sistema.getSede()));
          Collection listapersonal =
              daoIAdministradorDAO.of_lista_personal(
                  cnx, Integer.parseInt(usuario_sistema.getSede()));

          Collection listacargos = daoIAdministradorDAO.of_lista_cargos(cnx);

          /*System.out.println("listapersonal" + listapersonal);
          System.out.println("listaoficinas" + listaoficinas);
          System.out.println("listausuarios" + listausuarios);
          System.out.println("listacargos" + listacargos);

          System.out.println("listapersonal" + listapersonal);*/
          session.setAttribute("operacion", tipo);
          session.setAttribute("listapersonal", listapersonal);
          session.setAttribute("listausuarios", listausuarios);
          session.setAttribute("listaoficinas", listaoficinas);
          session.setAttribute("listacargos", listacargos);

        } catch (SQLException e) {
          e.printStackTrace();
          closeConnection(cnx);
          // return mapping.getInputForward();

        }
      }

      closeConnection(cnx);
      oForm.reset(mapping, request);
      oForm.setTipo("nuevo");
      return (mapping.findForward("exito"));

    } catch (Exception e) {
      e.printStackTrace();
    }
    return (mapping.findForward("error"));
  }