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.
SIPRP/trunk/SIPRPSoft/src/siprp/planoactuacao/print/PlanoActuacaoPrintDataProvi...

239 lines
7.2 KiB

package siprp.planoactuacao.print;
import java.util.Date;
import java.util.Vector;
import siprp.planoactuacao.SingletonConstants;
import com.evolute.utils.Singleton;
import com.evolute.utils.arrays.Virtual2DArray;
import com.evolute.utils.db.DBManager;
import com.evolute.utils.db.Executer;
import com.evolute.utils.sql.Expression;
import com.evolute.utils.sql.Field;
import com.evolute.utils.sql.Select;
import com.evolute.utils.sql.Select2;
public class PlanoActuacaoPrintDataProvider
{
private static final Object LOCK = new Object();
private static PlanoActuacaoPrintDataProvider instance = null;
protected final Executer WEB_EXECUTER;
protected final Executer LOCAL_EXECUTER;
public PlanoActuacaoPrintDataProvider()
throws Exception
{
DBManager WEB_DBMANAGER = ( DBManager ) Singleton.getInstance( SingletonConstants.WEB_DBMANAGER );
WEB_EXECUTER = WEB_DBMANAGER.getSharedExecuter( this );
DBManager LOCAL_DBMANAGER = ( DBManager ) Singleton.getInstance( SingletonConstants.LOCAL_DBMANAGER );
LOCAL_EXECUTER = LOCAL_DBMANAGER.getSharedExecuter( this );
}
public static PlanoActuacaoPrintDataProvider getProvider()
throws Exception
{
synchronized( LOCK )
{
if( instance == null )
{
instance = new PlanoActuacaoPrintDataProvider();
}
}
return instance;
}
public PlanoActuacaoToPrint getPlanoToPrint( Integer id )
throws Exception
{
Select select =
new Select2(
new String[]{ "planos_actuacao" },
new Integer[]{},
new Expression[]{},
new String[]{ "empresa_id", "nome_empresa",
"estabelecimento_id", "nome_estabelecimento",
"data_relatorio", "data_visita", "observacoes_dl",
"observacoes_dns" },
new Field( "id" ).isEqual( id ),
null,
null,
null,
null );
Virtual2DArray array = WEB_EXECUTER.executeQuery( select );
Integer empresaId = ( Integer ) array.get( 0, 0 );
String nomeEmpresa = ( String ) array.get( 0, 1 );
Integer estabelecimentoId = ( Integer ) array.get( 0, 2 );
String nomeEstabelecimento = ( String ) array.get( 0, 3 );
Integer logoId = getLogotipoIdForEmpresaId( empresaId );
Date dataRelatorio = ( Date ) array.get( 0, 4 );
Date dataVisita = ( Date ) array.get( 0, 5 );
String observacoesDl = ( String ) array.get( 0, 6 );
String observacoesDns = ( String ) array.get( 0, 7 );
EmpresaToPrint empresa = new EmpresaToPrint( nomeEmpresa, "http://apdp/siprp/auchan_jumbo_lado.jpg",
nomeEstabelecimento );
PlanoActuacaoToPrint plano =
new PlanoActuacaoToPrint(
empresa,
dataRelatorio != null ? new DataToPrint( "data-relatorio", dataRelatorio ) : null,
dataVisita != null ? new DataToPrint( "data-hs", dataVisita ) : null,
getLegislacaoAplicavel( empresaId, estabelecimentoId ),
getAreasToPrintByPlanoId( id ),
observacoesDl,
observacoesDns );
return plano;
}
public Integer getLogotipoIdForEmpresaId( Integer empresaId )
throws Exception
{
Select select =
new Select2(
new String[]{ "empresas" },
new Integer[]{},
new Expression[]{},
new String[]{ "empresa_logo_id" },
new Field( "id" ).isEqual( empresaId ),
null,
null,
null,
null );
Virtual2DArray array = LOCAL_EXECUTER.executeQuery( select );
return ( Integer ) array.get( 0, 0 );
}
public LegislacaoAplicavelToPrint getLegislacaoAplicavel( Integer empresaId, Integer estabelecimentoId )
throws Exception
{
LegislacaoAplicavelToPrint legislacao = new LegislacaoAplicavelToPrint( new Vector<String>() );
return legislacao;
}
public Vector<AreaToPrint> getAreasToPrintByPlanoId( Integer planoId )
throws Exception
{
Vector<AreaToPrint> areas = new Vector<AreaToPrint>();
Select select =
new Select2(
new String[]{ "plano_areas" },
new Integer[]{},
new Expression[]{},
new String[]{ "id", "descricao" },
new Field( "plano_id" ).isEqual( planoId ),
new String[]{ "id" },
null,
null,
null );
Virtual2DArray array = WEB_EXECUTER.executeQuery( select );
for( int n = 0; n < array.columnLength(); n++ )
{
Integer areaId = ( Integer ) array.get( n, 0 );
String areaDescricao = ( String ) array.get( n, 1 );
areas.add( new AreaToPrint( areaDescricao, getRiscosToPrintByAreaId( areaId ) ) );
}
return areas;
}
public Vector<RiscoToPrint> getRiscosToPrintByAreaId( Integer areaId )
throws Exception
{
Vector<RiscoToPrint> riscos = new Vector<RiscoToPrint>();
Select select =
new Select2(
new String[]{ "plano_riscos" },
new Integer[]{},
new Expression[]{},
new String[]{ "id", "descricao", "valor", "responsavel_execucao",
"recursos_necessarios", "data_inicio", "data_fim",
"parecer_dl", "parecer_dns", "verificacao_siprp"},
new Field( "area_id" ).isEqual( areaId ).and(
new Field( "activo" ).isEqual( "y" ) ),
new String[]{ "id" },
null,
null,
null );
Virtual2DArray array = WEB_EXECUTER.executeQuery( select );
for( int n = 0; n < array.columnLength(); n++ )
{
Integer id = ( Integer ) array.get( n, 0 );
String descricao = ( String ) array.get( n, 1 );
Integer valor = ( Integer ) array.get( n, 2 );
String responsavelExecucao = ( String ) array.get( n, 3 );
String recursosNecessarios = ( String ) array.get( n, 4 );
Date dataInicio = ( Date ) array.get( n, 5 );
Date dataFim = ( Date ) array.get( n, 6 );
String parecerDl = ( String ) array.get( n, 7 );
String parecerDns = ( String ) array.get( n, 8 );
String verificacaoSiprp = ( String ) array.get( n, 9 );
riscos.add(
new RiscoToPrint(
descricao,
valor,
getMedidasToPrintByRiscoId( id ),
responsavelExecucao,
recursosNecessarios,
dataInicio != null ? new DataToPrint( "data-prevista-inicio", dataInicio ) : null,
dataFim != null ? new DataToPrint( "data-prevista-conclusao", dataFim ) : null,
parecerDl,
parecerDns,
verificacaoSiprp ) );
}
return riscos;
}
public Vector<MedidaToPrint> getMedidasToPrintByRiscoId( Integer riscoId )
throws Exception
{
Vector<MedidaToPrint> medidas = new Vector<MedidaToPrint>();
Select select =
new Select2(
new String[]{ "plano_medidas" },
new Integer[]{},
new Expression[]{},
new String[]{ "id", "descricao" },
new Field( "risco_id" ).isEqual( riscoId ),
new String[]{ "id" },
null,
null,
null );
Virtual2DArray array = WEB_EXECUTER.executeQuery( select );
for( int n = 0; n < array.columnLength(); n++ )
{
Integer id = ( Integer ) array.get( n, 0 );
String descricao = ( String ) array.get( n, 1 );
medidas.add(
new MedidaToPrint(
descricao,
getPostosToPrintByMedidaId( id ) ) );
}
return medidas;
}
public Vector<PostoToPrint> getPostosToPrintByMedidaId( Integer medidaId )
throws Exception
{
Vector<PostoToPrint> postos = new Vector<PostoToPrint>();
Select select =
new Select2(
new String[]{ "plano_postos_trabalho" },
new Integer[]{},
new Expression[]{},
new String[]{ "id", "descricao" },
new Field( "medida_id" ).isEqual( medidaId ),
new String[]{ "id" },
null,
null,
null );
Virtual2DArray array = WEB_EXECUTER.executeQuery( select );
for( int n = 0; n < array.columnLength(); n++ )
{
String descricao = ( String ) array.get( n, 1 );
postos.add( new PostoToPrint( descricao ) );
}
return postos;
}
}