forked from Coded/SIPRP
git-svn-id: https://svn.coded.pt/svn/SIPRP@1820 bb69d46d-e84e-40c8-a05a-06db0d633741
parent
510d2b5dfb
commit
1bc3d932c9
@ -0,0 +1,465 @@
|
||||
package importer;
|
||||
|
||||
import com.evolute.utils.error.ErrorLogger;
|
||||
import db.data.siprp.outer.PlanoValoresQualitativosData;
|
||||
import db.entidades.Area;
|
||||
import db.entidades.Medida;
|
||||
import db.entidades.PlanoActuacao;
|
||||
import db.entidades.PostoTrabalho;
|
||||
import db.entidades.Risco;
|
||||
import db.entidades.Utilizador;
|
||||
import db.entidades.Valor;
|
||||
import db.entidades.ValorQualitativo;
|
||||
import db.providers.EvoBaseProvider;
|
||||
import db.providers.UtilizadoresDataProvider;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import utils.Global;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.Set;
|
||||
import mail.Mail;
|
||||
import mail.MailNextPhase;
|
||||
import mail.MailNextPhase.SIPRP_TO_RESPONSAVEL_SEGURANCA;
|
||||
import shst.companydataloaders.SIPRPPropertiesLoader;
|
||||
import shst.data.outer.HsRelatorioData;
|
||||
import shst.data.provider.PlanoActuacaoDataProvider;
|
||||
import utils.PlanosActuacaoLogger;
|
||||
|
||||
|
||||
public class PlanosActuacaoImporter
|
||||
{
|
||||
|
||||
public static void main( final String[] args )
|
||||
{
|
||||
try
|
||||
{
|
||||
System.out.println( "\nInit: properties ..." );
|
||||
readProperties( args );
|
||||
|
||||
System.out.println( "\nInit: db ..." );
|
||||
EvoBaseProvider.getInstance();
|
||||
|
||||
System.out.println( "\nInit: PA logger ..." );
|
||||
PlanosActuacaoLogger.init();
|
||||
|
||||
System.out.println( "\nInit: A importar Planos de Actua\u00E7\u00E3o ..." );
|
||||
PlanosActuacaoImporter.getInstace().init();
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
e.printStackTrace( System.out );
|
||||
}
|
||||
}
|
||||
|
||||
private static void readProperties( String[] args ) throws Exception
|
||||
{
|
||||
args = new String[]{ "/home/fpalma/workspace/PlanosActuacao/properties/0-Importer/app.properties" };
|
||||
if ( args != null && args.length > 0 )
|
||||
{
|
||||
String filepath = args[ 0 ];
|
||||
File f = new File( filepath );
|
||||
if ( f.isFile() )
|
||||
{
|
||||
Properties props = new Properties();
|
||||
props.load( new FileInputStream( f ) );
|
||||
Iterator< Object > it = props.keySet().iterator();
|
||||
while ( it.hasNext() )
|
||||
{
|
||||
Object key = it.next();
|
||||
Object value = props.get( key );
|
||||
System.setProperty( ( String ) key, ( String ) value );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new IllegalArgumentException( "USAGE: java PlanosActuacaoImporter <app.properties path>" );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// throw new IllegalArgumentException( "USAGE: java PlanosActuacaoImporter <app.properties path>" );
|
||||
System.out.println( "\tNo properties file given. Trying to use project properties ..." );
|
||||
readProjectProperties();
|
||||
}
|
||||
}
|
||||
|
||||
private static void readProjectProperties() throws Exception
|
||||
{
|
||||
SIPRPPropertiesLoader.forceEncryptedPropertiesFile = false;
|
||||
SIPRPPropertiesLoader.getInstance().load();
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void debug( String debugMessage )
|
||||
{
|
||||
System.out.println( debugMessage );
|
||||
}
|
||||
|
||||
|
||||
private static PlanosActuacaoImporter INSTANCE = null;
|
||||
|
||||
private PlanosActuacaoImporter()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public static synchronized PlanosActuacaoImporter getInstace()
|
||||
{
|
||||
if ( INSTANCE == null )
|
||||
{
|
||||
INSTANCE = new PlanosActuacaoImporter();
|
||||
}
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
public void init()
|
||||
{
|
||||
initRelatorios( null, null );
|
||||
}
|
||||
|
||||
// private List< PlanoActuacao > planosList;
|
||||
// private List< Date > planosOnlineList;
|
||||
|
||||
// public PlanosActuacao( Utilizador u )
|
||||
// {
|
||||
// try
|
||||
// {
|
||||
// //rdp = new RelatoriosDataProvider();
|
||||
// Integer estabelecimentoId = null;
|
||||
// if(u.getTipo().intValue() != Global.TECNICO_HS && u.getTipo().intValue() != Global.DIRECTOR_SIPRP)
|
||||
// {
|
||||
// estabelecimentoId = u.getEstabelecimento_id();
|
||||
// }
|
||||
// List< Date > planosOnlineList = getPlanosOnline( estabelecimentoId );
|
||||
// System.out.println("PLANOS ONLINE LIST : " + planosOnlineList.size());
|
||||
// initRelatorios( planosOnlineList, estabelecimentoId );
|
||||
// }
|
||||
// catch ( Exception ex )
|
||||
// {
|
||||
// ErrorLogger.logException( ex );
|
||||
// }
|
||||
// }
|
||||
|
||||
// private List< Date > getPlanosOnline( Integer estabelecimentoId )
|
||||
// {
|
||||
// List< Date > list = null;
|
||||
// try
|
||||
// {
|
||||
// if ( estabelecimentoId != null )
|
||||
// {
|
||||
// CreatePlanosDataProvider cpdp = CreatePlanosDataProvider.getInstance();
|
||||
// list = cpdp.getPlanosOnline( estabelecimentoId );
|
||||
// }
|
||||
// }
|
||||
// catch ( Exception ex )
|
||||
// {
|
||||
// ErrorLogger.logException( ex );
|
||||
// }
|
||||
// return list == null ? new LinkedList< Date >() : list;
|
||||
// }
|
||||
|
||||
private void initRelatorios( List< Date > datesList, Integer fromEstabelecimentoID )
|
||||
{
|
||||
debug("\ninitRelatorios( " + datesList + ", " + fromEstabelecimentoID + " ) : ");
|
||||
try
|
||||
{
|
||||
PlanosActuacaoImporterProvider provider = PlanosActuacaoImporterProvider.getInstance();
|
||||
PlanoActuacaoDataProvider planosProvider = PlanoActuacaoDataProvider.getProvider();
|
||||
|
||||
debug( "\n\tA adicionar novos valores qualitativos" );
|
||||
List<ValorQualitativo> valoresQualitativos = provider.getValoresQualitativos();
|
||||
putValoresQualitativosOnline( valoresQualitativos );
|
||||
debug( "\n\tTerminou adicao de novos valores qualitativos" );
|
||||
if ( fromEstabelecimentoID == null )
|
||||
{
|
||||
debug( "\n\tA adicionar novos planos ..." );
|
||||
|
||||
List< Integer > estabelecimentos = provider.getEstabelecimentosWithPlanos();
|
||||
putPlanosOnline( planosProvider.getRelatoriosNotIn( estabelecimentos ) );
|
||||
|
||||
estabelecimentos = provider.getEstabelecimentosWithPlanos();
|
||||
debug("\n\tA adicionar planos a estabelecimentos anteriores");
|
||||
for ( Integer estabelecimentoID : estabelecimentos )
|
||||
{
|
||||
try
|
||||
{
|
||||
debug( "\n\t\tA importar relatorio para o estabelecimento: " + estabelecimentoID );
|
||||
List< Date > datas = provider.getPlanosOnline( estabelecimentoID );
|
||||
if ( datas.isEmpty() )
|
||||
{
|
||||
debug("\n\t\t\tNenhuma data de relatorio para o estabelecimento: " + estabelecimentoID);
|
||||
}
|
||||
else
|
||||
{
|
||||
List< HsRelatorioData > relatorios = planosProvider.getRelatoriosNotIn( datas, estabelecimentoID );
|
||||
if ( relatorios.isEmpty() )
|
||||
{
|
||||
debug("\n\t\t\tNenhum relatorio novo para o estabelecimento: " + estabelecimentoID);
|
||||
}
|
||||
else
|
||||
{
|
||||
putPlanosOnline( relatorios );
|
||||
}
|
||||
}
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
ErrorLogger.logException( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
putPlanosOnline(planosProvider.getRelatoriosNotIn(datesList, fromEstabelecimentoID));
|
||||
}
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
System.out.println( "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " + e.getMessage() );
|
||||
e.printStackTrace();
|
||||
ErrorLogger.logException( e );
|
||||
}
|
||||
}
|
||||
|
||||
private void putPlanosOnline( List< HsRelatorioData > listRelatorios )
|
||||
{
|
||||
debug("\n\t\t\tputPlanosOnline (" + listRelatorios == null ? "[null]" : "" + listRelatorios.size());
|
||||
for ( HsRelatorioData relatorio : listRelatorios )
|
||||
{
|
||||
debug("\t\t\t\tRelatorioID : " + relatorio.getId());
|
||||
try
|
||||
{
|
||||
PlanoActuacao p = createPlano( relatorio );
|
||||
if ( p != null )
|
||||
{
|
||||
enviarMail( p );
|
||||
}
|
||||
}
|
||||
catch ( Exception ex )
|
||||
{
|
||||
debug("\nERRO NA CRIACAO DOS PLANOS : " + ex.getMessage());
|
||||
ErrorLogger.logException( ex );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private PlanoActuacao createPlano( HsRelatorioData relatorio ) throws Exception
|
||||
{
|
||||
debug("\n\t\t\t\t\tCREATE PLANO - RELATORIO ID : " + relatorio.getId());
|
||||
|
||||
PlanosActuacaoImporterProvider provider = PlanosActuacaoImporterProvider.getInstance();
|
||||
|
||||
PlanoActuacao p = new PlanoActuacao();
|
||||
p.setData_visita( relatorio.toMarcacao_id().getData() );
|
||||
|
||||
if ( relatorio.toMarcacao_id().toTecnico_hst() != null )
|
||||
{
|
||||
p.setTecnico_hs_id( relatorio.toMarcacao_id().toTecnico_hst().getId() );
|
||||
p.setTecnico_hs_nome( relatorio.toMarcacao_id().toTecnico_hst().getNome() );
|
||||
}
|
||||
|
||||
if ( relatorio.toMarcacao_id().toTecnico_superior_hst() != null )
|
||||
{
|
||||
p.setTecnico_superior_hs_id( relatorio.toMarcacao_id().toTecnico_superior_hst().getId() );
|
||||
p.setTecnico_superior_hs_nome( relatorio.toMarcacao_id().toTecnico_superior_hst().getNome() );
|
||||
}
|
||||
|
||||
p.setFase( new Integer( Global.FASE_SEGURANCA_PREENCHIMENTO ) );
|
||||
|
||||
p.setEstabelecimento_id( relatorio.toMarcacao_id().toEstabelecimento_id().getId() );
|
||||
p.setEmpresa_id( relatorio.toMarcacao_id().toEstabelecimento_id().toEmpresa_id().getId() );
|
||||
try
|
||||
{
|
||||
p.setNome_empresa( utils.Utils.unicodeToHTML( provider.getEmpresaNome( p.getEmpresa_id() ) ) );
|
||||
}
|
||||
catch ( Exception ex )
|
||||
{
|
||||
ErrorLogger.logException( ex );
|
||||
}
|
||||
p.setNome_estabelecimento( relatorio.toMarcacao_id().toEstabelecimento_id().getNome() );
|
||||
p.setData_relatorio( relatorio.getData() );
|
||||
p.setData_disponibilizacao( relatorio.getIs_submetido() );
|
||||
p.setHs_relatorio_id( relatorio.getId() );
|
||||
|
||||
p = provider.getFullPlano( p, relatorio.getId() );
|
||||
if ( p.getAreas() != null )
|
||||
{
|
||||
if ( p.getAreas().size() > 0 )
|
||||
{
|
||||
p.setId( provider.createPlano( p ) );
|
||||
debug("\n\t\t\t\t\t\tCREATE PLANO - PLANO ID : " + p.getId());
|
||||
if ( p.getAreas() != null )
|
||||
{
|
||||
createAreas( p.getId(), p.getAreas() );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
p = null;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
p = null;
|
||||
}
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
private void createAreas( Integer plano_id, List< Area > areas ) throws Exception
|
||||
{
|
||||
PlanosActuacaoImporterProvider provider = PlanosActuacaoImporterProvider.getInstance();
|
||||
for ( Area a : areas )
|
||||
{
|
||||
a.setPlano_id( plano_id );
|
||||
a.setId( provider.createArea( a ) );
|
||||
System.out.println( "AREA =: " + a.getId().toString() );
|
||||
if ( a.getRiscos() != null )
|
||||
{
|
||||
System.out.println( "AREA RISCOS: " + a.getRiscos().size() );
|
||||
createRiscos( a.getId(), a.getRiscos() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void createRiscos( Integer area_id, List< Risco > riscos ) throws Exception
|
||||
{
|
||||
PlanosActuacaoImporterProvider provider = PlanosActuacaoImporterProvider.getInstance();
|
||||
for ( Risco r : riscos )
|
||||
{
|
||||
r.setArea_id( area_id );
|
||||
System.out.println( "CREATE RISCO: " );
|
||||
if ( r.getValores() != null )
|
||||
{
|
||||
for ( Valor v : r.getValores() )
|
||||
{
|
||||
r.setValorQuantitativo( v.getValorQuantitativo() );
|
||||
r.setValorQualitativoID( v.getValorQualitativoID() );
|
||||
r.setId( provider.createRisco( r ) );
|
||||
}
|
||||
}
|
||||
if ( r.getMedidas() != null )
|
||||
{
|
||||
createMedidas( r.getId(), r.getMedidas() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void createMedidas( Integer risco_id, List< Medida > medidas ) throws Exception
|
||||
{
|
||||
PlanosActuacaoImporterProvider provider = PlanosActuacaoImporterProvider.getInstance();
|
||||
for ( Medida m : medidas )
|
||||
{
|
||||
m.setRisco_id( risco_id );
|
||||
m.setId( provider.createMedida( m ) );
|
||||
if ( m.getPostos() != null )
|
||||
{
|
||||
createPostos( m.getId(), m.getPostos() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void createPostos( Integer medida_id, List< PostoTrabalho > postos ) throws Exception
|
||||
{
|
||||
PlanosActuacaoImporterProvider provider = PlanosActuacaoImporterProvider.getInstance();
|
||||
for ( PostoTrabalho p : postos )
|
||||
{
|
||||
p.setMedida_id( medida_id );
|
||||
provider.createPostoTrabalho( p );
|
||||
}
|
||||
}
|
||||
|
||||
private void putValoresQualitativosOnline( List<ValorQualitativo> valoresQualitativos )
|
||||
throws Exception
|
||||
{
|
||||
System.out.println( "putValoresQualitativosOnline: " + valoresQualitativos.size() );
|
||||
List<PlanoValoresQualitativosData> valoresOnline = PlanosActuacaoImporterProvider.getInstance().getValoresQualitativosOnline();
|
||||
Set<PlanoValoresQualitativosData> valoresOnlineSet = new HashSet<PlanoValoresQualitativosData>();
|
||||
Map<Integer, PlanoValoresQualitativosData> valoresOnlineIdsSet = new HashMap<Integer,PlanoValoresQualitativosData>();
|
||||
valoresOnlineSet.addAll( valoresOnline );
|
||||
for( PlanoValoresQualitativosData valorOnline : valoresOnlineSet )
|
||||
{
|
||||
valoresOnlineIdsSet.put( valorOnline.getId(), valorOnline );
|
||||
}
|
||||
for( ValorQualitativo valorQualitativo : valoresQualitativos )
|
||||
{
|
||||
if( valoresOnlineIdsSet.containsKey( valorQualitativo.getId() ) )
|
||||
{
|
||||
PlanosActuacaoImporterProvider.getInstance().updateValorQualitativo( valorQualitativo );
|
||||
valoresOnlineSet.remove( valoresOnlineIdsSet.get( valorQualitativo.getId() ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
PlanosActuacaoImporterProvider.getInstance().createValorQualitativo( valorQualitativo );
|
||||
}
|
||||
}
|
||||
for( PlanoValoresQualitativosData valorOnline : valoresOnlineSet )
|
||||
{
|
||||
PlanosActuacaoImporterProvider.getInstance().deleteValorQualitativo( valorOnline.getId() );
|
||||
}
|
||||
}
|
||||
|
||||
private void enviarMail( PlanoActuacao p )
|
||||
{
|
||||
Boolean isDebug = SIPRPPropertiesLoader.getInstance().findProperty( "debug", false );
|
||||
|
||||
if ( ! isDebug )
|
||||
{
|
||||
MailNextPhase nextPhase = null;
|
||||
|
||||
int fase = p.getFase().intValue();
|
||||
int tipo_utilizador = 0;
|
||||
switch ( fase )
|
||||
{
|
||||
case Global.FASE_SEGURANCA_PREENCHIMENTO : // SIPRP para RS
|
||||
tipo_utilizador = Global.RESPONSAVEL_SEGURANCA;
|
||||
nextPhase = new SIPRP_TO_RESPONSAVEL_SEGURANCA( p );
|
||||
break;
|
||||
}
|
||||
|
||||
if ( nextPhase != null )
|
||||
{
|
||||
String responsavel_loja = "n";
|
||||
if ( tipo_utilizador == Global.RESPONSAVEL_SEGURANCA )
|
||||
{
|
||||
responsavel_loja = "y";
|
||||
}
|
||||
try
|
||||
{
|
||||
Mail mail = new Mail();
|
||||
|
||||
UtilizadoresDataProvider udp = UtilizadoresDataProvider.getInstance();
|
||||
List< Utilizador > list = udp.getUtilizadoresListByTipo( tipo_utilizador, responsavel_loja, p.getEstabelecimento_id() );
|
||||
ListIterator iter = list.listIterator();
|
||||
while ( iter.hasNext() )
|
||||
{
|
||||
Utilizador u = ( Utilizador ) iter.next();
|
||||
System.out.println( "\t\tUSER MAIL NEXT FASE : " + u.getLogin() + " ; " + u.getEmail() );
|
||||
try
|
||||
{
|
||||
mail.send( u.getEmail(), Mail.ENDERECO_ENVIO, nextPhase );
|
||||
System.out.println( "\t\t\tEMAIL ENVIADO !!" );
|
||||
}
|
||||
catch ( Exception ex1 )
|
||||
{
|
||||
ErrorLogger.logException( ex1 );
|
||||
System.out.println("\t\t\tMAIL ERROR : " + ex1.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
catch ( Exception ex )
|
||||
{
|
||||
ErrorLogger.logException( ex );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,659 @@
|
||||
package importer;
|
||||
|
||||
import db.providers.*;
|
||||
import com.evolute.utils.arrays.Virtual2DArray;
|
||||
import com.evolute.utils.error.ErrorLogger;
|
||||
import com.evolute.utils.sql.Expression;
|
||||
import com.evolute.utils.sql.Field;
|
||||
import com.evolute.utils.sql.Select2;
|
||||
import db.DBConstants.DB;
|
||||
import db.data.siprp.outer.PlanoAreasData;
|
||||
import db.data.siprp.outer.PlanoMedidasData;
|
||||
import db.data.siprp.outer.PlanoPostosTrabalhoData;
|
||||
import db.data.siprp.outer.PlanoRiscosData;
|
||||
import db.data.siprp.outer.PlanosActuacaoData;
|
||||
import db.data.siprp.outer.PlanoValoresQualitativosData;
|
||||
import db.data.siprp_local.outer.EmpresasData;
|
||||
import db.entidades.Area;
|
||||
import db.entidades.Medida;
|
||||
import db.entidades.PlanoActuacao;
|
||||
import db.entidades.PostoTrabalho;
|
||||
import db.entidades.Risco;
|
||||
import db.entidades.Valor;
|
||||
import db.entidades.ValorQualitativo;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.Statement;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import utils.Utils;
|
||||
|
||||
|
||||
public class PlanosActuacaoImporterProvider extends GenericDataProvider
|
||||
{
|
||||
private static PlanosActuacaoImporterProvider INSTANCE = null;
|
||||
|
||||
private PlanosActuacaoImporterProvider() throws Exception
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
protected static synchronized PlanosActuacaoImporterProvider getInstance() throws Exception
|
||||
{
|
||||
if ( INSTANCE == null )
|
||||
{
|
||||
INSTANCE = new PlanosActuacaoImporterProvider();
|
||||
}
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
public List< Date > getPlanosOnline( Integer estabelecimentoID ) throws Exception
|
||||
{
|
||||
System.out.println( "\n\t\tPlanosActuacaoImporterProvider . getPlanosOnline( " + estabelecimentoID + " ) : " );
|
||||
|
||||
List< Date > list = new LinkedList< Date >();
|
||||
|
||||
Expression where = new Field( PlanosActuacaoData.DELETED_DATE_FULL ).isEqual( null );
|
||||
if ( estabelecimentoID != null )
|
||||
{
|
||||
where = where.and( new Field( PlanosActuacaoData.ESTABELECIMENTO_ID_FULL ).isEqual( estabelecimentoID ) );
|
||||
}
|
||||
|
||||
Select2 query = new Select2( PlanosActuacaoData.TABLENAME,
|
||||
where,
|
||||
new String[] { PlanosActuacaoData.DATA_VISITA_FULL },
|
||||
new String[] {} );
|
||||
Virtual2DArray array = getExecuter().executeQuery( query );
|
||||
for ( int i = 0; i < array.columnLength(); i++ )
|
||||
{
|
||||
Date date = array.get( i, 0 );
|
||||
System.out.println( "\n\t\t\tData-Visita Plano : " + date );
|
||||
list.add( date );
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public List< Integer > getEstabelecimentosWithPlanos() throws Exception
|
||||
{
|
||||
List< Integer > result = new LinkedList< Integer >();
|
||||
|
||||
Select2 query = new Select2(
|
||||
PlanosActuacaoData.TABLENAME,
|
||||
new Field( PlanosActuacaoData.DELETED_DATE_FULL ).isEqual( null ),
|
||||
new String[] { "DISTINCT " + PlanosActuacaoData.ESTABELECIMENTO_ID_FULL },
|
||||
new String[] {}
|
||||
);
|
||||
Virtual2DArray array = getExecuter().executeQuery( query );
|
||||
for ( int i = 0; i < array.columnLength(); i++ )
|
||||
{
|
||||
Integer estabelecimentoID = array.get( i, 0 );
|
||||
result.add( estabelecimentoID );
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public PlanoActuacao getFullPlano( PlanoActuacao plano, Integer relatorioId )
|
||||
{
|
||||
try
|
||||
{
|
||||
plano = getAreasByPlano( plano, relatorioId );
|
||||
}
|
||||
catch ( Exception ex )
|
||||
{
|
||||
ErrorLogger.logException( ex );
|
||||
}
|
||||
return plano;
|
||||
}
|
||||
|
||||
private PlanoActuacao getAreasByPlano( PlanoActuacao plano, Integer relatorioID ) throws Exception
|
||||
{
|
||||
String sql = "select hs_relatorio_posto.area_id as area, hs_relatorio_area.description as descricao, hs_relatorio_area.ordem as ordem, bool_or( coalesce( hs_relatorio_posto.is_principal, false ) ) as is_principal "
|
||||
+ " from hs_relatorio_posto "
|
||||
+ " inner join hs_relatorio_posto_medida on hs_relatorio_posto_medida.posto_id = hs_relatorio_posto.id "
|
||||
+ " inner join hs_relatorio_medida on hs_relatorio_medida.id = hs_relatorio_posto_medida.medida_id "
|
||||
+ " inner join hs_relatorio_risco on hs_relatorio_risco.id = hs_relatorio_medida.risco_id "
|
||||
+ " inner join hs_relatorio on hs_relatorio.id = hs_relatorio_risco.relatorio_id "
|
||||
+ " inner join hs_relatorio_area on hs_relatorio_area.id = hs_relatorio_posto.area_id "
|
||||
+ " where hs_relatorio.id = " + relatorioID + " "
|
||||
+ " group by area, descricao, ordem"
|
||||
+ " order by area ";
|
||||
System.out.println( "\n\t\t\t\t\t\tprovider . getAreasByPlano( " + plano.getId() + ", " + relatorioID + " ) : " );
|
||||
System.out.println( "\n\t\t\t\t\t\t\t\tSQL : " + sql );
|
||||
|
||||
Statement st = createLocalStatement();
|
||||
ResultSet rs = st.executeQuery( sql );
|
||||
List< Area > areas = new LinkedList< Area >();
|
||||
if ( rs.isBeforeFirst() )
|
||||
{
|
||||
rs.first();
|
||||
do
|
||||
{
|
||||
Area a = new Area();
|
||||
a.setId( new Integer( rs.getInt( "area" ) ) );
|
||||
a.setArea_id( a.getId() );
|
||||
a.setIs_principal( new Boolean( rs.getBoolean( "is_principal" ) ) );
|
||||
Integer ordem = ( Integer ) rs.getObject( "ordem" );
|
||||
if( ordem != null )
|
||||
{
|
||||
a.setOrdem( ordem );
|
||||
}
|
||||
if ( existemMedidasByArea( a.getId() ) )
|
||||
{
|
||||
a.setDescricao( Utils.unicodeToHTML( rs.getString( "descricao") ) );
|
||||
try
|
||||
{
|
||||
a.setRiscos( getRiscosByArea( a ) );
|
||||
}
|
||||
catch ( Exception ex )
|
||||
{
|
||||
System.out.println( "\nERRO RISCOS BY AREA !!!!" );
|
||||
ErrorLogger.logException( ex );
|
||||
a.setRiscos( null );
|
||||
}
|
||||
areas.add( a );
|
||||
}
|
||||
}
|
||||
while ( rs.next() );
|
||||
plano.setAreas( areas );
|
||||
}
|
||||
return plano;
|
||||
}
|
||||
|
||||
private List< Risco > getRiscosByArea( Area a ) throws Exception
|
||||
{
|
||||
String sql = "select distinct hs_relatorio_risco.id, hs_relatorio_risco.description as descricao, hs_relatorio_risco.is_patrimonial as is_patrimonial "
|
||||
+ " from hs_relatorio_posto "
|
||||
+ " inner join hs_relatorio_posto_medida on hs_relatorio_posto_medida.posto_id = hs_relatorio_posto.id "
|
||||
+ " inner join hs_relatorio_medida on hs_relatorio_medida.id = hs_relatorio_posto_medida.medida_id "
|
||||
+ " inner join hs_relatorio_risco on hs_relatorio_risco.id = hs_relatorio_medida.risco_id "
|
||||
+ " inner join hs_relatorio on hs_relatorio.id = hs_relatorio_risco.relatorio_id "
|
||||
+ " inner join hs_relatorio_area on hs_relatorio_area.id = area_id "
|
||||
+ " where area_id = " + a.getId() + " "
|
||||
+ " order by hs_relatorio_risco.id ";
|
||||
System.out.println( "\t\t\t\t\t\t\tprovider . getRiscosByArea( " + a.getId() + " ) : " );
|
||||
System.out.println( "\t\t\t\t\t\t\t\t\tSQL : " + sql );
|
||||
|
||||
Statement st = createLocalStatement();
|
||||
ResultSet rs = st.executeQuery( sql );
|
||||
List< Risco > riscos = new LinkedList< Risco >();
|
||||
if ( rs.isBeforeFirst() )
|
||||
{
|
||||
rs.first();
|
||||
do
|
||||
{
|
||||
Risco r = new Risco();
|
||||
r.setId( new Integer( rs.getInt( "id" ) ) );
|
||||
if ( existemMedidasByRisco( r.getId() ) )
|
||||
{
|
||||
r.setDescricao( Utils.unicodeToHTML( rs.getString( "descricao" ) ) );
|
||||
r.setIsPatrimonial( rs.getBoolean( "is_patrimonial" ) );
|
||||
|
||||
r.setValores( getValoresByRisco( r, a ) );
|
||||
r.setRisco_id( new Integer( rs.getInt( "id" ) ) );
|
||||
r.setMedidas( getMedidasByRisco( r, a ) );
|
||||
riscos.add( r );
|
||||
}
|
||||
}
|
||||
while ( rs.next() );
|
||||
}
|
||||
return riscos;
|
||||
}
|
||||
|
||||
private List< Valor > getValoresByRisco( Risco r, Area a ) throws Exception
|
||||
{
|
||||
String sql = "select subquery.valor, subquery.valor_qualitativo_id from "
|
||||
+ " (select distinct hs_relatorio_posto_risco.risco_id, hs_relatorio_posto_risco.valor_qualitativo_id, hs_relatorio_risco_valor_qualitativo.description, "
|
||||
+ " case when hs_relatorio_posto_risco.valor_qualitativo_id isnull and hs_relatorio_posto_risco.probabilidade isnull and hs_relatorio_posto_risco.severidade isnull then null "
|
||||
+ " when hs_relatorio_posto_risco.valor_qualitativo_id isnull then hs_relatorio_posto_risco.probabilidade * hs_relatorio_posto_risco.severidade "
|
||||
+ " else null "
|
||||
+ " end as valor "
|
||||
+ " from hs_relatorio_posto "
|
||||
+ " inner join hs_relatorio_posto_medida on hs_relatorio_posto_medida.posto_id = hs_relatorio_posto.id "
|
||||
+ " inner join hs_relatorio_medida on hs_relatorio_medida.id = hs_relatorio_posto_medida.medida_id "
|
||||
+ " inner join hs_relatorio_risco on hs_relatorio_risco.id = hs_relatorio_medida.risco_id "
|
||||
+ " inner join hs_relatorio_posto_risco on (hs_relatorio_posto_risco.posto_id = hs_relatorio_posto.id and hs_relatorio_posto_risco.risco_id = hs_relatorio_risco.id) "
|
||||
+ " inner join hs_relatorio on hs_relatorio.id = hs_relatorio_risco.relatorio_id "
|
||||
+ " inner join hs_relatorio_area on hs_relatorio_area.id = area_id "
|
||||
+ " left outer join hs_relatorio_risco_valor_qualitativo on ( hs_relatorio_risco_valor_qualitativo.id = hs_relatorio_posto_risco.valor_qualitativo_id ) "
|
||||
+ " where hs_relatorio_posto_risco.risco_id = " + r.getId() + " and area_id = " + a.getId() + ") subquery "
|
||||
+ " order by subquery.valor";
|
||||
|
||||
System.out.println( "\t\t\t\t\t\t\t\tprovider . getValoresByRisco( " + r.getId() + ", " + a.getId() + " ) : " );
|
||||
System.out.println( "\t\t\t\t\t\t\t\t\t\tSQL : " + sql );
|
||||
|
||||
Statement st = createLocalStatement();
|
||||
ResultSet rs = st.executeQuery( sql );
|
||||
List< Valor > valores = new LinkedList< Valor >();
|
||||
if ( rs.isBeforeFirst() )
|
||||
{
|
||||
rs.first();
|
||||
do
|
||||
{
|
||||
Object oValor = rs.getObject( "valor" );
|
||||
Object valorQualitativoID = rs.getObject( "valor_qualitativo_id" );
|
||||
|
||||
Valor v = new Valor();
|
||||
v.setValorQuantitativo( oValor == null ? null : ( Integer ) oValor );
|
||||
v.setValorQualitativoID( valorQualitativoID == null ? null : ( Integer ) valorQualitativoID );
|
||||
valores.add( v );
|
||||
}
|
||||
while ( rs.next() );
|
||||
}
|
||||
return valores;
|
||||
}
|
||||
|
||||
// private List<Medida> getMedidasByValor(Valor v, Risco r, Area a) throws Exception
|
||||
// {
|
||||
// Statement st = dblocal.createStatement();
|
||||
// String sql = "select distinct medida_id, valor, descricao from ";
|
||||
// sql += "( select distinct hs_relatorio_posto_medida.medida_id, hs_relatorio_posto_risco.risco_id, hs_relatorio_medida.description as descricao, ";
|
||||
// sql += "case when hs_relatorio_posto_risco.valor_qualitativo_id isnull and hs_relatorio_posto_risco.probabilidade isnull and hs_relatorio_posto_risco.severidade isnull then null ";
|
||||
// sql += "when hs_relatorio_posto_risco.valor_qualitativo_id isnull then hs_relatorio_posto_risco.probabilidade * hs_relatorio_posto_risco.severidade ";
|
||||
// sql += "else hs_relatorio_posto_risco.valor_qualitativo_id ";
|
||||
// sql += "end as valor ";
|
||||
// sql += "from hs_relatorio_posto ";
|
||||
// sql += "inner join hs_relatorio_posto_medida on hs_relatorio_posto_medida.posto_id = hs_relatorio_posto.id ";
|
||||
// sql += "inner join hs_relatorio_medida on hs_relatorio_medida.id = hs_relatorio_posto_medida.medida_id ";
|
||||
// sql += "inner join hs_relatorio_risco on hs_relatorio_risco.id = hs_relatorio_medida.risco_id ";
|
||||
// sql += "inner join hs_relatorio_posto_risco on (hs_relatorio_posto_risco.posto_id = hs_relatorio_posto.id and hs_relatorio_posto_risco.risco_id = hs_relatorio_risco.id) ";
|
||||
// sql += "inner join hs_relatorio on hs_relatorio.id = hs_relatorio_risco.relatorio_id ";
|
||||
// sql += "inner join hs_relatorio_area on hs_relatorio_area.id = area_id ";
|
||||
// sql += "where hs_relatorio_posto_risco.risco_id = " + r.getId() + " and area_id = " + a.getId() + " and hs_relatorio_posto_medida.is_plano_actuacao = true" + ") subquery ";
|
||||
// //sql += "where hs_relatorio_posto_risco.risco_id = " + r.getId() + " and area_id = " + a.getId() + ") subquery ";
|
||||
// //sql += "where valor = " + v.getValorQuantitativo() + " ";
|
||||
// sql += "order by subquery.medida_id, valor";
|
||||
// System.out.println("MEDIDAS BY VALOR SQL : " + sql);
|
||||
// ResultSet rs = st.executeQuery(sql);
|
||||
// List<Medida> medidas = new ArrayList();
|
||||
// if(rs.isBeforeFirst())
|
||||
// {
|
||||
// rs.first();
|
||||
// do
|
||||
// {
|
||||
// Medida m = new Medida();
|
||||
// //int valor = rs.getInt("valor");
|
||||
// //m.setValorQuantitativo(new Integer(valor));
|
||||
// m.setId(new Integer( rs.getInt("medida_id") ));
|
||||
// m.setDescricao(Utils.unicodeToHTML(rs.getString("descricao")));
|
||||
// m.setPostos(getPostosByMedidaAndValor(m, v, a));
|
||||
// medidas.add(m);
|
||||
// }while(rs.next());
|
||||
// }
|
||||
// return medidas;
|
||||
// }
|
||||
|
||||
private List<Medida> getMedidasByRisco( Risco r, Area a ) throws Exception
|
||||
{
|
||||
String sql = "select distinct medida_id, valor, descricao from "
|
||||
+ " ( select distinct hs_relatorio_posto_medida.medida_id, hs_relatorio_posto_risco.risco_id, hs_relatorio_medida.description as descricao, "
|
||||
+ " case when hs_relatorio_posto_risco.valor_qualitativo_id isnull and hs_relatorio_posto_risco.probabilidade isnull and hs_relatorio_posto_risco.severidade isnull then null "
|
||||
+ " when hs_relatorio_posto_risco.valor_qualitativo_id isnull then hs_relatorio_posto_risco.probabilidade * hs_relatorio_posto_risco.severidade "
|
||||
+ " else hs_relatorio_posto_risco.valor_qualitativo_id "
|
||||
+ " end as valor "
|
||||
+ " from hs_relatorio_posto "
|
||||
+ " inner join hs_relatorio_posto_medida on hs_relatorio_posto_medida.posto_id = hs_relatorio_posto.id "
|
||||
+ " inner join hs_relatorio_medida on hs_relatorio_medida.id = hs_relatorio_posto_medida.medida_id "
|
||||
+ " inner join hs_relatorio_risco on hs_relatorio_risco.id = hs_relatorio_medida.risco_id "
|
||||
+ " inner join hs_relatorio_posto_risco on (hs_relatorio_posto_risco.posto_id = hs_relatorio_posto.id and hs_relatorio_posto_risco.risco_id = hs_relatorio_risco.id) "
|
||||
+ " inner join hs_relatorio on hs_relatorio.id = hs_relatorio_risco.relatorio_id "
|
||||
+ " inner join hs_relatorio_area on hs_relatorio_area.id = area_id "
|
||||
+ " where hs_relatorio_posto_risco.risco_id = " + r.getId() + " and area_id = " + a.getId() + " and hs_relatorio_posto_medida.is_plano_actuacao = true" + ") subquery "
|
||||
//+ " where hs_relatorio_posto_risco.risco_id = " + r.getId() + " and area_id = " + a.getId() + ") subquery "
|
||||
//+ " where valor = " + v.getValorQuantitativo() + " "
|
||||
+ " order by subquery.medida_id, valor";
|
||||
System.out.println( "\t\t\t\t\t\t\t\t\tprovider . getMedidasByRisco( " + r.getId() + ", " + a.getId() + " ) : " );
|
||||
System.out.println( "\t\t\t\t\t\t\t\t\t\t\tSQL : " + sql );
|
||||
|
||||
Statement st = createLocalStatement();
|
||||
ResultSet rs = st.executeQuery( sql );
|
||||
List< Medida > medidas = new LinkedList< Medida >();
|
||||
if ( rs.isBeforeFirst() )
|
||||
{
|
||||
rs.first();
|
||||
do
|
||||
{
|
||||
Medida m = new Medida();
|
||||
m.setId( new Integer( rs.getInt("medida_id") ) );
|
||||
m.setMedida_id( m.getId() );
|
||||
m.setDescricao( Utils.unicodeToHTML( rs.getString( "descricao" ) ) );
|
||||
//m.setPostos(getPostosByMedidaAndValor(m, v, a));
|
||||
m.setPostos( getPostosByMedida( r, m, a ) );
|
||||
medidas.add( m );
|
||||
}
|
||||
while ( rs.next() );
|
||||
}
|
||||
return medidas;
|
||||
}
|
||||
|
||||
// private List<PostoTrabalho> getPostosByMedidaAndValor(Medida m, Valor v, Area a) throws Exception
|
||||
// {
|
||||
// Statement st = dblocal.createStatement();
|
||||
// String sql = "select subquery.posto_id, valor, descricao from ";
|
||||
// sql += "(select hs_relatorio_posto_medida.posto_id, hs_relatorio_posto.description as descricao, ";
|
||||
// sql += "case when hs_relatorio_posto_risco.valor_qualitativo_id isnull and hs_relatorio_posto_risco.probabilidade isnull and hs_relatorio_posto_risco.severidade isnull then null ";
|
||||
// sql += "when hs_relatorio_posto_risco.valor_qualitativo_id isnull then hs_relatorio_posto_risco.probabilidade * hs_relatorio_posto_risco.severidade ";
|
||||
// sql += "else hs_relatorio_posto_risco.valor_qualitativo_id ";
|
||||
// sql += "end as valor ";
|
||||
// sql += "from hs_relatorio_posto_medida ";
|
||||
// sql += "inner join hs_relatorio_posto_risco on hs_relatorio_posto_risco.posto_id = hs_relatorio_posto_medida.posto_id ";
|
||||
// sql += "inner join hs_relatorio_posto on hs_relatorio_posto.id = hs_relatorio_posto_medida.posto_id ";
|
||||
// sql += "inner join hs_relatorio_area on hs_relatorio_area.id = area_id ";
|
||||
// sql += "where medida_id = " + m.getId() + " and area_id = " + a.getId() + ") subquery ";
|
||||
// //sql += "where valor = " + v.getValorQuantitativo();
|
||||
// System.out.println("POSTOS BY MEDIDA SQL : " + sql);
|
||||
// ResultSet rs = st.executeQuery(sql);
|
||||
// List<PostoTrabalho> postos = new ArrayList();
|
||||
// if(rs.isBeforeFirst())
|
||||
// {
|
||||
// rs.first();
|
||||
// do
|
||||
// {
|
||||
// PostoTrabalho p = new PostoTrabalho();
|
||||
// p.setId(new Integer( rs.getInt("posto_id") ));
|
||||
// p.setDescricao(Utils.unicodeToHTML(rs.getString("descricao")));
|
||||
// postos.add(p);
|
||||
// }while(rs.next());
|
||||
// }
|
||||
// return postos;
|
||||
// }
|
||||
|
||||
private List<PostoTrabalho> getPostosByMedida(Risco r, Medida m, Area a) throws Exception
|
||||
{
|
||||
String sql = "select subquery.posto_id, valor, descricao, is_principal from ";
|
||||
sql += "(select hs_relatorio_posto_medida.posto_id, hs_relatorio_posto.description as descricao, ";
|
||||
sql += "case when hs_relatorio_posto_risco.valor_qualitativo_id isnull and hs_relatorio_posto_risco.probabilidade isnull and hs_relatorio_posto_risco.severidade isnull then null ";
|
||||
sql += "when hs_relatorio_posto_risco.valor_qualitativo_id isnull then hs_relatorio_posto_risco.probabilidade * hs_relatorio_posto_risco.severidade ";
|
||||
sql += "else hs_relatorio_posto_risco.valor_qualitativo_id ";
|
||||
sql += "end as valor, coalesce( hs_relatorio_posto.is_principal, false ) as is_principal ";
|
||||
sql += "from hs_relatorio_posto_medida ";
|
||||
sql += "inner join hs_relatorio_posto_risco on hs_relatorio_posto_risco.posto_id = hs_relatorio_posto_medida.posto_id ";
|
||||
sql += "inner join hs_relatorio_posto on hs_relatorio_posto.id = hs_relatorio_posto_medida.posto_id ";
|
||||
sql += "inner join hs_relatorio_area on hs_relatorio_area.id = area_id ";
|
||||
sql += "where medida_id = " + m.getId() + " and area_id = " + a.getId() + " and risco_id = " + r.getId() + ") subquery ";
|
||||
//sql += "where valor = " + v.getValorQuantitativo();
|
||||
System.out.println("POSTOS BY MEDIDA SQL : " + sql);
|
||||
Statement st = createLocalStatement();
|
||||
ResultSet rs = st.executeQuery( sql );
|
||||
List< PostoTrabalho > postos = new LinkedList< PostoTrabalho >();
|
||||
if ( rs.isBeforeFirst() )
|
||||
{
|
||||
rs.first();
|
||||
do
|
||||
{
|
||||
PostoTrabalho p = new PostoTrabalho();
|
||||
p.setId( new Integer( rs.getInt("posto_id") ) );
|
||||
p.setPosto_id( p.getId() );
|
||||
p.setDescricao( Utils.unicodeToHTML( rs.getString( "descricao" ) ) );
|
||||
p.setIs_principal( new Boolean( rs.getBoolean( "is_principal" ) ) );
|
||||
postos.add( p );
|
||||
}
|
||||
while ( rs.next() );
|
||||
}
|
||||
return postos;
|
||||
}
|
||||
|
||||
public List<ValorQualitativo> getValoresQualitativos()
|
||||
throws Exception
|
||||
{
|
||||
String sql = "select id, description from hs_relatorio_risco_valor_qualitativo;";
|
||||
System.out.println("VALORES QUALITATIVOS SQL : " + sql);
|
||||
Statement st = createLocalStatement();
|
||||
ResultSet rs = st.executeQuery( sql );
|
||||
List< ValorQualitativo > valores = new LinkedList< ValorQualitativo >();
|
||||
if ( rs.isBeforeFirst() )
|
||||
{
|
||||
rs.first();
|
||||
do
|
||||
{
|
||||
ValorQualitativo v = new ValorQualitativo();
|
||||
v.setId( new Integer( rs.getInt("id") ) );
|
||||
v.setDescricao( Utils.unicodeToHTML( rs.getString( "description" ) ) );
|
||||
valores.add( v );
|
||||
}
|
||||
while ( rs.next() );
|
||||
}
|
||||
return valores;
|
||||
}
|
||||
|
||||
public List<PlanoValoresQualitativosData> getValoresQualitativosOnline() throws Exception
|
||||
{
|
||||
return getProvider().listLoad( PlanoValoresQualitativosData.class, PlanoValoresQualitativosData.ID_FULL );
|
||||
}
|
||||
|
||||
private boolean existemMedidasByArea( Integer areaID ) throws Exception
|
||||
{
|
||||
String sql = "select distinct medida_id, valor, descricao "
|
||||
+ " from ( select distinct hs_relatorio_posto_medida.medida_id, hs_relatorio_posto_risco.risco_id, hs_relatorio_medida.description as descricao, "
|
||||
+ " case when hs_relatorio_posto_risco.valor_qualitativo_id isnull and hs_relatorio_posto_risco.probabilidade isnull and hs_relatorio_posto_risco.severidade isnull then null "
|
||||
+ " when hs_relatorio_posto_risco.valor_qualitativo_id isnull then hs_relatorio_posto_risco.probabilidade * hs_relatorio_posto_risco.severidade else hs_relatorio_posto_risco.valor_qualitativo_id end as valor from hs_relatorio_posto "
|
||||
+ " inner join hs_relatorio_posto_medida on hs_relatorio_posto_medida.posto_id = hs_relatorio_posto.id "
|
||||
+ " inner join hs_relatorio_medida on hs_relatorio_medida.id = hs_relatorio_posto_medida.medida_id "
|
||||
+ " inner join hs_relatorio_risco on hs_relatorio_risco.id = hs_relatorio_medida.risco_id "
|
||||
+ " inner join hs_relatorio_posto_risco on (hs_relatorio_posto_risco.posto_id = hs_relatorio_posto.id and hs_relatorio_posto_risco.risco_id = hs_relatorio_risco.id) "
|
||||
+ " inner join hs_relatorio on hs_relatorio.id = hs_relatorio_risco.relatorio_id "
|
||||
+ " inner join hs_relatorio_area on hs_relatorio_area.id = area_id "
|
||||
+ " where area_id = " + areaID + " and hs_relatorio_posto_medida.is_plano_actuacao = true) subquery "
|
||||
+ " order by subquery.medida_id, valor";
|
||||
|
||||
System.out.println( "\t\t\t\t\t\t\t\t\tprovider . existemMedidasByArea( " + areaID + " ) : " );
|
||||
System.out.println( "\t\t\t\t\t\t\t\t\t\t\tSQL : " + sql );
|
||||
|
||||
Statement st = createLocalStatement();
|
||||
ResultSet rs = st.executeQuery( sql );
|
||||
return rs.isBeforeFirst();
|
||||
}
|
||||
|
||||
private boolean existemMedidasByRisco(Integer risco_id) throws Exception
|
||||
{
|
||||
String sql = "select distinct medida_id "
|
||||
+ " from ( select distinct hs_relatorio_posto_medida.medida_id, hs_relatorio_posto_risco.risco_id, hs_relatorio_medida.description as descricao, "
|
||||
+ " case when hs_relatorio_posto_risco.valor_qualitativo_id isnull and hs_relatorio_posto_risco.probabilidade isnull and hs_relatorio_posto_risco.severidade isnull then null "
|
||||
+ " when hs_relatorio_posto_risco.valor_qualitativo_id isnull then hs_relatorio_posto_risco.probabilidade * hs_relatorio_posto_risco.severidade else hs_relatorio_posto_risco.valor_qualitativo_id end as valor from hs_relatorio_posto "
|
||||
+ " inner join hs_relatorio_posto_medida on hs_relatorio_posto_medida.posto_id = hs_relatorio_posto.id "
|
||||
+ " inner join hs_relatorio_medida on hs_relatorio_medida.id = hs_relatorio_posto_medida.medida_id "
|
||||
+ " inner join hs_relatorio_risco on hs_relatorio_risco.id = hs_relatorio_medida.risco_id "
|
||||
+ " inner join hs_relatorio_posto_risco on (hs_relatorio_posto_risco.posto_id = hs_relatorio_posto.id and hs_relatorio_posto_risco.risco_id = hs_relatorio_risco.id) "
|
||||
+ " inner join hs_relatorio on hs_relatorio.id = hs_relatorio_risco.relatorio_id "
|
||||
+ " inner join hs_relatorio_area on hs_relatorio_area.id = area_id "
|
||||
+ " where hs_relatorio_posto_risco.risco_id = " + risco_id + " and hs_relatorio_posto_medida.is_plano_actuacao = true) subquery "
|
||||
+ " order by medida_id";
|
||||
|
||||
System.out.println("EXISTEM MEDIDAS BY RISCO SQL : " + sql);
|
||||
Statement st = createLocalStatement();
|
||||
ResultSet rs = st.executeQuery( sql );
|
||||
return rs.isBeforeFirst();
|
||||
}
|
||||
|
||||
|
||||
public Integer createPlano( PlanoActuacao p ) throws Exception
|
||||
{
|
||||
Integer newPlanoID = null;
|
||||
Date todayDate = new Date();
|
||||
|
||||
boolean concluidoPorDesactivacao = p.getConcluidoPorDesactivacao() == null ? Boolean.FALSE : p.getConcluidoPorDesactivacao();
|
||||
Date dataDesactivacao = p.getDataDesactivacao();
|
||||
if ( dataDesactivacao == null && concluidoPorDesactivacao )
|
||||
{
|
||||
dataDesactivacao = todayDate;
|
||||
}
|
||||
|
||||
PlanosActuacaoData planoData = new PlanosActuacaoData();
|
||||
planoData.setEstabelecimento_id( p.getEstabelecimento_id() );
|
||||
planoData.setFase( p.getFase() );
|
||||
planoData.setData_visita( p.getData_visita() );
|
||||
planoData.setNome_estabelecimento( p.getNome_estabelecimento() );
|
||||
|
||||
planoData.setValidacao_director_loja( false );
|
||||
planoData.setValidacao_dns( false );
|
||||
planoData.setValidacao_hs( false );
|
||||
|
||||
planoData.setParecer_dns( null );
|
||||
planoData.setObs_correcao( null );
|
||||
planoData.setData_validacao_dir_loja( null );
|
||||
planoData.setUser_dir_loja( null );
|
||||
planoData.setData_validacao_dns( null );
|
||||
planoData.setUser_dns( null );
|
||||
planoData.setData_validacao_hs( null );
|
||||
planoData.setUser_hs( null );
|
||||
|
||||
planoData.setFase_antes_correcao( null );
|
||||
planoData.setCorrecao( "n" );
|
||||
planoData.setObservacoes_dl( null );
|
||||
planoData.setObservacoes_dns( null );
|
||||
planoData.setVerificacao_siprp( null );
|
||||
|
||||
planoData.setData_controlo( todayDate );
|
||||
planoData.setData_email_controlo( null );
|
||||
|
||||
planoData.setEmpresa_id( p.getEmpresa_id() );
|
||||
planoData.setNome_empresa( p.getNome_empresa() );
|
||||
|
||||
planoData.setTecnico_hs_id( p.getTecnico_hs_id() );
|
||||
planoData.setTecnico_hs_nome( p.getTecnico_hs_nome() );
|
||||
|
||||
planoData.setData_relatorio( p.getData_relatorio() );
|
||||
planoData.setDeleted_date( null );
|
||||
|
||||
planoData.setConcluido_por_desactivacao( concluidoPorDesactivacao );
|
||||
|
||||
planoData.setTecnico_superior_hs_id( p.getTecnico_superior_hs_id() );
|
||||
planoData.setTecnico_superior_hs_nome( p.getTecnico_superior_hs_nome() );
|
||||
|
||||
planoData.setData_desactivacao( dataDesactivacao );
|
||||
planoData.setData_disponibilizacao( p.getData_disponibilizacao() );
|
||||
planoData.setData_validacao_seg( null );
|
||||
planoData.setUser_seg( null );
|
||||
|
||||
planoData.setHs_relatorio_id( p.getHs_relatorio_id() );
|
||||
|
||||
System.out.println( "\nCREATE PLANO : " );
|
||||
planoData.setProvider( EvoBaseProvider.getInstance().getProvider() );
|
||||
planoData.save();
|
||||
newPlanoID = planoData.getId();
|
||||
System.out.println( "\n\tplanoID : " + newPlanoID );
|
||||
|
||||
return newPlanoID;
|
||||
}
|
||||
|
||||
public Integer createArea( Area a ) throws Exception
|
||||
{
|
||||
Integer newAreaID = null;
|
||||
|
||||
PlanoAreasData areaData = new PlanoAreasData();
|
||||
areaData.setArea_id( a.getArea_id() );
|
||||
areaData.setPlano_id( a.getPlano_id() );
|
||||
areaData.setDescricao( Utils.parseToInsert( a.getDescricao() ) );
|
||||
areaData.setIs_principal( a.getIs_principal() );
|
||||
areaData.setOrdem( a.getOrdem() );
|
||||
System.out.println( "\nCREATE AREA : " );
|
||||
areaData.setProvider( EvoBaseProvider.getInstance().getProvider( DB.SIPRP ) );
|
||||
areaData.save();
|
||||
newAreaID = areaData.getId();
|
||||
System.out.println( "\n\tareaID : " + newAreaID );
|
||||
|
||||
return newAreaID;
|
||||
}
|
||||
|
||||
public Integer createRisco( Risco r ) throws Exception
|
||||
{
|
||||
Integer newRiscoID = null;
|
||||
|
||||
PlanoRiscosData riscoData = new PlanoRiscosData();
|
||||
riscoData.setDescricao( Utils.parseToInsert( r.getDescricao() ) );
|
||||
riscoData.setActivo( r.getActivo() == null ? "y" : r.getActivo() );
|
||||
riscoData.setArea_id( r.getArea_id() );
|
||||
riscoData.setValor( r.getValorQuantitativo() );
|
||||
riscoData.setRisco_id( r.getId() );
|
||||
riscoData.setIs_patrimonial( r.getIsPatrimonial() );
|
||||
riscoData.setValor_qualitativo_id( r.getValorQualitativoID() );
|
||||
|
||||
System.out.println( "\nCREATE RISCO : " );
|
||||
riscoData.setProvider( EvoBaseProvider.getInstance().getProvider( DB.SIPRP ) );
|
||||
riscoData.save();
|
||||
newRiscoID = riscoData.getId();
|
||||
System.out.println( "\n\triscoID : " + newRiscoID );
|
||||
|
||||
return newRiscoID;
|
||||
}
|
||||
|
||||
public Integer createMedida( Medida m ) throws Exception
|
||||
{
|
||||
Integer newMedidaID = null;
|
||||
|
||||
PlanoMedidasData medidaData = new PlanoMedidasData();
|
||||
medidaData.setMedida_id( m.getMedida_id() );
|
||||
medidaData.setRisco_id( m.getRisco_id() );
|
||||
medidaData.setDescricao( Utils.parseToInsert( m.getDescricao() ) );
|
||||
|
||||
System.out.println( "\nCREATE MEDIDA : " );
|
||||
medidaData.setProvider( EvoBaseProvider.getInstance().getProvider( DB.SIPRP ) );
|
||||
medidaData.save();
|
||||
newMedidaID = medidaData.getId();
|
||||
System.out.println( "\n\tmedidaID : " + newMedidaID );
|
||||
|
||||
return newMedidaID;
|
||||
}
|
||||
|
||||
public void createPostoTrabalho( PostoTrabalho p ) throws Exception
|
||||
{
|
||||
PlanoPostosTrabalhoData postoData = new PlanoPostosTrabalhoData();
|
||||
postoData.setPosto_id( p.getPosto_id() );
|
||||
postoData.setMedida_id( p.getMedida_id() );
|
||||
postoData.setDescricao( Utils.parseToInsert( p.getDescricao() ) );
|
||||
postoData.setIs_principal( p.getIs_principal() );
|
||||
System.out.println( "\nCREATE POSTO TRABALHO : " );
|
||||
postoData.setProvider( EvoBaseProvider.getInstance().getProvider( DB.SIPRP ) );
|
||||
postoData.save();
|
||||
}
|
||||
|
||||
public void createValorQualitativo( ValorQualitativo v ) throws Exception
|
||||
{
|
||||
PlanoValoresQualitativosData valor = new PlanoValoresQualitativosData();
|
||||
valor.setId( v.getId() );
|
||||
valor.setDescricao( Utils.parseToInsert( v.getDescricao() ) );
|
||||
|
||||
System.out.println( "\nCREATE VALOR QUALITATIVO : " );
|
||||
valor.setProvider( EvoBaseProvider.getInstance().getProvider( DB.SIPRP ) );
|
||||
valor.save();
|
||||
}
|
||||
|
||||
public void updateValorQualitativo( ValorQualitativo v ) throws Exception
|
||||
{
|
||||
PlanoValoresQualitativosData valor = getProvider().load( PlanoValoresQualitativosData.class, v.getId() );
|
||||
valor.setDescricao( Utils.parseToInsert( v.getDescricao() ) );
|
||||
|
||||
System.out.println( "\nUPDATE VALOR QUALITATIVO : " );
|
||||
valor.setProvider( EvoBaseProvider.getInstance().getProvider( DB.SIPRP ) );
|
||||
valor.save();
|
||||
}
|
||||
|
||||
public void deleteValorQualitativo( Integer vId ) throws Exception
|
||||
{
|
||||
PlanoValoresQualitativosData valor = getProvider().load( PlanoValoresQualitativosData.class, vId );
|
||||
System.out.println( "\nDELETE VALOR QUALITATIVO : " );
|
||||
valor.setDeleted_stamp( new java.sql.Timestamp( System.currentTimeMillis() ) );
|
||||
valor.save();
|
||||
}
|
||||
|
||||
//====================
|
||||
public String getEmpresaNome( Integer empresaID ) throws Exception
|
||||
{
|
||||
String nome = null;
|
||||
|
||||
EmpresasData empresaData = getLocalProvider().load( EmpresasData.class, empresaID, EmpresasData.ID );
|
||||
if ( empresaData != null )
|
||||
{
|
||||
nome = Utils.unicodeToHTML( empresaData.getDesignacao_social() );
|
||||
}
|
||||
else
|
||||
{
|
||||
ErrorLogger.logException( new Exception( "CreatePlanosDataProvider . getEmpresaNome( " + empresaID + " ) : is Null !" +
|
||||
"\n\tempresaData = " + (empresaData == null ? "null" : "not null") + ", nome = " + nome ) );
|
||||
}
|
||||
return nome;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in new issue