forked from Coded/SIPRP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1211 lines
38 KiB
1211 lines
38 KiB
/*
|
|
* WebUpdater.java
|
|
*
|
|
* Created on 27 de Outubro de 2004, 15:54
|
|
*/
|
|
|
|
package siprp.web;
|
|
|
|
import java.awt.*;
|
|
import java.awt.event.*;
|
|
import java.io.*;
|
|
import java.sql.*;
|
|
import javax.swing.*;
|
|
import javax.swing.event.*;
|
|
import java.util.*;
|
|
|
|
//import siprp.*;
|
|
//import siprp.clientes.*;
|
|
|
|
/**
|
|
*
|
|
* @author fpalma
|
|
*/
|
|
public class WebUpdater extends JFrame
|
|
implements ActionListener, Runnable, DocumentListener
|
|
{
|
|
private Connection softwareConnection;
|
|
private Connection webConnection;
|
|
|
|
public static final String GET_ULTIMA_ACTUALIZACAO = "SELECT stamp FROM actualizacao";
|
|
|
|
public static final String GET_EMPRESAS =
|
|
"SELECT id, designacao_social, perfil_1, perfil_2, codigo_1, codigo_2, "
|
|
+ "codigo_3, cae, contribuinte, seguranca_social, actividade, servicos, morada, "
|
|
+ "localidade, codigo_postal, distrito, concelho, inactivo, contacto_1 "
|
|
+ "FROM empresas WHERE actualizacao >= ";
|
|
|
|
public static final String GET_EMAIL =
|
|
"SELECT email FROM contactos WHERE id = ";
|
|
|
|
public static final String GET_ESTABELECIMENTOS =
|
|
"SELECT id, empresa_id, nome, contacto, morada, localidade, codigo_postal, inactivo "
|
|
+ "FROM estabelecimentos WHERE actualizacao >= ";
|
|
|
|
public static final String GET_TRABALHADORES =
|
|
"SELECT id, nome, sexo, data_nascimento, numero_mecanografico, categoria, estabelecimento_id, data_demissao, inactivo "
|
|
+ "FROM trabalhadores WHERE actualizacao >= ";
|
|
|
|
public static final String GET_CONTACTO =
|
|
"SELECT nome, telefone, telemovel, fax, email, cargo FROM contactos WHERE id = ";
|
|
|
|
public static final String GET_MARCACOES_ESTABELECIMENTO =
|
|
"SELECT id, data, realizada, data_relatorio FROM marcacoes_estabelecimento "
|
|
+ "WHERE estabelecimento_id = ";
|
|
|
|
public static final String GET_EXAMES_TRABALHADOR =
|
|
"SELECT id, data, realizada, data_relatorio FROM marcacoes_trabalhador "
|
|
+ "WHERE tipo = 0 and trabalhador_id = ?trabalhador_id "
|
|
+ "ORDER BY data";
|
|
|
|
public static final String GET_CONSULTAS_TRABALHADOR =
|
|
"SELECT id, data, realizada, data_relatorio FROM marcacoes_trabalhador "
|
|
+ "WHERE tipo = 1 and trabalhador_id = ?trabalhador_id "
|
|
+ "ORDER BY data";
|
|
|
|
public static final String GET_ID_FICHA_APTIDAO =
|
|
"SELECT MAX(id) FROM exames WHERE trabalhador_id = ?trabalhador_id AND inactivo <> 'y'";
|
|
|
|
public static final String GET_DADOS_FICHA_APTIDAO =
|
|
"SELECT data, resultado FROM exames WHERE id = ?id";
|
|
|
|
public static final String DELETE_TRABALHADOR =
|
|
"DELETE FROM trabalhadores WHERE id = ";
|
|
|
|
public static final String DELETE_TRABALHADORES_BY_ESTABELECIMENTO =
|
|
"DELETE FROM trabalhadores WHERE estabelecimento_id = ";
|
|
|
|
public static final String DELETE_ESTABELECIMENTO =
|
|
"DELETE FROM estabelecimentos WHERE id = ";
|
|
|
|
public static final String DELETE_ESTABELECIMENTOS_BY_EMPRESA =
|
|
"DELETE FROM estabelecimentos WHERE empresa_id = ";
|
|
|
|
public static final String DELETE_TRABALHADORES_BY_EMPRESA =
|
|
"DELETE FROM trabalhadores WHERE estabelecimento_id IN ( SELECT id FROM estabelecimentos WHERE empresa_id = ?empresa_id )";
|
|
|
|
public static final String DELETE_EMPRESA =
|
|
"DELETE FROM empresas WHERE id = ";
|
|
|
|
public static final String CREATE_EMPRESA =
|
|
"INSERT INTO empresas(id) VALUES( ?id )";
|
|
|
|
public static final String CREATE_ESTABELECIMENTO =
|
|
"INSERT INTO estabelecimentos(id) VALUES( ?id )";
|
|
|
|
public static final String CREATE_TRABALHADOR =
|
|
"INSERT INTO trabalhadores(id) VALUES( ?id )";
|
|
|
|
public static final String UPDATE_EMPRESA =
|
|
"UPDATE empresas SET morada = ?morada, codigo_postal = ?codigo_postal, "
|
|
+ "localidade = ?localidade, distrito = ?distrito, concelho = ?concelho, "
|
|
+ "perfil_1 = ?perfil_1, perfil_2 = ?perfil_2, codigo = ?codigo, cae = ?cae, "
|
|
+ "contribuinte = ?contribuinte, seguranca_social = ?seguranca_social, "
|
|
+ "actividade = ?actividade, servicos = ?servicos, designacao_social = ?designacao_social, "
|
|
+ "email = ?email "
|
|
+ "WHERE id = ?id";
|
|
|
|
public static final String UPDATE_ESTABELECIMENTO =
|
|
"UPDATE estabelecimentos SET empresa_id = ?empresa_id, morada = ?morada, "
|
|
+ "codigo_postal = ?codigo_postal, localidade = ?localidade, "
|
|
+ "ultima_visita = ?ultima_visita, realizada = ?realizada, "
|
|
+ "proxima_visita = ?proxima_visita, nome = ?nome "
|
|
+ "WHERE id = ?id";
|
|
|
|
public static final String UPDATE_TRABALHADOR =
|
|
"UPDATE trabalhadores SET sexo = ?sexo, data_nascimento = ?data_nascimento, "
|
|
+ "numero_mecanografico = ?numero_mecanografico, categoria = ?categoria, "
|
|
+ "ultimo_exame = ?ultimo_exame, realizado = ?realizado, proximo_exame = ?proximo_exame, "
|
|
+ "ultima_consulta = ?ultima_consulta, realizada = ?realizada, "
|
|
+ "proxima_consulta = ?proxima_consulta, nome = ?nome, "
|
|
+ "resultado = ?resultado, data_ficha = ?data_ficha, "
|
|
+ "estabelecimento_id = ?estabelecimento_id "
|
|
+ "WHERE id = ?id";
|
|
|
|
public static final String UPDATE_ACTUALIZACAO = "UPDATE actualizacao SET stamp = ";
|
|
|
|
|
|
public static final String PROPERTIES_FILE = "updtprop.txt";
|
|
public static final String PROP_LOCAL = "interno";
|
|
public static final String PROP_LOCAL_U = "iuser";
|
|
public static final String PROP_LOCAL_P = "ipasswd";
|
|
public static final String PROP_REMOTE = "externo";
|
|
public static final String PROP_REMOTE_U = "euser";
|
|
public static final String PROP_REMOTE_P = "epasswd";
|
|
public static final String PROP_INTERVAL = "intervalo";
|
|
|
|
|
|
protected Vector deletes;
|
|
protected Vector updates;
|
|
|
|
protected Thread updateThread;
|
|
|
|
protected JTextField servidorInternoText;
|
|
protected JTextField servidorExternoText;
|
|
protected JTextField intervaloText;
|
|
protected JTextField ultimaActualizacaoText;
|
|
protected JTextField proximaActualizacaoText;
|
|
protected JButton actionButton;
|
|
protected JButton saveButton;
|
|
protected JButton cancelButton;
|
|
protected JLabel stateLabel;
|
|
|
|
protected boolean running;
|
|
protected String servidorInterno;
|
|
protected String servidorExterno;
|
|
protected String internalUser;
|
|
protected String internalPassword;
|
|
protected String externalUser;
|
|
protected String externalPassword;
|
|
protected long intervalo;
|
|
|
|
/** Creates a new instance of WebUpdater */
|
|
public WebUpdater()
|
|
{
|
|
deletes = new Vector();
|
|
updates = new Vector();
|
|
running = false;
|
|
servidorInterno = "ws_fpalma";
|
|
servidorExterno = "localhost:5436";
|
|
intervalo = 10;
|
|
setupComponents();
|
|
}
|
|
|
|
protected void setupComponents()
|
|
{
|
|
setSize( 500, 200 );
|
|
setResizable( false );
|
|
setTitle( "Actualiza\u00e7\u00e3o do Site" );
|
|
JLabel servidorInternoLabel = new JLabel( "Servidor Interno" );
|
|
servidorInternoText = new JTextField();
|
|
servidorInternoText.setPreferredSize( new Dimension( 120, 20 ) );
|
|
servidorInternoText.setForeground( Color.red );
|
|
JLabel servidorExternoLabel = new JLabel( "Servidor Externo" );
|
|
servidorExternoText = new JTextField();
|
|
servidorExternoText.setPreferredSize( new Dimension( 120, 20 ) );
|
|
servidorExternoText.setForeground( Color.red );
|
|
JLabel intervaloLabel = new JLabel( "Intervalo de Actualiza\u00e7\u00e3o (minutos)" );
|
|
intervaloText = new JTextField();
|
|
intervaloText.setPreferredSize( new Dimension( 50, 20 ) );
|
|
JLabel ultimaActualizacaoLabel = new JLabel( "\u00daltima Actualiza\u00e7\u00e3o" );
|
|
ultimaActualizacaoText = new JTextField();
|
|
ultimaActualizacaoText.setPreferredSize( new Dimension( 120, 20 ) );
|
|
ultimaActualizacaoText.setEditable( false );
|
|
JLabel proximaActualizacaoLabel = new JLabel( "Pr\u00f3xima Actualiza\u00e7\u00e3o" );
|
|
proximaActualizacaoText = new JTextField();
|
|
proximaActualizacaoText.setPreferredSize( new Dimension( 120, 20 ) );
|
|
proximaActualizacaoText.setEditable( false );
|
|
actionButton = new JButton( "Executar" );
|
|
saveButton = new JButton( "Guardar Altera\u00e7\u00f5es" );
|
|
saveButton.setEnabled( false );
|
|
cancelButton = new JButton( "Cancelar Altera\u00e7\u00f5es" );
|
|
cancelButton.setEnabled( false );
|
|
stateLabel = new JLabel( " " );
|
|
JPanel buttonPanel = new JPanel();
|
|
JPanel pad = new JPanel();
|
|
pad.setPreferredSize( new Dimension( 120, 20 ) );
|
|
|
|
Container container = getContentPane();
|
|
GridBagLayout gridbag = new GridBagLayout();
|
|
container.setLayout( gridbag );
|
|
GridBagConstraints constraints = new GridBagConstraints();
|
|
constraints.insets = new Insets( 1, 1, 1, 1 );
|
|
// constraints.anchor = GridBagConstraints.EAST;
|
|
constraints.fill = GridBagConstraints.BOTH;
|
|
constraints.weighty = 0;
|
|
constraints.gridheight = 1;
|
|
|
|
constraints.weightx = 0;
|
|
constraints.gridwidth = 1;
|
|
gridbag.setConstraints( servidorInternoLabel, constraints );
|
|
gridbag.setConstraints( servidorExternoLabel, constraints );
|
|
gridbag.setConstraints( intervaloLabel, constraints );
|
|
gridbag.setConstraints( ultimaActualizacaoLabel, constraints );
|
|
gridbag.setConstraints( proximaActualizacaoLabel, constraints );
|
|
|
|
constraints.weightx = 1;
|
|
constraints.gridwidth = GridBagConstraints.REMAINDER;
|
|
gridbag.setConstraints( servidorInternoText, constraints );
|
|
gridbag.setConstraints( servidorExternoText, constraints );
|
|
gridbag.setConstraints( ultimaActualizacaoText, constraints );
|
|
gridbag.setConstraints( proximaActualizacaoText, constraints );
|
|
gridbag.setConstraints( buttonPanel, constraints );
|
|
gridbag.setConstraints( stateLabel, constraints );
|
|
|
|
constraints.weightx = 0.5;
|
|
constraints.gridwidth = 1;
|
|
gridbag.setConstraints( intervaloText, constraints );
|
|
|
|
constraints.weightx = 0.5;
|
|
constraints.gridwidth = GridBagConstraints.REMAINDER;
|
|
gridbag.setConstraints( pad, constraints );
|
|
|
|
container.add( servidorInternoLabel );
|
|
container.add( servidorInternoText );
|
|
container.add( servidorExternoLabel );
|
|
container.add( servidorExternoText );
|
|
container.add( intervaloLabel );
|
|
container.add( intervaloText );
|
|
container.add( pad );
|
|
container.add( ultimaActualizacaoLabel );
|
|
container.add( ultimaActualizacaoText );
|
|
container.add( proximaActualizacaoLabel );
|
|
container.add( proximaActualizacaoText );
|
|
container.add( buttonPanel );
|
|
container.add( stateLabel );
|
|
|
|
buttonPanel.setLayout( new FlowLayout( FlowLayout.RIGHT ) );
|
|
buttonPanel.add( saveButton );
|
|
buttonPanel.add( cancelButton );
|
|
buttonPanel.add( actionButton );
|
|
|
|
actionButton.addActionListener( this );
|
|
stateLabel.setText( "Parado" );
|
|
stateLabel.setForeground( Color.red );
|
|
|
|
// servidorInternoText.setText( servidorInterno );
|
|
// servidorExternoText.setText( servidorExterno );
|
|
// intervaloText.setText( "" + intervalo );
|
|
reload();
|
|
|
|
servidorInternoText.getDocument().addDocumentListener( this );
|
|
servidorExternoText.getDocument().addDocumentListener( this );
|
|
intervaloText.getDocument().addDocumentListener( this );
|
|
saveButton.addActionListener( this );
|
|
cancelButton.addActionListener( this );
|
|
}
|
|
|
|
public void actionPerformed(java.awt.event.ActionEvent actionEvent)
|
|
{
|
|
Object source = actionEvent.getSource();
|
|
if( actionButton.equals( source ) )
|
|
{
|
|
if( running )
|
|
{
|
|
running = false;
|
|
updateThread.interrupt();
|
|
actionButton.setText( "Executar" );
|
|
stateLabel.setText( "Parado" );
|
|
stateLabel.setBackground( Color.red );
|
|
}
|
|
else
|
|
{
|
|
updateThread = new Thread( this );
|
|
updateThread.start();
|
|
actionButton.setText( "Parar" );
|
|
}
|
|
}
|
|
else if( saveButton.equals( source ) )
|
|
{
|
|
save();
|
|
saveButton.setEnabled( false );
|
|
cancelButton.setEnabled( false );
|
|
}
|
|
else if( cancelButton.equals( source ) )
|
|
{
|
|
reload();
|
|
saveButton.setEnabled( false );
|
|
cancelButton.setEnabled( false );
|
|
}
|
|
}
|
|
|
|
|
|
public void changedUpdate(javax.swing.event.DocumentEvent documentEvent)
|
|
{
|
|
saveButton.setEnabled( true );
|
|
cancelButton.setEnabled( true );
|
|
}
|
|
|
|
public void insertUpdate(javax.swing.event.DocumentEvent documentEvent)
|
|
{
|
|
saveButton.setEnabled( true );
|
|
cancelButton.setEnabled( true );
|
|
}
|
|
|
|
public void removeUpdate(javax.swing.event.DocumentEvent documentEvent)
|
|
{
|
|
saveButton.setEnabled( true );
|
|
cancelButton.setEnabled( true );
|
|
}
|
|
|
|
protected void save()
|
|
{
|
|
Properties props = new Properties();
|
|
try
|
|
{
|
|
OutputStream out = new FileOutputStream( PROPERTIES_FILE );
|
|
String auxSI = servidorInternoText.getText();
|
|
String auxSE = servidorExternoText.getText();
|
|
String auxI = intervaloText.getText();;
|
|
if( auxSI == null || auxSI.length() == 0 ||
|
|
auxSE == null || auxSE.length() == 0 ||
|
|
auxI == null || auxI.length() == 0 )
|
|
{
|
|
throw new Exception( "" );
|
|
}
|
|
intervalo = Long.parseLong( auxI );
|
|
servidorInterno = auxSI;
|
|
servidorExterno = auxSE;
|
|
props.setProperty( PROP_LOCAL, servidorInterno );
|
|
props.setProperty( PROP_LOCAL_U, internalUser );
|
|
props.setProperty( PROP_LOCAL_P, internalPassword );
|
|
props.setProperty( PROP_REMOTE, servidorExterno );
|
|
props.setProperty( PROP_REMOTE_U, externalUser );
|
|
props.setProperty( PROP_REMOTE_P, externalPassword );
|
|
props.setProperty( PROP_INTERVAL, "" + intervalo );
|
|
props.store( out, "Configura\u00e7\u00e3o da Ferramenta de Actualiza\u00e7\u00e3o da SIPRP" );
|
|
out.close();
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
JOptionPane.showMessageDialog( this, "Erro a gravar altera\u00e7\u00f5es", "Erro",
|
|
JOptionPane.ERROR_MESSAGE );
|
|
}
|
|
}
|
|
|
|
protected void reload()
|
|
{
|
|
Properties props = new Properties();
|
|
try
|
|
{
|
|
|
|
System.out.println( new File( PROPERTIES_FILE ) );
|
|
InputStream in = new FileInputStream( PROPERTIES_FILE );
|
|
props.load( in );
|
|
internalUser = props.getProperty( PROP_LOCAL_U );
|
|
internalPassword = props.getProperty( PROP_LOCAL_P );
|
|
externalUser = props.getProperty( PROP_REMOTE_U );
|
|
externalPassword = props.getProperty( PROP_REMOTE_P );
|
|
|
|
String aux;
|
|
aux = props.getProperty( PROP_LOCAL );
|
|
if( aux != null && aux.length() > 0 )
|
|
{
|
|
servidorInterno = aux;
|
|
}
|
|
aux = props.getProperty( PROP_REMOTE );
|
|
if( aux != null && aux.length() > 0 )
|
|
{
|
|
servidorExterno = aux;
|
|
}
|
|
aux = props.getProperty( PROP_INTERVAL );
|
|
if( aux != null && aux.length() > 0 )
|
|
{
|
|
try
|
|
{
|
|
intervalo = Long.parseLong( aux );
|
|
}
|
|
catch( NumberFormatException nfe )
|
|
{
|
|
}
|
|
}
|
|
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
JOptionPane.showMessageDialog( this, "Erro a carregar os dados", "Erro",
|
|
JOptionPane.ERROR_MESSAGE );
|
|
}
|
|
servidorInternoText.setText( servidorInterno );
|
|
servidorExternoText.setText( servidorExterno );
|
|
intervaloText.setText( "" + intervalo );
|
|
}
|
|
|
|
public void run()
|
|
{
|
|
running = true;
|
|
while( true )
|
|
{
|
|
boolean erro = false;
|
|
if( !running )
|
|
{
|
|
return;
|
|
}
|
|
proximaActualizacaoText.setText( "" );
|
|
try
|
|
{
|
|
stateLabel.setText( "A Actualizar" );
|
|
stateLabel.setForeground( Color.green );
|
|
doUpdates();
|
|
java.util.Date date = new java.util.Date();
|
|
ultimaActualizacaoText.setText( date.toString() );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
erro = true;
|
|
stateLabel.setText( "ERRO A ACTUALIZAR!!!" );
|
|
stateLabel.setForeground( Color.red );
|
|
}
|
|
if( !running )
|
|
{
|
|
return;
|
|
}
|
|
try
|
|
{
|
|
if( !erro )
|
|
{
|
|
stateLabel.setText( "Em Intervalo (" + intervalo + " minuto" + ( intervalo > 1 ? "s" : "" ) + ")" );
|
|
stateLabel.setForeground( Color.black );
|
|
}
|
|
Calendar cal = Calendar.getInstance();
|
|
cal.add( Calendar.MINUTE, (int)intervalo );
|
|
proximaActualizacaoText.setText( "" + cal.getTime() );
|
|
Thread.sleep( intervalo * 60000 );
|
|
}
|
|
catch( InterruptedException iex )
|
|
{
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void doUpdates()
|
|
throws Exception
|
|
{
|
|
try
|
|
{
|
|
connect();
|
|
getData();
|
|
updateData();
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
ex.printStackTrace();
|
|
throw ex;
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* @param args the command line arguments
|
|
*/
|
|
public static void main( String[] args )
|
|
throws Exception
|
|
{
|
|
WebUpdater updater = new WebUpdater();
|
|
updater.show();
|
|
}
|
|
|
|
protected void connect()
|
|
throws Exception
|
|
{
|
|
Class.forName( "org.postgresql.Driver" );
|
|
Class.forName( "com.mysql.jdbc.Driver" );
|
|
webConnection = DriverManager.getConnection( "jdbc:postgresql://" + servidorExterno + "/siprp", externalUser, externalPassword );
|
|
webConnection.setAutoCommit( true );
|
|
softwareConnection = DriverManager.getConnection( "jdbc:mysql://" + servidorInterno + "/siprp", internalUser, internalPassword );
|
|
// softwareConnection = DriverManager.getConnection( "jdbc:postgresql://" + servidorInterno + "/siprp", internalUser, internalPassword );
|
|
softwareConnection.setAutoCommit( true );
|
|
}
|
|
|
|
protected void getData()
|
|
throws Exception
|
|
{
|
|
Object r[][];
|
|
r = doQuery( webConnection, GET_ULTIMA_ACTUALIZACAO );
|
|
String actualizacao = "'" + r[0][0] + "'";
|
|
Calendar cal = Calendar.getInstance();
|
|
//int hour = cal.get( Calendar.HOUR_OF_DAY );
|
|
//if( hour < 3 && hour > 1 )
|
|
//{
|
|
// actualizacao = "'1970-01-01 00:00:00'";
|
|
//}
|
|
doQuery(softwareConnection, "DELETE FROM actualizacao;", true);
|
|
doQuery(softwareConnection, "INSERT INTO actualizacao(hora) VALUES(now());", true);
|
|
readTrabalhadores( actualizacao );
|
|
readEstabelecimentos( actualizacao );
|
|
readEmpresas( actualizacao );
|
|
}
|
|
|
|
protected void updateData()
|
|
throws Exception
|
|
{
|
|
System.out.println( "DELETES" );
|
|
for( int d = 0; d < deletes.size(); d++ )
|
|
{
|
|
try
|
|
{
|
|
System.out.println( deletes.elementAt( d ).toString() );
|
|
doQuery( webConnection, deletes.elementAt( d ).toString(), true );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
System.out.println( "" );
|
|
System.out.println( "UPDATES" );
|
|
for( int u = 0; u < updates.size(); u++ )
|
|
{
|
|
String queries[] = ( String[] ) updates.elementAt( u );
|
|
System.out.println( queries[ 0 ] + "\n " + queries[ 1 ] );
|
|
try
|
|
{
|
|
doQuery( webConnection, queries[ 0 ], true );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
System.out.println( " ERRO DE INSERT" );
|
|
}
|
|
try
|
|
{
|
|
doQuery( webConnection, queries[ 1 ], true );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
Object r[][] = doQuery( softwareConnection, "SELECT hora FROM actualizacao;" );
|
|
String actualizacao = "'" + r[0][0] + "'";
|
|
doQuery( webConnection, UPDATE_ACTUALIZACAO + actualizacao, true );
|
|
}
|
|
|
|
protected void readTrabalhadores( String actualizacao )
|
|
throws Exception
|
|
{
|
|
Object trabalhadores[][] = doQuery( softwareConnection, GET_TRABALHADORES + actualizacao );
|
|
for( int t = 0; t < trabalhadores.length; t++ )
|
|
{
|
|
for( int c = 0; c < trabalhadores[ t ].length; c++ )
|
|
{
|
|
if( trabalhadores[ t ][ c ] instanceof String )
|
|
{
|
|
trabalhadores[ t ][ c ] = unicodeToHTML( (String) trabalhadores[ t ][ c ] );
|
|
}
|
|
}
|
|
int id = ( ( Number ) trabalhadores[t][0] ).intValue();
|
|
boolean inactivo = "y".equals( trabalhadores[ t ][ trabalhadores[ t ].length - 1 ] ) ||
|
|
trabalhadores[ t ][ trabalhadores[ t ].length - 2 ] != null;
|
|
if( inactivo )
|
|
{
|
|
deletes.add( DELETE_TRABALHADOR + id );
|
|
continue;
|
|
}
|
|
String queries[] = new String[ 2 ];
|
|
updates.insertElementAt( queries, 0 );
|
|
queries[ 0 ] = CREATE_TRABALHADOR.replaceFirst( "[?]id", "" + id );
|
|
String update = UPDATE_TRABALHADOR.replaceFirst( "[?]id", "" + id );
|
|
|
|
String nome = "'" + trabalhadores[ t ][ 1 ] + "'";
|
|
update = update.replaceFirst( "[?]nome", nome );
|
|
String sexo = "'" + trabalhadores[ t ][ 2 ] + "'";
|
|
update = update.replaceFirst( "[?]sexo", sexo );
|
|
String dataNasc;
|
|
if( trabalhadores[ t ][ 3 ] != null )
|
|
{
|
|
dataNasc = "'" + trabalhadores[ t ][ 3 ] + "'";
|
|
}
|
|
else
|
|
{
|
|
dataNasc = "''";
|
|
}
|
|
update = update.replaceFirst( "[?]data_nascimento", dataNasc );
|
|
String numeroMecanografico;
|
|
if( trabalhadores[ t ][ 4 ] != null )
|
|
{
|
|
numeroMecanografico = "'" + trabalhadores[ t ][ 4 ] + "'";
|
|
}
|
|
else
|
|
{
|
|
numeroMecanografico = "''";
|
|
}
|
|
update = update.replaceFirst( "[?]numero_mecanografico", numeroMecanografico );
|
|
String categoria;
|
|
if( trabalhadores[ t ][ 5 ] != null )
|
|
{
|
|
categoria = "'" + trabalhadores[ t ][ 5 ] + "'";
|
|
}
|
|
else
|
|
{
|
|
categoria = "''";
|
|
}
|
|
update = update.replaceFirst( "[?]categoria", categoria );
|
|
int estabelecimentoID = ( ( Number ) trabalhadores[t][6] ).intValue();
|
|
update = update.replaceFirst( "[?]estabelecimento_id", "" + estabelecimentoID );
|
|
Object exames[][] = doQuery( softwareConnection,
|
|
GET_EXAMES_TRABALHADOR.replaceFirst( "[?]trabalhador_id", ""+id ) );
|
|
|
|
if( exames != null && exames.length > 0 )
|
|
{
|
|
java.util.Date dataExame2 = ( java.util.Date ) exames[ exames.length - 1 ] [ 1 ];
|
|
String realizado2 = ( String ) exames[ exames.length - 1 ][ 2 ];
|
|
java.util.Date dataExame1;
|
|
String realizado1;
|
|
if( exames.length >= 2 )
|
|
{
|
|
dataExame1 = ( java.util.Date ) exames[ exames.length - 2 ] [ 1 ];
|
|
realizado1 = ( String ) exames[ exames.length - 2 ][ 2 ];
|
|
}
|
|
else
|
|
{
|
|
dataExame1 = dataExame2;
|
|
realizado1 = realizado2;
|
|
}
|
|
if( "y".equals( realizado2 ) )
|
|
{
|
|
update = update.replaceFirst( "[?]ultimo_exame", "'" + dataExame2 + "'" );
|
|
update = update.replaceFirst( "[?]realizado", "'" + realizado2 + "'" );
|
|
update = update.replaceFirst( "[?]proximo_exame", "null" );
|
|
}
|
|
else if( new java.util.Date().after( dataExame2 ) )
|
|
{
|
|
update = update.replaceFirst( "[?]ultimo_exame", "'" + dataExame2 + "'" );
|
|
update = update.replaceFirst( "[?]realizado", "'" + realizado2 + "'" );
|
|
update = update.replaceFirst( "[?]proximo_exame", "null" );
|
|
}
|
|
else
|
|
{
|
|
update = update.replaceFirst( "[?]proximo_exame", "'" + dataExame2 + "'" );
|
|
if( !dataExame2.equals( dataExame1 ) )
|
|
{
|
|
update = update.replaceFirst( "[?]ultimo_exame", "'" + dataExame1 + "'" );
|
|
update = update.replaceFirst( "[?]realizado", "'" + realizado1 + "'" );
|
|
}
|
|
else
|
|
{
|
|
update = update.replaceFirst( "[?]ultimo_exame", "null" );
|
|
update = update.replaceFirst( "[?]realizado", "null" );
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
update = update.replaceFirst( "[?]ultimo_exame", "null" );
|
|
update = update.replaceFirst( "[?]realizado", "null" );
|
|
update = update.replaceFirst( "[?]proximo_exame", "null" );
|
|
}
|
|
Object consultas[][] = doQuery( softwareConnection,
|
|
GET_CONSULTAS_TRABALHADOR.replaceFirst( "[?]trabalhador_id", ""+id ) );
|
|
|
|
if( consultas != null && consultas.length > 0 )
|
|
{
|
|
java.util.Date dataConsulta2 = ( java.util.Date ) consultas[ consultas.length - 1 ] [ 1 ];
|
|
String realizada2 = ( String ) consultas[ consultas.length - 1 ][ 2 ];
|
|
java.util.Date dataConsulta1;
|
|
java.util.Date dataRelatorio1;
|
|
java.util.Date dataRelatorio2 = (java.util.Date) consultas[ consultas.length - 1 ][ 3 ];
|
|
String realizada1;
|
|
if( consultas.length >= 2 )
|
|
{
|
|
dataConsulta1 = ( java.util.Date ) consultas[ consultas.length - 2 ] [ 1 ];
|
|
realizada1 = ( String ) consultas[ consultas.length - 2 ][ 2 ];
|
|
dataRelatorio1 = (java.util.Date) consultas[ consultas.length - 2 ][ 3 ];
|
|
}
|
|
else
|
|
{
|
|
dataConsulta1 = dataConsulta2;
|
|
realizada1 = realizada2;
|
|
dataRelatorio1 = dataRelatorio2;
|
|
}
|
|
if( "y".equals( realizada2 ) )
|
|
{
|
|
update = update.replaceFirst( "[?]ultima_consulta", "'" + dataConsulta2 + "'" );
|
|
update = update.replaceFirst( "[?]realizada", "'" + realizada2 + "'" );
|
|
update = update.replaceFirst( "[?]proxima_consulta", "null" );
|
|
if( dataRelatorio2 != null )
|
|
{
|
|
update = update.replaceFirst( "[?]data_ficha", "'" + dataRelatorio2 + "'" );
|
|
}
|
|
else
|
|
{
|
|
update = update.replaceFirst( "[?]data_ficha", "null" );
|
|
}
|
|
}
|
|
else if( new java.util.Date().after( dataConsulta2 ) )
|
|
{
|
|
update = update.replaceFirst( "[?]ultima_consulta", "'" + dataConsulta2 + "'" );
|
|
update = update.replaceFirst( "[?]realizada", "'" + realizada2 + "'" );
|
|
update = update.replaceFirst( "[?]proxima_consulta", "null" );
|
|
if( dataRelatorio2 != null )
|
|
{
|
|
update = update.replaceFirst( "[?]data_ficha", "'" + dataRelatorio2 + "'" );
|
|
}
|
|
else
|
|
{
|
|
update = update.replaceFirst( "[?]data_ficha", "null" );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
update = update.replaceFirst( "[?]proxima_consulta", "'" + dataConsulta2 + "'" );
|
|
if( !dataConsulta2.equals( dataConsulta1 ) )
|
|
{
|
|
update = update.replaceFirst( "[?]ultima_consulta", "'" + dataConsulta1 + "'" );
|
|
update = update.replaceFirst( "[?]realizada", "'" + realizada1 + "'" );
|
|
if( dataRelatorio1 != null )
|
|
{
|
|
update = update.replaceFirst( "[?]data_ficha", "'" + dataRelatorio1 + "'" );
|
|
}
|
|
else
|
|
{
|
|
update = update.replaceFirst( "[?]data_ficha", "null" );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
update = update.replaceFirst( "[?]ultima_consulta", "null" );
|
|
update = update.replaceFirst( "[?]realizada", "null" );
|
|
update = update.replaceFirst( "[?]data_ficha", "null" );
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
update = update.replaceFirst( "[?]ultima_consulta", "null" );
|
|
update = update.replaceFirst( "[?]realizada", "null" );
|
|
update = update.replaceFirst( "[?]proxima_consulta", "null" );
|
|
update = update.replaceFirst( "[?]data_ficha", "null" );
|
|
|
|
}
|
|
Object fichas[][] = doQuery( softwareConnection,
|
|
GET_ID_FICHA_APTIDAO.replaceFirst( "[?]trabalhador_id", ""+id ) );
|
|
if( fichas != null && fichas.length > 0 && fichas[0].length > 0 && fichas[0][0] != null )
|
|
{
|
|
Integer idFicha = (Integer)fichas[0][0];
|
|
fichas = doQuery( softwareConnection,
|
|
GET_DADOS_FICHA_APTIDAO.replaceFirst( "[?]id", "" + idFicha ) );
|
|
java.util.Date dataFicha = ( java.util.Date ) fichas[ 0 ][ 0 ];
|
|
/*if( dataFicha != null )
|
|
{
|
|
update = update.replaceFirst( "[?]data_ficha", "null" );
|
|
}
|
|
else
|
|
{
|
|
update = update.replaceFirst( "[?]data_ficha", "'" + dataFicha + "'" );
|
|
}*/
|
|
Integer resultadoFicha = (Integer) fichas[ 0 ][ 1 ];
|
|
if( resultadoFicha != null )
|
|
{
|
|
switch( resultadoFicha.intValue() )
|
|
{
|
|
case 1:
|
|
update = update.replaceFirst( "[?]resultado", "'Apto'" );
|
|
break;
|
|
case 2:
|
|
update = update.replaceFirst( "[?]resultado", "'Apto Condicionalmente'" );
|
|
break;
|
|
case 3:
|
|
update = update.replaceFirst( "[?]resultado", "'Inapto Temporariamente'" );
|
|
break;
|
|
case 4:
|
|
update = update.replaceFirst( "[?]resultado", "'Inapto Definitivamente'" );
|
|
break;
|
|
default:
|
|
update = update.replaceFirst( "[?]resultado", "null" );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
update = update.replaceFirst( "[?]resultado", "null" );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
update = update.replaceFirst( "[?]data_ficha", "null" );
|
|
update = update.replaceFirst( "[?]resultado", "null" );
|
|
}
|
|
|
|
queries[ 1 ] = update;
|
|
|
|
}
|
|
}
|
|
|
|
protected void readEstabelecimentos( String actualizacao )
|
|
throws Exception
|
|
{
|
|
Object estabelecimentos[][] = doQuery( softwareConnection, GET_ESTABELECIMENTOS + actualizacao );
|
|
//id, empresa_id, nome, contacto, inactivo
|
|
for( int t = 0; t < estabelecimentos.length; t++ )
|
|
{
|
|
for( int c = 0; c < estabelecimentos[ t ].length; c++ )
|
|
{
|
|
if( estabelecimentos[ t ][ c ] instanceof String )
|
|
{
|
|
estabelecimentos[ t ][ c ] = unicodeToHTML( (String) estabelecimentos[ t ][ c ] );
|
|
}
|
|
}
|
|
int id = ( ( Number ) estabelecimentos[t][0] ).intValue();
|
|
boolean inactivo = "y".equals( estabelecimentos[ t ][ estabelecimentos[ t ].length - 1 ] );
|
|
if( inactivo )
|
|
{
|
|
deletes.add( DELETE_TRABALHADORES_BY_ESTABELECIMENTO + id );
|
|
deletes.add( DELETE_ESTABELECIMENTO + id );
|
|
continue;
|
|
}
|
|
String queries[] = new String[ 2 ];
|
|
updates.insertElementAt( queries, 0 );
|
|
queries[ 0 ] = CREATE_ESTABELECIMENTO.replaceFirst( "[?]id", "" + id );
|
|
String update = UPDATE_ESTABELECIMENTO.replaceFirst( "[?]id", "" + id );
|
|
|
|
int empresaID = ( ( Number ) estabelecimentos[t][1] ).intValue();
|
|
update = update.replaceFirst( "[?]empresa_id", "" + empresaID );
|
|
String nome = "'" + estabelecimentos[ t ][ 2 ] + "'";
|
|
update = update.replaceFirst( "[?]nome", nome );
|
|
String morada;
|
|
if( estabelecimentos[ t ][ 4 ] != null )
|
|
{
|
|
morada = "'" + estabelecimentos[ t ][ 4 ] + "'";
|
|
}
|
|
else
|
|
{
|
|
morada = "''";
|
|
}
|
|
update = update.replaceFirst( "[?]morada", morada );
|
|
String localidade;
|
|
if( estabelecimentos[ t ][ 5 ] != null )
|
|
{
|
|
localidade = "'" + estabelecimentos[ t ][ 5 ] + "'";
|
|
}
|
|
else
|
|
{
|
|
localidade = "''";
|
|
}
|
|
update = update.replaceFirst( "[?]localidade", localidade );
|
|
String codigoPostal;
|
|
if( estabelecimentos[ t ][ 6 ] != null )
|
|
{
|
|
codigoPostal = "'" + estabelecimentos[ t ][ 6 ] + "'";
|
|
}
|
|
else
|
|
{
|
|
codigoPostal = "''";
|
|
}
|
|
update = update.replaceFirst( "[?]codigo_postal", codigoPostal );
|
|
|
|
Object marcacoes[][] = doQuery( softwareConnection,
|
|
GET_MARCACOES_ESTABELECIMENTO +id );
|
|
|
|
if( marcacoes != null && marcacoes.length > 0 )
|
|
{
|
|
java.util.Date dataConsulta2 = ( java.util.Date ) marcacoes[ marcacoes.length - 1 ] [ 1 ];
|
|
String realizada2 = ( String ) marcacoes[ marcacoes.length - 1 ][ 2 ];
|
|
java.util.Date dataConsulta1;
|
|
String realizada1;
|
|
if( marcacoes.length >= 2 )
|
|
{
|
|
dataConsulta1 = ( java.util.Date ) marcacoes[ marcacoes.length - 2 ] [ 1 ];
|
|
realizada1 = ( String ) marcacoes[ marcacoes.length - 2 ][ 2 ];
|
|
}
|
|
else
|
|
{
|
|
dataConsulta1 = dataConsulta2;
|
|
realizada1 = realizada2;
|
|
}
|
|
if( "y".equals( realizada2 ) )
|
|
{
|
|
update = update.replaceFirst( "[?]ultima_visita", "'" + dataConsulta2 + "'" );
|
|
update = update.replaceFirst( "[?]realizada", "'" + realizada2 + "'" );
|
|
update = update.replaceFirst( "[?]proxima_visita", "null" );
|
|
}
|
|
else if( new java.util.Date().after( dataConsulta2 ) )
|
|
{
|
|
update = update.replaceFirst( "[?]ultima_visita", "'" + dataConsulta2 + "'" );
|
|
update = update.replaceFirst( "[?]realizada", "'" + realizada2 + "'" );
|
|
update = update.replaceFirst( "[?]proxima_visita", "null" );
|
|
}
|
|
else
|
|
{
|
|
update = update.replaceFirst( "[?]proxima_visita", "'" + dataConsulta2 + "'" );
|
|
if( !dataConsulta2.equals( dataConsulta1 ) )
|
|
{
|
|
update = update.replaceFirst( "[?]ultima_visita", "'" + dataConsulta1 + "'" );
|
|
update = update.replaceFirst( "[?]realizada", "'" + realizada2 + "'" );
|
|
}
|
|
else
|
|
{
|
|
update = update.replaceFirst( "[?]ultima_visita", "null" );
|
|
update = update.replaceFirst( "[?]realizada", "null" );
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
update = update.replaceFirst( "[?]ultima_visita", "null" );
|
|
update = update.replaceFirst( "[?]realizada", "null" );
|
|
update = update.replaceFirst( "[?]proxima_visita", "null" );
|
|
}
|
|
|
|
queries[ 1 ] = update;
|
|
}
|
|
}
|
|
|
|
protected void readEmpresas( String actualizacao )
|
|
throws Exception
|
|
{
|
|
Object empresas[][] = doQuery( softwareConnection, GET_EMPRESAS + actualizacao );
|
|
//id, empresa_id, nome, contacto, inactivo
|
|
for( int t = 0; t < empresas.length; t++ )
|
|
{
|
|
for( int c = 0; c < empresas[ t ].length; c++ )
|
|
{
|
|
if( empresas[ t ][ c ] instanceof String )
|
|
{
|
|
empresas[ t ][ c ] = unicodeToHTML( (String) empresas[ t ][ c ] );
|
|
}
|
|
}
|
|
int id = ( ( Number ) empresas[t][0] ).intValue();
|
|
boolean inactivo = "y".equals( empresas[ t ][ 17 ] );
|
|
if( inactivo )
|
|
{
|
|
String str = DELETE_TRABALHADORES_BY_EMPRESA.replaceFirst( "[?]empresa_id", "" + id );
|
|
deletes.add( str );
|
|
deletes.add( DELETE_ESTABELECIMENTOS_BY_EMPRESA + id );
|
|
deletes.add( DELETE_EMPRESA + id );
|
|
continue;
|
|
}
|
|
String queries[] = new String[ 2 ];
|
|
updates.insertElementAt( queries, 0 );
|
|
queries[ 0 ] = CREATE_EMPRESA.replaceFirst( "[?]id", "" + id );
|
|
String update = UPDATE_EMPRESA.replaceFirst( "[?]id", "" + id );
|
|
|
|
String designacaoSocial = "'" + empresas[ t ][ 1 ] + "'";
|
|
update = update.replaceFirst( "[?]designacao_social", designacaoSocial );
|
|
String cae;
|
|
if( empresas[ t ][ 7 ] != null )
|
|
{
|
|
cae = "'" + empresas[ t ][ 7 ] + "'";
|
|
}
|
|
else
|
|
{
|
|
cae = "''";
|
|
}
|
|
update = update.replaceFirst( "[?]cae", cae );
|
|
String contribuinte;
|
|
if( empresas[ t ][ 8 ] != null )
|
|
{
|
|
contribuinte = "'" + empresas[ t ][ 8 ] + "'";
|
|
}
|
|
else
|
|
{
|
|
contribuinte = "''";
|
|
}
|
|
update = update.replaceFirst( "[?]contribuinte", contribuinte );
|
|
String segurancaSocial;
|
|
if( empresas[ t ][ 9 ] != null )
|
|
{
|
|
segurancaSocial = "'" + empresas[ t ][ 9 ] + "'";
|
|
}
|
|
else
|
|
{
|
|
segurancaSocial = "''";
|
|
}
|
|
update = update.replaceFirst( "[?]seguranca_social", segurancaSocial );
|
|
String actividade;
|
|
if( empresas[ t ][ 10 ] != null )
|
|
{
|
|
actividade = "'" + empresas[ t ][ 10 ] + "'";
|
|
}
|
|
else
|
|
{
|
|
actividade = "''";
|
|
}
|
|
update = update.replaceFirst( "[?]actividade", actividade );
|
|
String morada;
|
|
if( empresas[ t ][ 12 ] != null )
|
|
{
|
|
morada = "'" + empresas[ t ][ 12 ] + "'";
|
|
}
|
|
else
|
|
{
|
|
morada = "''";
|
|
}
|
|
update = update.replaceFirst( "[?]morada", morada );
|
|
String localidade;
|
|
if( empresas[ t ][ 13 ] != null )
|
|
{
|
|
localidade = "'" + empresas[ t ][ 13 ] + "'";
|
|
}
|
|
else
|
|
{
|
|
localidade = "''";
|
|
}
|
|
update = update.replaceFirst( "[?]localidade", localidade );
|
|
String codigoPostal;
|
|
if( empresas[ t ][ 14 ] != null )
|
|
{
|
|
codigoPostal = "'" + empresas[ t ][ 14 ] + "'";
|
|
}
|
|
else
|
|
{
|
|
codigoPostal = "''";
|
|
}
|
|
update = update.replaceFirst( "[?]codigo_postal", codigoPostal );
|
|
String distrito;
|
|
if( empresas[ t ][ 15 ] != null )
|
|
{
|
|
distrito = "'" + empresas[ t ][ 15 ] + "'";
|
|
}
|
|
else
|
|
{
|
|
distrito = "''";
|
|
}
|
|
update = update.replaceFirst( "[?]distrito", distrito );
|
|
String concelho;
|
|
if( empresas[ t ][ 16 ] != null )
|
|
{
|
|
concelho = "'" + empresas[ t ][ 16 ] + "'";
|
|
}
|
|
else
|
|
{
|
|
concelho = "''";
|
|
}
|
|
update = update.replaceFirst( "[?]concelho", concelho );
|
|
String email = null;
|
|
if( empresas[ t ][ 18 ] != null )
|
|
{
|
|
try
|
|
{
|
|
Object em[][] = doQuery( softwareConnection, GET_EMAIL + empresas[ t ][ 18 ] );
|
|
if( em != null && em.length > 0 && em[ 0 ][ 0 ] != null )
|
|
{
|
|
email = "'" + (String)em[ 0 ][ 0 ] + "'";
|
|
}
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
}
|
|
}
|
|
if( email == null )
|
|
{
|
|
email = "''";
|
|
}
|
|
update = update.replaceFirst( "[?]email", email );
|
|
|
|
String codigo1 = (String) empresas[ t ][ 4 ];
|
|
String codigo2 = (String) empresas[ t ][ 5 ];
|
|
String codigo3 = (String) empresas[ t ][ 6 ];
|
|
String codigo = "'" + ( codigo1 != null ? codigo1 : "_" ) + "/"
|
|
+ ( codigo2 != null ? codigo2 : "_" ) + "/"
|
|
+ ( codigo3 != null ? codigo3 : "_" ) + "'";
|
|
update = update.replaceFirst( "[?]codigo", codigo );
|
|
update = update.replaceFirst( "[?]perfil_1", "null" );
|
|
update = update.replaceFirst( "[?]perfil_2", "null" );
|
|
update = update.replaceFirst( "[?]perfil_3", "null" );
|
|
update = update.replaceFirst( "[?]servicos", "null" );
|
|
|
|
queries[ 1 ] = update;
|
|
}
|
|
}
|
|
|
|
protected Object [][]doQuery( Connection con, String query )
|
|
throws Exception
|
|
{
|
|
return doQuery( con, query, false );
|
|
}
|
|
|
|
protected Object [][]doQuery( Connection con, String query, boolean isUpdate )
|
|
throws Exception
|
|
{
|
|
// if( con == webConnection )
|
|
// {
|
|
// System.out.println( "WEB" );
|
|
// }
|
|
// else
|
|
// {
|
|
// System.out.println( "LOCAL" );
|
|
// }
|
|
// if( query.indexOf( "INSERT" ) != -1 || query.indexOf( "UPDATE" ) != -1 )
|
|
// {
|
|
//// System.out.println( "AAAAAAAAAAAAAHHHHHHH" + query );
|
|
// return new Object[0][0];
|
|
// }
|
|
Statement stm = null;
|
|
stm = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE,
|
|
ResultSet.CONCUR_READ_ONLY );
|
|
if( isUpdate )
|
|
{
|
|
stm.executeUpdate( query );
|
|
return null;
|
|
}
|
|
ResultSet rs = stm.executeQuery( query );
|
|
|
|
if( rs == null )
|
|
{
|
|
return null;
|
|
}
|
|
ResultSetMetaData rsmd = rs.getMetaData();
|
|
int columns = rsmd.getColumnCount();
|
|
rs.last();
|
|
int rows = rs.getRow();
|
|
Object data[][] = new Object[ rows ][ columns ];
|
|
for( int i = 0; i < rows; ++i )
|
|
{
|
|
rs.absolute( i + 1 );
|
|
for( int j = 0; j < columns; j++ )
|
|
{
|
|
data[ i ][ j ] = rs.getObject( j + 1 );
|
|
}
|
|
}
|
|
return data;
|
|
}
|
|
|
|
protected static String unicodeToHTML( String text )
|
|
{
|
|
if( text == null || text.length() == 0 )
|
|
{
|
|
return "";
|
|
}
|
|
|
|
String output = text;
|
|
|
|
output = output.replaceAll( "\\\\u0009", " " );
|
|
output = output.replaceAll( "\\\\u000a", "<br>" );
|
|
|
|
output = output.replaceAll( "\\\\u00a0", " " );
|
|
|
|
output = output.replaceAll( "\\\\u00c0", "À" );
|
|
output = output.replaceAll( "\\\\u00c1", "Á" );
|
|
output = output.replaceAll( "\\\\u00c2", "Â" );
|
|
output = output.replaceAll( "\\\\u00c3", "Ã" );
|
|
output = output.replaceAll( "\\\\u00c7", "Ç" );
|
|
output = output.replaceAll( "\\\\u00c8", "È" );
|
|
output = output.replaceAll( "\\\\u00c9", "É" );
|
|
output = output.replaceAll( "\\\\u00ca", "Ê" );
|
|
output = output.replaceAll( "\\\\u00cc", "Ì" );
|
|
output = output.replaceAll( "\\\\u00cd", "Í" );
|
|
output = output.replaceAll( "\\\\u00ce", "Î" );
|
|
output = output.replaceAll( "\\\\u00d2", "Ò" );
|
|
output = output.replaceAll( "\\\\u00d3", "Ó" );
|
|
output = output.replaceAll( "\\\\u00d4", "Ô" );
|
|
output = output.replaceAll( "\\\\u00d5", "Õ" );
|
|
output = output.replaceAll( "\\\\u00d9", "Ù" );
|
|
output = output.replaceAll( "\\\\u00da", "Ú" );
|
|
output = output.replaceAll( "\\\\u00db", "Û" );
|
|
|
|
output = output.replaceAll( "\\\\u00e0", "à" );
|
|
output = output.replaceAll( "\\\\u00e1", "á" );
|
|
output = output.replaceAll( "\\\\u00e2", "â" );
|
|
output = output.replaceAll( "\\\\u00e3", "ã" );
|
|
output = output.replaceAll( "\\\\u00e7", "ç" );
|
|
output = output.replaceAll( "\\\\u00e8", "è" );
|
|
output = output.replaceAll( "\\\\u00e9", "é" );
|
|
output = output.replaceAll( "\\\\u00ea", "ê" );
|
|
output = output.replaceAll( "\\\\u00ec", "ì" );
|
|
output = output.replaceAll( "\\\\u00ed", "í" );
|
|
output = output.replaceAll( "\\\\u00ee", "î" );
|
|
output = output.replaceAll( "\\\\u00f2", "ò" );
|
|
output = output.replaceAll( "\\\\u00f3", "ó" );
|
|
output = output.replaceAll( "\\\\u00f4", "ô" );
|
|
output = output.replaceAll( "\\\\u00f5", "õ" );
|
|
output = output.replaceAll( "\\\\u00f9", "ù" );
|
|
output = output.replaceAll( "\\\\u00fa", "ú" );
|
|
output = output.replaceAll( "\\\\u00fb", "û" );
|
|
output = output.replaceAll( "\\\\u00aa", "ª" );
|
|
output = output.replaceAll( "\\\\u00ba", "º" );
|
|
|
|
output = output.replaceAll( "\\\\u0153", "œ" );
|
|
|
|
output = output.replaceAll( "\\\\u2013", "-" );
|
|
output = output.replaceAll( "\\\\u2014", "-" );
|
|
output = output.replaceAll( "\\\\u2018|\\\\u2019", "'" );
|
|
output = output.replaceAll( "\\\\u201c|\\\\u201d", "\"" );
|
|
|
|
output = output.replaceAll( "\\\\u2022", "*" );
|
|
output = output.replaceAll( "\\\\u2026", "..." );
|
|
|
|
return output;
|
|
}
|
|
|
|
|
|
}
|