Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.fitbank.manual;
- import com.fitbank.common.BeanManager;
- import com.fitbank.util.Debug;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import org.apache.commons.io.IOUtils;
- /**
- * Lee la tabla de manuales y actualiza los archivos preparando para armar el war.
- *
- * @author FitBank
- */
- public class GenerateHTMLManual {
- private static String tituloMedio = "<h4>Descripción de los campos empleados en la pantalla</h4>";
- private static String sub = "csubsistema";
- private static String trx = "ctransaccion";
- public GenerateHTMLManual() throws Exception{
- }
- public static void main(String args[]) throws Exception{
- Object base = "/FitBank/alex_manual";
- Object conexion = "jdbc:oracle:thin:@192.168.1.7:1521:fitbank";
- Object usuario = "FITMANUAL";
- Object clave = "fitmanual";
- Object tabla = "TTRANSACCIONDOCUMENTACIONAUS";
- Object cliente = "AUS";
- GenerateHTMLManual ge = new GenerateHTMLManual();
- ge.generate(BeanManager.convertObject(base, File.class),
- BeanManager.convertObject(conexion, String.class),
- BeanManager.convertObject(usuario, String.class),
- BeanManager.convertObject(clave, String.class),
- BeanManager.convertObject(tabla, String.class),
- BeanManager.convertObject(cliente, String.class));
- }
- public String vocales(String cadena)
- {
- cadena = cadena.replaceAll("á", "á");
- cadena = cadena.replaceAll("é", "é");
- cadena = cadena.replaceAll("í", "í");
- cadena = cadena.replaceAll("ó", "ó");
- cadena = cadena.replaceAll("Á", "Á");
- cadena = cadena.replaceAll("É", "É");
- cadena = cadena.replaceAll("Í", "Í");
- cadena = cadena.replaceAll("Ó", "Ó");
- cadena = cadena.replaceAll("Ú", "Ú");
- cadena = cadena.replaceAll("ö", "ó");
- return cadena;
- }
- public String generarHTML(Integer cont, ResultSet rsDocumentacion, String file, File base) throws SQLException, IOException{
- String manual="";
- String campos1 = "";
- String doc1 = "";
- cont = cont + 1;
- Object cDocumentacion = rsDocumentacion.getClob("documentacion");
- String cDocumentacion1 = (cDocumentacion == null) ? "0" : "1";
- if ("1".equals(cDocumentacion1)) {
- Debug.debug("Realizando manual de la transacción: " + rsDocumentacion.getString(sub)+"-"+rsDocumentacion.getString(trx)
- + " PANTALLA: "+rsDocumentacion.getString("pantalla") + " RUTA: "+base);
- String doc = IOUtils.toString(rsDocumentacion.getClob("documentacion").getCharacterStream()).trim();
- doc1 = doc.replaceAll("\n", "<br>");
- Object cCampos = rsDocumentacion.getClob("campos");
- String cCampos1 = (cCampos == null) ? "0" :"1";
- if("1".equals(cCampos1)){
- String campos = IOUtils.toString(rsDocumentacion.getClob("campos").getCharacterStream()).trim();
- campos1 = campos.replaceAll( "\n", "<br>");
- manual = doc1 + tituloMedio + campos1;
- }else
- {
- manual = doc1;
- }
- }
- return manual;
- }
- public void generate(File base, String conexion, String usuario,
- String clave, String tabla, String cliente) throws Exception {
- //Sentencia para obtener todas las transacciones del cliente
- String manuales = "SELECT csubsistema, ctransaccion"
- + " FROM " + tabla + " WHERE CLIENTE='" + cliente +
- "' group by csubsistema,ctransaccion order by csubsistema,ctransaccion";
- //Sentencia para obtener el número de pantallas por transacción
- String sqlNumberReg = "SELECT count(*) numero FROM "+ tabla +" WHERE CLIENTE=? "
- + "and csubsistema = ? and ctransaccion = ?";
- //Sentencia para obtener la documentación de una transacción específica
- String sqlAyudaTransaccion = "SELECT csubsistema, ctransaccion, documentacion, "
- + "campos,pantalla FROM "+ tabla +" WHERE CLIENTE= ? and csubsistema = ? "
- + "and ctransaccion = ? order by pantalla";
- Class.forName("oracle.jdbc.driver.OracleDriver");
- Connection conn = DriverManager.getConnection(conexion, usuario, clave);
- //Obtiene todas las transacciones para las que se van a generar las ayudas (html)
- PreparedStatement ps = conn.prepareStatement(manuales);
- ResultSet rset = null;
- rset = ps.executeQuery();
- while (rset.next()) {
- int cont = 0;
- String manualFinal="";
- String file = "";
- //Número de tabs por transacción
- PreparedStatement sqlmanualTransaccion = conn.prepareStatement(sqlNumberReg);
- sqlmanualTransaccion.setString(1, cliente);
- sqlmanualTransaccion.setString(2, rset.getString(sub));
- sqlmanualTransaccion.setString(3, rset.getString(trx));
- ResultSet rsManualTrx = null;
- rsManualTrx = sqlmanualTransaccion.executeQuery();
- rsManualTrx.next();
- Integer numberManual = rsManualTrx.getInt("numero");
- //Documentación por transacción
- PreparedStatement sqlDocumentacion = conn.prepareStatement(sqlAyudaTransaccion);
- sqlDocumentacion.setString(1, cliente);
- sqlDocumentacion.setString(2, rset.getString(sub));
- sqlDocumentacion.setString(3, rset.getString(trx));
- ResultSet rsDocumentacion = null;
- rsDocumentacion = sqlDocumentacion.executeQuery();
- while (rsDocumentacion.next()) {
- String manual = generarHTML(numberManual, rsDocumentacion, file, base);
- if("".equals(manual)){
- continue;
- }
- file = rsDocumentacion.getString(sub) + rsDocumentacion.getString(trx);
- if(Integer.valueOf(1).compareTo(numberManual) == -1){
- manualFinal = manualFinal + "<h3>TAB-"+cont + "</h3>"+ manual;
- }else
- {
- manualFinal = manualFinal + manual;
- }
- }
- manualFinal = vocales(manualFinal);
- IOUtils.write(manualFinal, new FileOutputStream(new File(base, file + ".html")));
- //Cerrar resulset de cada transacción
- rsDocumentacion.close();
- sqlmanualTransaccion.close();
- rsManualTrx.close();
- sqlDocumentacion.close();
- }
- rset.close();
- ps.close();
- conn.close();
- Debug.debug("Proceso Finalizado Satisfactoriamente");
- }
- }
Add Comment
Please, Sign In to add comment