private DocumentoProyecto getDocumentoProyecto( Long proy_proy, Map<String, Object> mapRequestParameters, Usuario usuario, String observacionCreacion) { DocumentoProyecto documento = null; try { DocumentoProyectoServicio docServicio = DocumentoProyectoServicio.getInstance(); Long idDocumento = docServicio.getSiguienteID(); Long version = docServicio.getSiguienteVersion(proy_proy); FileItem fileItem = (FileItem) mapRequestParameters.get("DocumentoProyecto"); String rutabase = DocumentoProyectoServicio.getInstance().getRutaBaseDeArchivos(); if (fileItem != null) { String nombreReal = FilenameUtils.getBaseName(fileItem.getName()); String extension = FilenameUtils.getExtension(fileItem.getName()); String nombreEnServidor = DocumentoProyectoServicio.getInstance() .construirNombreDeArchivo(proy_proy, idDocumento, version); String ruta = ServletUtils.copyFileItem(rutabase, fileItem, "/" + nombreEnServidor); Long longBytes = fileItem.getSize(); File file = new File(ruta); System.out.println(file.exists()); Long checkSum = FileUtils.checksumCRC32(file); DocumentoProyecto documentoProyecto = new DocumentoProyecto(); documentoProyecto.setDproy_extension(extension); documentoProyecto.setDproy_falm(ServerServicio.getInstance().getSysdate()); documentoProyecto.setDproy_dproy(idDocumento); documentoProyecto.setDproy_proy(proy_proy); documentoProyecto.setDproy_bytes(longBytes.toString()); documentoProyecto.setDproy_nombre(nombreReal); documentoProyecto.setDproy_hash(checkSum.toString()); documentoProyecto.setDproy_url(ruta); documentoProyecto.setDproy_vers(version); documentoProyecto.setDproy_usua(usuario.getUsua_usua()); documentoProyecto.setDproy_observ(observacionCreacion); documento = documentoProyecto; } return documento; } catch (Throwable e) { SimpleLogger.error("Error obteniendo la informacion del documento de proyecto", e); return null; } }
public StringBuffer executeAction(HttpServletRequest request) { StringBuffer xmlPage = new StringBuffer(); ObjectToXML objectToXML = ObjectToXML.getInstance(); // Session de aplicacion SessionAppUsuario sessionAppUsuario = AutenticadorServicio.getInstance().getSessionAppUsuario(request); if (sessionAppUsuario != null) { // Solicitante Estudiante solicitante = EstudianteServicio.getInstance().getEstudiantePorUsuario(sessionAppUsuario.getUsuario()); if (solicitante != null) { Map<String, Object> parameters = getParameters(request, true); Proyecto proyecto = (Proyecto) getParameterToObject("Proyecto", Proyecto.class, null, parameters); String observacion = (String) getParameterToObject("Observacion", String.class, null, parameters); if (proyecto != null) { DocumentoProyecto documento = getDocumentoProyecto( proyecto.getProy_proy(), parameters, sessionAppUsuario.getUsuario(), observacion); if (documento != null) { StringBuffer mensajeError = new StringBuffer(); Boolean sinErrores = DocumentoProyectoServicio.getInstance() .crearNuevaVersionDocumentoTransaccional( documento, sessionAppUsuario.getUsuario(), mensajeError); if (!sinErrores) { this.nextPage = this.nextPage + "?error=1"; sessionAppUsuario.getHttpSession().removeAttribute("var.error"); sessionAppUsuario.getHttpSession().setAttribute("var.error", mensajeError.toString()); sessionAppUsuario.notificarEvento( "Error creando version de proyecto: " + mensajeError.toString()); } else { // TODO Si se crea la preproyecto se debe notiticar a los participantes sessionAppUsuario.getHttpSession().setAttribute("var.crearVersionDocProyecto", true); // Se crea un nuevo mensaje de session sessionAppUsuario.notificarEvento( "Se ha creado correctamente la versión No. " + documento.getDproy_vers() + " de la proyecto No." + documento.getDproy_proy()); } } } } else { this.nextPage = this.nextPage + "?error=1"; sessionAppUsuario.getHttpSession().removeAttribute("var.error"); sessionAppUsuario .getHttpSession() .setAttribute( "var.error", "No se puede crear la version de la proyecto ya que el usuario registrado no es un estudiante"); } } else { xmlPage.append("<error>1</error>"); xmlPage.append( objectToXML.getXML( new String("Usuario invalido. Por favor inicie session correctamente"))); } return xmlPage; }