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.
267 lines
8.0 KiB
267 lines
8.0 KiB
/*
|
|
* FichaDataProvider.java
|
|
*
|
|
* Created on 30 de Março de 2004, 11:31
|
|
*/
|
|
|
|
package siprp;
|
|
|
|
import com.evolute.utils.*;
|
|
import com.evolute.utils.arrays.*;
|
|
import com.evolute.utils.db.*;
|
|
import com.evolute.utils.db.keyretrievers.*;
|
|
import com.evolute.utils.metadb.*;
|
|
import com.evolute.utils.ui.search.*;
|
|
import com.evolute.utils.sql.*;
|
|
|
|
/**
|
|
*
|
|
* @author pars
|
|
*/
|
|
public class FichaDataProvider extends MetaProvider implements SearchExecuter {
|
|
|
|
private static final Object LOCK = new Object();
|
|
private static FichaDataProvider instance = null;
|
|
private final Executer executer;
|
|
|
|
// empresas
|
|
public static final String T_EMPRESAS = "empresas";
|
|
public static final String ID = "id";
|
|
public static final String DESIGNACAO_SOCIAL = "designacao_social";
|
|
public static final String SERVICO_SAUDE_TIPO = "servico_saude_tipo";
|
|
public static final String SERVICO_SAUDE_DESIGNACAO = "servico_saude_designacao";
|
|
public static final String SERVICO_HIGIENE_TIPO = "servico_higiene_tipo";
|
|
public static final String SERVICO_HIGIENE_DESIGNACAO = "servico_higiene_designacao";
|
|
public static final String INACTIVO = "inactivo";
|
|
|
|
public static final DBTable EMPRESAS =
|
|
new DBTable( T_EMPRESAS,
|
|
new String[]{ DESIGNACAO_SOCIAL,
|
|
SERVICO_SAUDE_TIPO,
|
|
SERVICO_SAUDE_DESIGNACAO,
|
|
SERVICO_HIGIENE_TIPO,
|
|
SERVICO_HIGIENE_DESIGNACAO,
|
|
INACTIVO },
|
|
ID );
|
|
|
|
// estabelecimentos
|
|
public static final String T_ESTABELECIMENTOS = "estabelecimentos";
|
|
// ID
|
|
public static final String NOME = "nome";
|
|
public static final String LOCALIDADE = "localidade";
|
|
public static final String EMPRESA_ID = "empresa_id";
|
|
// INACTIVO
|
|
|
|
public static final DBTable ESTABELECIMENTOS =
|
|
new DBTable( T_ESTABELECIMENTOS,
|
|
new String[]{ NOME, LOCALIDADE, EMPRESA_ID, INACTIVO },
|
|
ID );
|
|
|
|
// trabalhadores
|
|
public static final String T_TRABALHADORES = "trabalhadores";
|
|
// ID
|
|
// public static final String NOME = "nome";
|
|
public static final String SEXO = "sexo";
|
|
public static final String DATA_NASCIMENTO = "data_nascimento";
|
|
public static final String NACIONALIDADE = "nacionalidade";
|
|
public static final String NUMERO_MECANOGRAFICO = "numero_mecanografico";
|
|
public static final String DATA_ADMISSAO = "data_admissao";
|
|
public static final String CATEGORIA = "categoria";
|
|
public static final String LOCAL_TRABALHO = "local_trabalho";
|
|
public static final String FUNCAO_PROPOSTA = "funcao_proposta";
|
|
public static final String DATA_ADMISSAO_FUNCAO = "data_admissao_funcao";
|
|
public static final String ESTABELECIMENTO_ID = "estabelecimento_id";
|
|
// INACTIVO
|
|
|
|
public static final DBTable TRABALHADORES =
|
|
new DBTable( T_TRABALHADORES,
|
|
new String[]{ NOME, SEXO, DATA_NASCIMENTO,
|
|
NACIONALIDADE, NUMERO_MECANOGRAFICO,
|
|
DATA_ADMISSAO, CATEGORIA, LOCAL_TRABALHO,
|
|
FUNCAO_PROPOSTA, DATA_ADMISSAO_FUNCAO,
|
|
ESTABELECIMENTO_ID, INACTIVO },
|
|
ID );
|
|
|
|
// exames
|
|
public static final String T_EXAMES = "exames";
|
|
// ID
|
|
public static final String OBSERVACOES = "observacoes";
|
|
public static final String DATA = "data";
|
|
public static final String TIPO = "tipo";
|
|
public static final String OCASIONAL = "ocasional";
|
|
public static final String OUTRO_TIPO = "outro_tipo";
|
|
public static final String RESULTADO = "resultado";
|
|
public static final String OUTRA_FUNCAO_1 = "outra_funcao_1";
|
|
public static final String OUTRA_FUNCAO_2 = "outra_funcao_2";
|
|
public static final String OUTRA_FUNCAO_3 = "outra_funcao_3";
|
|
public static final String OUTRA_FUNCAO_4 = "outra_funcao_4";
|
|
public static final String PROXIMO_EXAME = "proximo_exame";
|
|
public static final String OUTRAS_RECOMENDACOES = "outras_recomendacoes";
|
|
public static final String TRABALHADOR_ID = "trabalhador_id";
|
|
|
|
public static final DBTable EXAMES =
|
|
new DBTable( T_EXAMES,
|
|
new String[]{ OBSERVACOES, DATA, TIPO, OCASIONAL,
|
|
OUTRO_TIPO, RESULTADO, OUTRA_FUNCAO_1,
|
|
OUTRA_FUNCAO_2, OUTRA_FUNCAO_3,
|
|
OUTRA_FUNCAO_4, PROXIMO_EXAME,
|
|
OUTRAS_RECOMENDACOES, TRABALHADOR_ID },
|
|
ID );
|
|
|
|
// public static DBReference
|
|
static
|
|
{
|
|
try
|
|
{
|
|
EXAMES.addRelation( TRABALHADORES,
|
|
new DBField[]{ EXAMES.getFieldByName( TRABALHADOR_ID ) },
|
|
"R_EXAMES_TRABALHADORES" );
|
|
TRABALHADORES.addRelation( ESTABELECIMENTOS,
|
|
new DBField[]{ TRABALHADORES.getFieldByName( ESTABELECIMENTO_ID ) },
|
|
"R_TRABALHADORES_ESTABELECIMENTOS" );
|
|
ESTABELECIMENTOS.addRelation( EMPRESAS,
|
|
new DBField[]{ ESTABELECIMENTOS.getFieldByName( EMPRESA_ID ) },
|
|
"R_ESTABELECIMENTOS_EMPRESAS" );
|
|
}
|
|
catch( Exception e )
|
|
{
|
|
throw new RuntimeException( e );
|
|
}
|
|
}
|
|
|
|
public static final int SEARCH_EMPRESAS = 0;
|
|
public static final int SEARCH_ESTABELECIMENTOS = 1;
|
|
public static final int SEARCH_TRABALHADORES = 2;
|
|
public static final int SEARCH_EXAMES = 3;
|
|
private int SEARCH = 0;
|
|
private int SEARCH_EMPRESAS_ID = -1;
|
|
private int SEARCH_ESTABELECIMENTOS_ID = -1;
|
|
private int SEARCH_TRABALHADORES_ID = -1;
|
|
private int SEARCH_EXAMES_ID = -1;
|
|
|
|
|
|
/** Creates a new instance of FichaDataProvider */
|
|
public FichaDataProvider()
|
|
throws Exception
|
|
{
|
|
DBManager dbm = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER /*SingletonConstants.DBMANAGER*/ );
|
|
executer = dbm.getSharedExecuter( this );
|
|
|
|
setDBTable( EXAMES );
|
|
setKeyRetriever( JDBCAutoKeyRetriever.DEFAULT );
|
|
}
|
|
|
|
public static MetaProvider getProvider()
|
|
throws Exception
|
|
{
|
|
synchronized( LOCK )
|
|
{
|
|
if( instance == null )
|
|
{
|
|
instance = new FichaDataProvider();
|
|
}
|
|
}
|
|
return instance;
|
|
}
|
|
|
|
public String[] getColumnNames() {
|
|
return new String[]{ "Nome" };
|
|
}
|
|
|
|
public String getSearchTitle() {
|
|
switch( SEARCH )
|
|
{
|
|
case SEARCH_EMPRESAS:
|
|
return "Procurar empresa";
|
|
case SEARCH_ESTABELECIMENTOS:
|
|
return "Procurar estabelecimento";
|
|
case SEARCH_TRABALHADORES:
|
|
return "Procurar trabalhador";
|
|
case SEARCH_EXAMES:
|
|
return "Procurar exame";
|
|
}
|
|
return "";
|
|
}
|
|
|
|
public boolean hasDetails() {
|
|
return false;
|
|
}
|
|
|
|
public void setSearch( int what )
|
|
{
|
|
switch( what )
|
|
{
|
|
case SEARCH_EMPRESAS:
|
|
case SEARCH_ESTABELECIMENTOS:
|
|
case SEARCH_TRABALHADORES:
|
|
case SEARCH_EXAMES:
|
|
SEARCH = what;
|
|
break;
|
|
}
|
|
}
|
|
|
|
public void setSearchID( int what, int id )
|
|
{
|
|
switch( what )
|
|
{
|
|
case SEARCH_EMPRESAS:
|
|
SEARCH_EMPRESAS_ID = id;
|
|
break;
|
|
case SEARCH_ESTABELECIMENTOS:
|
|
SEARCH_ESTABELECIMENTOS_ID = id;
|
|
break;
|
|
case SEARCH_TRABALHADORES:
|
|
SEARCH_TRABALHADORES_ID = id;
|
|
break;
|
|
case SEARCH_EXAMES:
|
|
SEARCH_EXAMES_ID = id;
|
|
break;
|
|
}
|
|
}
|
|
|
|
public Virtual2DArray search( String pattern ) throws Exception {
|
|
switch( SEARCH )
|
|
{
|
|
case SEARCH_EMPRESAS:
|
|
return searchEmpresas( pattern );
|
|
case SEARCH_ESTABELECIMENTOS:
|
|
return searchEstabelecimentos( pattern );
|
|
case SEARCH_TRABALHADORES:
|
|
return searchTrabalhadores( pattern );
|
|
case SEARCH_EXAMES:
|
|
return searchExames( pattern );
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public Virtual2DArray searchEmpresas( String pattern ) throws Exception {
|
|
Select select = new Select( "SELECT e.id, e.designacao_social FROM empresas e ORDER BY lower( e.designacao_social );" );
|
|
return executer.executeQuery( select );
|
|
}
|
|
|
|
public Virtual2DArray searchEstabelecimentos( String pattern ) throws Exception {
|
|
Select select = new Select( "SELECT e.id, e.nome FROM estabelecimentos e WHERE empresa_id = " + SEARCH_EMPRESAS_ID
|
|
+ " ORDER BY lower( e.nome )");
|
|
return executer.executeQuery( select );
|
|
}
|
|
|
|
public Virtual2DArray searchTrabalhadores( String pattern ) throws Exception {
|
|
Select select =
|
|
new Select( "SELECT t.id, t.nome FROM trabalhadores t, estabelecimentos es "
|
|
+ " WHERE t.estabelecimento_id = es.id "
|
|
+ " AND es.empresa_id = " + SEARCH_EMPRESAS_ID + " ORDE BY lower(t.nome);" );
|
|
return executer.executeQuery( select );
|
|
}
|
|
|
|
public Virtual2DArray searchExames( String pattern ) throws Exception {
|
|
Select select = new Select( "SELECT e.id, e.data FROM exames e "
|
|
+ " WHERE e.trabalhador_id = " + SEARCH_TRABALHADORES_ID
|
|
+ " ORDER BY e.data DESC;" );
|
|
return executer.executeQuery( select );
|
|
}
|
|
|
|
public void showDetails(SearchDialog dialog, Object o) throws Exception {
|
|
}
|
|
|
|
}
|