Guest User

Untitled

a guest
Jun 27th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.02 KB | None | 0 0
  1. package com.fitbank.manual;
  2.  
  3. import com.fitbank.common.BeanManager;
  4. import com.fitbank.util.Debug;
  5. import java.io.File;
  6. import java.io.FileOutputStream;
  7. import java.io.IOException;
  8. import java.sql.Connection;
  9. import java.sql.DriverManager;
  10. import java.sql.PreparedStatement;
  11. import java.sql.ResultSet;
  12. import java.sql.SQLException;
  13. import org.apache.commons.io.IOUtils;
  14.  
  15. /**
  16. * Lee la tabla de manuales y actualiza los archivos preparando para armar el war.
  17. *
  18. * @author FitBank
  19. */
  20. public class GenerateHTMLManual {
  21.  
  22. private static String tituloMedio = "<h4>Descripción de los campos empleados en la pantalla</h4>";
  23. private static String sub = "csubsistema";
  24. private static String trx = "ctransaccion";
  25.  
  26. public GenerateHTMLManual() throws Exception{
  27.  
  28. }
  29. public static void main(String args[]) throws Exception{
  30.  
  31. Object base = "/FitBank/alex_manual";
  32. Object conexion = "jdbc:oracle:thin:@192.168.1.7:1521:fitbank";
  33. Object usuario = "FITMANUAL";
  34. Object clave = "fitmanual";
  35. Object tabla = "TTRANSACCIONDOCUMENTACIONAUS";
  36. Object cliente = "AUS";
  37.  
  38. GenerateHTMLManual ge = new GenerateHTMLManual();
  39. ge.generate(BeanManager.convertObject(base, File.class),
  40. BeanManager.convertObject(conexion, String.class),
  41. BeanManager.convertObject(usuario, String.class),
  42. BeanManager.convertObject(clave, String.class),
  43. BeanManager.convertObject(tabla, String.class),
  44. BeanManager.convertObject(cliente, String.class));
  45. }
  46.  
  47. public String vocales(String cadena)
  48. {
  49. cadena = cadena.replaceAll("á", "&aacute;");
  50. cadena = cadena.replaceAll("é", "&eacute;");
  51. cadena = cadena.replaceAll("í", "&iacute;");
  52. cadena = cadena.replaceAll("ó", "&oacute;");
  53. cadena = cadena.replaceAll("Á", "&Aacute;");
  54. cadena = cadena.replaceAll("É", "&Eacute;");
  55. cadena = cadena.replaceAll("Í", "&Iacute;");
  56. cadena = cadena.replaceAll("Ó", "&Oacute;");
  57. cadena = cadena.replaceAll("Ú", "&Uacute;");
  58. cadena = cadena.replaceAll("ö", "&oacute;");
  59. return cadena;
  60. }
  61.  
  62. public String generarHTML(Integer cont, ResultSet rsDocumentacion, String file, File base) throws SQLException, IOException{
  63. String manual="";
  64. String campos1 = "";
  65. String doc1 = "";
  66. cont = cont + 1;
  67. Object cDocumentacion = rsDocumentacion.getClob("documentacion");
  68. String cDocumentacion1 = (cDocumentacion == null) ? "0" : "1";
  69. if ("1".equals(cDocumentacion1)) {
  70.  
  71. Debug.debug("Realizando manual de la transacción: " + rsDocumentacion.getString(sub)+"-"+rsDocumentacion.getString(trx)
  72. + " PANTALLA: "+rsDocumentacion.getString("pantalla") + " RUTA: "+base);
  73.  
  74. String doc = IOUtils.toString(rsDocumentacion.getClob("documentacion").getCharacterStream()).trim();
  75. doc1 = doc.replaceAll("\n", "<br>");
  76.  
  77. Object cCampos = rsDocumentacion.getClob("campos");
  78. String cCampos1 = (cCampos == null) ? "0" :"1";
  79.  
  80. if("1".equals(cCampos1)){
  81. String campos = IOUtils.toString(rsDocumentacion.getClob("campos").getCharacterStream()).trim();
  82. campos1 = campos.replaceAll( "\n", "<br>");
  83. manual = doc1 + tituloMedio + campos1;
  84. }else
  85. {
  86. manual = doc1;
  87. }
  88. }
  89. return manual;
  90. }
  91.  
  92. public void generate(File base, String conexion, String usuario,
  93. String clave, String tabla, String cliente) throws Exception {
  94.  
  95. //Sentencia para obtener todas las transacciones del cliente
  96. String manuales = "SELECT csubsistema, ctransaccion"
  97. + " FROM " + tabla + " WHERE CLIENTE='" + cliente +
  98. "' group by csubsistema,ctransaccion order by csubsistema,ctransaccion";
  99.  
  100. //Sentencia para obtener el número de pantallas por transacción
  101. String sqlNumberReg = "SELECT count(*) numero FROM "+ tabla +" WHERE CLIENTE=? "
  102. + "and csubsistema = ? and ctransaccion = ?";
  103.  
  104. //Sentencia para obtener la documentación de una transacción específica
  105. String sqlAyudaTransaccion = "SELECT csubsistema, ctransaccion, documentacion, "
  106. + "campos,pantalla FROM "+ tabla +" WHERE CLIENTE= ? and csubsistema = ? "
  107. + "and ctransaccion = ? order by pantalla";
  108.  
  109. Class.forName("oracle.jdbc.driver.OracleDriver");
  110. Connection conn = DriverManager.getConnection(conexion, usuario, clave);
  111. //Obtiene todas las transacciones para las que se van a generar las ayudas (html)
  112. PreparedStatement ps = conn.prepareStatement(manuales);
  113. ResultSet rset = null;
  114. rset = ps.executeQuery();
  115.  
  116. while (rset.next()) {
  117. int cont = 0;
  118. String manualFinal="";
  119. String file = "";
  120. //Número de tabs por transacción
  121. PreparedStatement sqlmanualTransaccion = conn.prepareStatement(sqlNumberReg);
  122. sqlmanualTransaccion.setString(1, cliente);
  123. sqlmanualTransaccion.setString(2, rset.getString(sub));
  124. sqlmanualTransaccion.setString(3, rset.getString(trx));
  125. ResultSet rsManualTrx = null;
  126. rsManualTrx = sqlmanualTransaccion.executeQuery();
  127. rsManualTrx.next();
  128. Integer numberManual = rsManualTrx.getInt("numero");
  129.  
  130. //Documentación por transacción
  131. PreparedStatement sqlDocumentacion = conn.prepareStatement(sqlAyudaTransaccion);
  132. sqlDocumentacion.setString(1, cliente);
  133. sqlDocumentacion.setString(2, rset.getString(sub));
  134. sqlDocumentacion.setString(3, rset.getString(trx));
  135. ResultSet rsDocumentacion = null;
  136. rsDocumentacion = sqlDocumentacion.executeQuery();
  137.  
  138. while (rsDocumentacion.next()) {
  139. String manual = generarHTML(numberManual, rsDocumentacion, file, base);
  140. if("".equals(manual)){
  141. continue;
  142. }
  143. file = rsDocumentacion.getString(sub) + rsDocumentacion.getString(trx);
  144. if(Integer.valueOf(1).compareTo(numberManual) == -1){
  145. manualFinal = manualFinal + "<h3>TAB-"+cont + "</h3>"+ manual;
  146. }else
  147. {
  148. manualFinal = manualFinal + manual;
  149. }
  150. }
  151. manualFinal = vocales(manualFinal);
  152. IOUtils.write(manualFinal, new FileOutputStream(new File(base, file + ".html")));
  153. //Cerrar resulset de cada transacción
  154. rsDocumentacion.close();
  155. sqlmanualTransaccion.close();
  156. rsManualTrx.close();
  157. sqlDocumentacion.close();
  158. }
  159. rset.close();
  160. ps.close();
  161. conn.close();
  162. Debug.debug("Proceso Finalizado Satisfactoriamente");
  163. }
  164.  
  165. }
Add Comment
Please, Sign In to add comment