diff --git a/trunk/PlanosActuacao/lib/evolute.jar b/trunk/PlanosActuacao/lib/evolute.jar index 7fa2b007..18f3067d 100644 Binary files a/trunk/PlanosActuacao/lib/evolute.jar and b/trunk/PlanosActuacao/lib/evolute.jar differ diff --git a/trunk/PlanosActuacao/lib/shst.jar b/trunk/PlanosActuacao/lib/shst.jar index 9317caa3..d4c9869f 100644 Binary files a/trunk/PlanosActuacao/lib/shst.jar and b/trunk/PlanosActuacao/lib/shst.jar differ diff --git a/trunk/PlanosActuacao/src/java/db/providers/CreatePlanosDataProvider.java b/trunk/PlanosActuacao/src/java/db/providers/CreatePlanosDataProvider.java index b92a399b..75408777 100644 --- a/trunk/PlanosActuacao/src/java/db/providers/CreatePlanosDataProvider.java +++ b/trunk/PlanosActuacao/src/java/db/providers/CreatePlanosDataProvider.java @@ -5,8 +5,13 @@ package db.providers; -import com.evolute.utils.db.DBException; +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.data.siprp.outer.PlanosActuacaoData; +import db.data.siprp_local.outer.EmpresasData; import db.entidades.Area; import db.entidades.Medida; import db.entidades.PlanoActuacao; @@ -17,6 +22,7 @@ import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.Date; +import java.util.LinkedList; import java.util.List; import utils.Utils; @@ -59,51 +65,101 @@ public class CreatePlanosDataProvider extends GenericDataProvider public List getPlanosOnline( Integer estabelecimentoID ) throws Exception { - ArrayList list = new ArrayList(); - Statement st = createStatement(); - String sql = "select data_visita from planos_actuacao where deleted_date is null"; - if( estabelecimentoID != null ) - { - sql += " and estabelecimento_id = " + estabelecimentoID; - } - ResultSet rs = st.executeQuery(sql); + List< Date > list = new LinkedList< Date >(); - if(rs.isBeforeFirst()) - { - rs.first(); - do - { - java.sql.Date sqlDate = rs.getDate("data_visita"); - java.util.Date data_visita = new java.util.Date(sqlDate.getTime()); - System.out.println("DATA PLANO : " + data_visita.toString()); - list.add(data_visita); - }while(rs.next()); - } - return list; + 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 ); + if ( array != null ) + { + System.out.println( "\nCreatePlanosDataProvider . getPlanosOnline( " + estabelecimentoID + " ) : " ); + for ( int i = 0; i < array.columnLength(); i++ ) + { + Date date = array.get( i, 0 ); + System.out.println( "\tdata : " + date ); + list.add( date ); + } + } + return list; + +// ArrayList list = new ArrayList(); +// Statement st = createStatement(); +// String sql = "select data_visita from planos_actuacao where deleted_date is null"; +// if( estabelecimentoID != null ) +// { +// sql += " and estabelecimento_id = " + estabelecimentoID; +// } +// ResultSet rs = st.executeQuery(sql); +// +// if(rs.isBeforeFirst()) +// { +// rs.first(); +// do +// { +// java.sql.Date sqlDate = rs.getDate("data_visita"); +// java.util.Date data_visita = new java.util.Date(sqlDate.getTime()); +// System.out.println("DATA PLANO : " + data_visita.toString()); +// list.add(data_visita); +// }while(rs.next()); +// } +// return list; } public List getEstabelecimentosWithPlanos() { - List result = new ArrayList(); - try - { - Statement st = createStatement(); - String sql = "select distinct estabelecimento_id from planos_actuacao where deleted_date is null"; - ResultSet rs = st.executeQuery(sql); - if(rs.isBeforeFirst()) - { - rs.first(); - do - { - result.add( rs.getInt("estabelecimento_id") ); - }while(rs.next()); - } - } - catch( Exception e ) - { - ErrorLogger.logException( e ); - } - return result; + List< Integer > list = new LinkedList< Integer >(); + + try + { + 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 ); + if ( array != null ) + { + for ( int i = 0; i < array.columnLength(); i++ ) + { + Integer estabelecimentoID = array.get( i, 0 ); + list.add( estabelecimentoID ); + } + } + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return list; + +// List result = new ArrayList(); +// try +// { +// Statement st = createStatement(); +// String sql = "select distinct estabelecimento_id from planos_actuacao where deleted_date is null"; +// ResultSet rs = st.executeQuery(sql); +// if(rs.isBeforeFirst()) +// { +// rs.first(); +// do +// { +// result.add( rs.getInt("estabelecimento_id") ); +// }while(rs.next()); +// } +// } +// catch( Exception e ) +// { +// ErrorLogger.logException( e ); +// } +// return result; } @@ -613,16 +669,28 @@ public class CreatePlanosDataProvider extends GenericDataProvider //==================== + 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() ); + } + return nome; + } +// public String getEmpresaNome(Integer empresa_id) throws Exception +// { +// Statement st = createLocalStatement(); +// String sql ="SELECT designacao_social FROM empresas WHERE id = " + empresa_id; +// ResultSet rslocal = st.executeQuery(sql); +// rslocal.first(); +// String nome = Utils.unicodeToHTML(rslocal.getString("designacao_social")); +// return nome; +// } + - public String getEmpresaNome(Integer empresa_id) throws Exception - { - Statement st = createLocalStatement(); - String sql ="SELECT designacao_social FROM empresas WHERE id = " + empresa_id; - ResultSet rslocal = st.executeQuery(sql); - rslocal.first(); - String nome = Utils.unicodeToHTML(rslocal.getString("designacao_social")); - return nome; - } // private Statement createStatement() // { diff --git a/trunk/PlanosActuacao/src/java/db/providers/GenericDataProvider.java b/trunk/PlanosActuacao/src/java/db/providers/GenericDataProvider.java index 5922e2b8..0da93335 100644 --- a/trunk/PlanosActuacao/src/java/db/providers/GenericDataProvider.java +++ b/trunk/PlanosActuacao/src/java/db/providers/GenericDataProvider.java @@ -21,10 +21,16 @@ public abstract class GenericDataProvider private ProviderInterface< EvoDataObject< ? >, EvoDataException > provider = null; private Executer executer = null; + private ProviderInterface< EvoDataObject< ? >, EvoDataException > localProvider = null; + private Executer localExecuter = null; + protected GenericDataProvider() throws Exception { provider = EvoBaseProvider.getInstance().getProvider( DBConstants.DB.SIPRP ); executer = EvoBaseProvider.getInstance().getExecuter(); + + localProvider = EvoBaseProvider.getInstance().getProvider( DBConstants.DB.SIPRP_LOCAL ); + localExecuter = EvoBaseProvider.getInstance().getLocalExecuter(); } public Executer getExecuter() @@ -32,12 +38,21 @@ public abstract class GenericDataProvider return executer; } + public Executer getLocalExecuter() + { + return localExecuter; + } + public ProviderInterface< EvoDataObject< ? >, EvoDataException > getProvider() { return provider; } - + public ProviderInterface< EvoDataObject< ? >, EvoDataException > getLocalProvider() + { + return localProvider; + } + // public void checkConnection() // { @@ -79,11 +94,14 @@ public abstract class GenericDataProvider protected Statement createStatement() { - try { + try + { // Db db = Db.getInstance(); // return db.createStatement(); return EvoBaseProvider.getInstance().createStatement(); - } catch (DBException ex) { + } + catch ( DBException ex ) + { ErrorLogger.logException( ex ); } return null; diff --git a/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java b/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java index 8f9e02ae..9d67d469 100644 --- a/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java +++ b/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java @@ -5,13 +5,20 @@ package db.providers; -import com.evolute.utils.db.Executer; +import com.evolute.utils.arrays.Virtual2DArray; import com.evolute.utils.error.ErrorLogger; import com.evolute.utils.sql.Assignment; import com.evolute.utils.sql.Expression; import com.evolute.utils.sql.Field; +import com.evolute.utils.sql.Select2; import com.evolute.utils.sql.Update; import com.evolute.utils.strings.StringPlainer; +import db.data.siprp.outer.EstadoMedidasData; +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.entidades.Area; import db.entidades.EstadoMedida; import db.entidades.Medida; @@ -19,14 +26,13 @@ import db.entidades.PlanoActuacao; import db.entidades.PostoTrabalho; import db.entidades.Risco; import db.entidades.Utilizador; -import db.entidades.Valor; import global.Global; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.Date; +import java.util.LinkedList; import java.util.List; -import java.util.Vector; import utils.Utils; /** @@ -185,9 +191,8 @@ public class PlanosDataProvider extends GenericDataProvider System.out.println( "SQL UPDATE PLANO : " + upd.toString() ); - Executer executer = EvoBaseProvider.getInstance().getExecuter(); ErrorLogger.log( "SAVE : PlanosDataProvider.updatePlano( " + p.getId() + " ) : " + upd.toString() ); - executer.executeQuery( upd ); + getExecuter().executeQuery( upd ); // Statement st = createStatement(); // String sql = ""; @@ -291,21 +296,20 @@ public class PlanosDataProvider extends GenericDataProvider Expression where = new Field( "id" ).isEqual( r.getId() ); - Update upd = new Update( "plano_riscos", new Assignment[] + Update upd = new Update( PlanoRiscosData.TABLENAME, new Assignment[] { - new Assignment( new Field( "responsavel_execucao" ), r.getResponsavel_execucao() ), - new Assignment( new Field( "por" ), r.getPor() ), - new Assignment( new Field( "recursos_necessarios" ), r.getRecursos_necessarios() ), - new Assignment( new Field( "data_inicio" ), r.getData_inicio() ), - new Assignment( new Field( "data_fim" ), r.getData_fim() ), - new Assignment( new Field( "parecer_dns" ), r.getParecer_dns() ), - new Assignment( new Field( "parecer_dl" ), r.getParecer_dl() ), - new Assignment( new Field( "verificacao_siprp" ), r.getVerificacao_siprp() ) + new Assignment( new Field( PlanoRiscosData.RESPONSAVEL_EXECUCAO ), r.getResponsavel_execucao() ), + new Assignment( new Field( PlanoRiscosData.POR ), r.getPor() ), + new Assignment( new Field( PlanoRiscosData.RECURSOS_NECESSARIOS ), r.getRecursos_necessarios() ), + new Assignment( new Field( PlanoRiscosData.DATA_INICIO ), r.getData_inicio() ), + new Assignment( new Field( PlanoRiscosData.DATA_FIM ), r.getData_fim() ), + new Assignment( new Field( PlanoRiscosData.PARECER_DNS ), r.getParecer_dns() ), + new Assignment( new Field( PlanoRiscosData.PARECER_DL ), r.getParecer_dl() ), + new Assignment( new Field( PlanoRiscosData.VERIFICACAO_SIPRP ), r.getVerificacao_siprp() ) }, where ); ErrorLogger.log( "\nSAVE : PlanosDataProvider.updateRisco( " + r.getId() + " ) : " + upd.toString() ); - Executer executer = EvoBaseProvider.getInstance().getExecuter(); - executer.executeQuery( upd ); + getExecuter().executeQuery( upd ); System.out.println( "\n\tUPDATE RISCO SUCCESS !" ); // Statement st = createStatement(); @@ -357,15 +361,14 @@ public class PlanosDataProvider extends GenericDataProvider Expression where = new Field( "id" ).isEqual( m.getId() ).and( new Field( "risco_id" ).isEqual( risco.getId() ) ); - Update upd = new Update( "plano_medidas", new Assignment[] + Update upd = new Update( PlanoMedidasData.TABLENAME, new Assignment[] { - new Assignment( new Field( "estado_medidas_id" ), emID ) + new Assignment( new Field( PlanoMedidasData.ESTADO_MEDIDAS_ID ), emID ) }, where ); System.out.println( "SQL UPDATE MEDIDAS : " + upd.toString() ); - Executer executer = EvoBaseProvider.getInstance().getExecuter(); ErrorLogger.log( "SAVE : PlanosDataProvider.updateMedidas( " + risco.getId() + " ) : " + upd.toString() ); - executer.executeQuery( upd ); + getExecuter().executeQuery( upd ); // String sql = "UPDATE plano_medidas SET estado_medidas_id = " + emID + // " WHERE id = " + m.getId() + " AND risco_id = " + risco.getId(); @@ -375,143 +378,247 @@ public class PlanosDataProvider extends GenericDataProvider } } - public void updateValor(Valor v) throws Exception - { - if(v.getResponsavel_execucao() == null) - { - v.setResponsavel_execucao(""); - } - - if(v.getRecursos_necessarios() == null) - { - v.setRecursos_necessarios(""); - } - if(v.getParecer_dl() == null) - { - v.setParecer_dl(""); - } - if(v.getParecer_dns() == null) - { - v.setParecer_dns(""); - } - if(v.getVerificacao_siprp() == null) - { - v.setVerificacao_siprp(""); - } - - Statement st = createStatement(); - String sql = ""; - - //To Do sql string here : - sql = "UPDATE plano_valores SET responsavel_execucao = '" + v.getResponsavel_execucao() + "', "; - sql += "recursos_necessarios = '" + v.getRecursos_necessarios() + "', "; - if(v.getData_inicio() == null) - { - sql += "data_inicio = " + null + ", "; - } - else - { - java.sql.Date sqlDate = new java.sql.Date(v.getData_inicio().getTime()); - sql += "data_inicio = '" + sqlDate + "', "; - } - if(v.getData_fim() == null) - { - sql += "data_fim = " + null + ", "; - } - else - { - java.sql.Date sqlDate = new java.sql.Date(v.getData_fim().getTime()); - sql += "data_fim = '" + sqlDate + "', "; - } - sql += "parecer_dns = '" + v.getParecer_dns() + "', "; - sql += "parecer_dl = '" + v.getParecer_dl() + "', "; - sql += "verificacao_siprp = '" + v.getVerificacao_siprp() + "' "; - sql += "WHERE id = " + v.getId(); - System.out.println("SQL UPDATE VALOR : " + sql); - - ErrorLogger.log( "SAVE : PlanosDataProvider.updateValor( v ) : " + sql ); - st.execute(sql); - } +// public void updateValor(Valor v) throws Exception +// { +// if(v.getResponsavel_execucao() == null) +// { +// v.setResponsavel_execucao(""); +// } +// +// if(v.getRecursos_necessarios() == null) +// { +// v.setRecursos_necessarios(""); +// } +// if(v.getParecer_dl() == null) +// { +// v.setParecer_dl(""); +// } +// if(v.getParecer_dns() == null) +// { +// v.setParecer_dns(""); +// } +// if(v.getVerificacao_siprp() == null) +// { +// v.setVerificacao_siprp(""); +// } +// +// +// java.sql.Date dataInicio = v.getData_inicio() == null ? null : new java.sql.Date( v.getData_inicio().getTime() ); +// java.sql.Date dataFim = v.getData_fim() == null ? null : new java.sql.Date( v.getData_fim().getTime() ); +// +// Expression where = new Field( "id" ).isEqual( v.getId() ); +// Update upd = new Update( "plano_valores", new Assignment[] { +// new Assignment( new Field( "responsavel_execucao" ), v.getResponsavel_execucao() ), +// new Assignment( new Field( "recursos_necessarios" ), v.getRecursos_necessarios() ), +// new Assignment( new Field( "data_inicio" ), dataInicio ), +// new Assignment( new Field( "data_fim" ), dataFim ), +// new Assignment( new Field( "parecer_dns" ), v.getParecer_dns() ), +// new Assignment( new Field( "parecer_dl" ), v.getParecer_dl() ), +// new Assignment( new Field( "verificacao_siprp" ), v.getVerificacao_siprp() ), +// }, where ); +// +// Executer executer = EvoBaseProvider.getInstance().getExecuter(); +// ErrorLogger.log( "SAVE : PlanosDataProvider.updateValor( " + v.getId() + " ) : " + upd.toString() ); +// executer.executeQuery( upd ); +// +//// Statement st = createStatement(); +//// String sql = ""; +//// +//// //To Do sql string here : +//// sql = "UPDATE plano_valores SET responsavel_execucao = '" + v.getResponsavel_execucao() + "', "; +//// sql += "recursos_necessarios = '" + v.getRecursos_necessarios() + "', "; +//// if(v.getData_inicio() == null) +//// { +//// sql += "data_inicio = " + null + ", "; +//// } +//// else +//// { +//// java.sql.Date sqlDate = new java.sql.Date(v.getData_inicio().getTime()); +//// sql += "data_inicio = '" + sqlDate + "', "; +//// } +//// if(v.getData_fim() == null) +//// { +//// sql += "data_fim = " + null + ", "; +//// } +//// else +//// { +//// java.sql.Date sqlDate = new java.sql.Date(v.getData_fim().getTime()); +//// sql += "data_fim = '" + sqlDate + "', "; +//// } +//// sql += "parecer_dns = '" + v.getParecer_dns() + "', "; +//// sql += "parecer_dl = '" + v.getParecer_dl() + "', "; +//// sql += "verificacao_siprp = '" + v.getVerificacao_siprp() + "' "; +//// sql += "WHERE id = " + v.getId(); +//// System.out.println("SQL UPDATE VALOR : " + sql); +//// +//// ErrorLogger.log( "SAVE : PlanosDataProvider.updateValor( v ) : " + sql ); +//// st.execute( sql ); +// } - public Integer createArea(Area a) throws Exception - { - Statement st = createStatement(); - Integer newId = getMaxTableId("plano_areas"); - String sql = "insert into plano_areas (id, area_id, plano_id, descricao) values ("; - sql += newId + ", "; - sql += a.getArea_id() + ", "; - sql += a.getPlano_id() + ", '"; - sql += a.getDescricao() + "' "; - sql += ")"; - - System.out.println("SQL CREATE AREA : " + sql); - st.execute(sql); - return newId; - } +// public Integer createArea( Area a ) throws Exception +// { +// Integer newID = getMaxTableId( PlanoAreasData.TABLENAME ); +// +// Insert ins = new Insert( PlanoAreasData.TABLENAME, new Assignment[] { +// new Assignment( new Field( PlanoAreasData.ID ), newID ), +// new Assignment( new Field( PlanoAreasData.AREA_ID ), a.getArea_id() ), +// new Assignment( new Field( PlanoAreasData.PLANO_ID ), a.getPlano_id() ), +// new Assignment( new Field( PlanoAreasData.DESCRICAO ), a.getDescricao() ), +// } ); +// +// System.out.println( "\nPlanosDataProvider . createArea( ) : " ); +// System.out.println( "\tSQL : " + ins.toString() ); +// +// Executer executer = EvoBaseProvider.getInstance().getExecuter(); +// executer.executeQuery( ins ); +// +// return newID; +// +//// Statement st = createStatement(); +//// Integer newId = getMaxTableId("plano_areas"); +//// String sql = "insert into plano_areas (id, area_id, plano_id, descricao) values ("; +//// sql += newId + ", "; +//// sql += a.getArea_id() + ", "; +//// sql += a.getPlano_id() + ", '"; +//// sql += a.getDescricao() + "' "; +//// sql += ")"; +//// +//// System.out.println("SQL CREATE AREA : " + sql); +//// st.execute(sql); +//// return newId; +// } - public Integer createRisco(Risco r) throws Exception - { - Statement st = createStatement(); - Integer newId = getMaxTableId("plano_riscos"); - String sql = "insert into plano_riscos (id, area_id, descricao, valor, risco_id) values ("; - sql += newId + ", "; - sql += r.getArea_id() + ", '"; - sql += r.getDescricao() + "', "; - sql += r.getValor() + ", "; - sql += r.getId(); - sql += ")"; - - System.out.println("SQL CREATE RISCO : " + sql); - st.execute(sql); - return newId; - } +// public Integer createRisco( Risco r ) throws Exception +// { +// Integer newID = getMaxTableId( PlanoRiscosData.TABLENAME ); +// +// Insert ins = new Insert( PlanoRiscosData.TABLENAME, new Assignment[] { +// new Assignment( new Field( PlanoRiscosData.ID ), newID ), +// new Assignment( new Field( PlanoRiscosData.AREA_ID ), r.getArea_id() ), +// new Assignment( new Field( PlanoRiscosData.DESCRICAO ), r.getDescricao() ), +// new Assignment( new Field( PlanoRiscosData.VALOR ), r.getValor() ), +// new Assignment( new Field( PlanoRiscosData.RISCO_ID ), r.getId() ) +// }); +// +// System.out.println( "\nPlanosDataProvider . createRisco() : " ); +// System.out.println( "\tSQL : " + ins.toString() ); +// +// Executer executer = EvoBaseProvider.getInstance().getExecuter(); +// executer.executeQuery( ins ); +// +// return newID; +// +//// Statement st = createStatement(); +//// Integer newId = getMaxTableId("plano_riscos"); +//// String sql = "insert into plano_riscos (id, area_id, descricao, valor, risco_id) values ("; +//// sql += newId + ", "; +//// sql += r.getArea_id() + ", '"; +//// sql += r.getDescricao() + "', "; +//// sql += r.getValor() + ", "; +//// sql += r.getId(); +//// sql += ")"; +//// +//// System.out.println("SQL CREATE RISCO : " + sql); +//// st.execute(sql); +//// return newId; +// } - public Integer createValor(Valor v) throws Exception - { - Statement st = createStatement(); - Integer newId = getMaxTableId("plano_valores"); - String sql = "insert into plano_valores (id, risco_id, valor) values ("; - sql += newId + ", "; - sql += v.getRisco_id() + ", "; - sql += v.getValor() + ""; - sql += ")"; - - System.out.println("SQL CREATE VALOR : " + sql); - st.execute(sql); - return newId; - } +// public Integer createValor( Valor v ) throws Exception +// { +// Integer newID = getMaxTableId( "plano_valores" ); +// +// Insert ins = new Insert( "plano_valores", new Assignment[] { +// new Assignment( new Field( "id" ), newID ), +// new Assignment( new Field( "risco_id" ), v.getRisco_id() ), +// new Assignment( new Field( "valor" ), v.getValor() ) +// } ); +// +// System.out.println( "\nPlanosDataProvider . createValor() : " ); +// System.out.println( "\tSQL : " + ins.toString() ); +// +// Executer executer = EvoBaseProvider.getInstance().getExecuter(); +// executer.executeQuery( ins ); +// +// return newID; +// +//// Statement st = createStatement(); +//// Integer newId = getMaxTableId("plano_valores"); +//// String sql = "insert into plano_valores (id, risco_id, valor) values ("; +//// sql += newId + ", "; +//// sql += v.getRisco_id() + ", "; +//// sql += v.getValor() + ""; +//// sql += ")"; +//// +//// System.out.println("SQL CREATE VALOR : " + sql); +//// st.execute(sql); +//// return newId; +// } - public Integer createMedida(Medida m) throws Exception - { - Statement st = createStatement(); - Integer newId = getMaxTableId("plano_medidas"); - String sql = "insert into plano_medidas (id, medida_id, risco_id, descricao, estado_medidas_id) values ("; - sql += newId + ", "; - sql += m.getMedida_id() + ", "; - sql += m.getRisco_id() + ", '"; - sql += m.getDescricao() + "', "; - sql += m.getValidarMedidaId(); - sql += ")"; - - System.out.println("SQL CREATE MEDIDA : " + sql); - st.execute(sql); - return newId; - } +// public Integer createMedida( Medida m ) throws Exception +// { +// Integer newID = getMaxTableId( PlanoMedidasData.TABLENAME ); +// +// Insert ins = new Insert( PlanoMedidasData.TABLENAME, new Assignment[] { +// new Assignment( new Field( PlanoMedidasData.ID ), newID ), +// new Assignment( new Field( PlanoMedidasData.MEDIDA_ID ), m.getMedida_id() ), +// new Assignment( new Field( PlanoMedidasData.RISCO_ID ), m.getRisco_id() ), +// new Assignment( new Field( PlanoMedidasData.DESCRICAO ), m.getDescricao() ), +// new Assignment( new Field( PlanoMedidasData.ESTADO_MEDIDAS_ID ), m.getValidarMedidaId() ) +// } ); +// +// System.out.println( "\nPlanosDataProvider . createMedida( ) : " ); +// System.out.println( "\tSQL : " + ins.toString() ); +// +// Executer executer = EvoBaseProvider.getInstance().getExecuter(); +// executer.executeQuery( ins ); +// +// return newID; +// +//// Statement st = createStatement(); +//// Integer newId = getMaxTableId("plano_medidas"); +//// String sql = "insert into plano_medidas (id, medida_id, risco_id, descricao, estado_medidas_id) values ("; +//// sql += newId + ", "; +//// sql += m.getMedida_id() + ", "; +//// sql += m.getRisco_id() + ", '"; +//// sql += m.getDescricao() + "', "; +//// sql += m.getValidarMedidaId(); +//// sql += ")"; +//// +//// System.out.println("SQL CREATE MEDIDA : " + sql); +//// st.execute(sql); +//// return newId; +// } - public void createPostoTrabalho(PostoTrabalho p) throws Exception - { - Statement st = createStatement(); - Integer newId = getMaxTableId("plano_postos_trabalho"); - String sql = "insert into plano_postos_trabalho (id, posto_id, medida_id, descricao) values ("; - sql += newId + ", "; - sql += p.getPosto_id() + ", "; - sql += p.getMedida_id() + ", '"; - sql += p.getDescricao() + "' "; - sql += ")"; +// public void createPostoTrabalho( PostoTrabalho p ) throws Exception +// { +// Integer newID = getMaxTableId( PlanoPostosTrabalhoData.TABLENAME ); +// +// Insert ins = new Insert( PlanoPostosTrabalhoData.TABLENAME, new Assignment[] { +// new Assignment( new Field( PlanoPostosTrabalhoData.ID ), newID ), +// new Assignment( new Field( PlanoPostosTrabalhoData.POSTO_ID ), p.getPosto_id() ), +// new Assignment( new Field( PlanoPostosTrabalhoData.MEDIDA_ID ), p.getMedida_id() ), +// new Assignment( new Field( PlanoPostosTrabalhoData.DESCRICAO ), p.getDescricao() ) +// } ); +// +// System.out.println( "\nPlanosDataProvider . createPostoTrabalho( ) : " ); +// System.out.println( "\tSQL : " + ins.toString() ); +// +// Executer executer = EvoBaseProvider.getInstance().getExecuter(); +// executer.executeQuery( ins ); +// +//// Statement st = createStatement(); +//// Integer newId = getMaxTableId("plano_postos_trabalho"); +//// String sql = "insert into plano_postos_trabalho (id, posto_id, medida_id, descricao) values ("; +//// sql += newId + ", "; +//// sql += p.getPosto_id() + ", "; +//// sql += p.getMedida_id() + ", '"; +//// sql += p.getDescricao() + "' "; +//// sql += ")"; +//// +//// System.out.println("SQL CREATE POSTO : " + sql); +//// st.execute(sql); +// } - System.out.println("SQL CREATE POSTO : " + sql); - st.execute(sql); - } // public List getPlanosOnline() throws Exception // { @@ -838,7 +945,7 @@ public class PlanosDataProvider extends GenericDataProvider pa.setObservacoes_dns(rs.getString("observacoes_dns")); pa.setObs_correcao(rs.getString("obs_correcao")); pa.setAreas(getAreasByPlano(pa)); - pa.setTotal_riscos(getTotalRiscosByPlano(pa.getId())); + pa.setTotal_riscos( getTotalRiscosByPlano( pa.getId() ) ); pa.setCorrecao(rs.getString("correcao")); pa.setFase_antes_correcao(new Integer(rs.getInt("fase_antes_correcao"))); pa.setData_validacao_dir_loja(rs.getDate("data_validacao_dir_loja")); @@ -861,74 +968,155 @@ public class PlanosDataProvider extends GenericDataProvider return list; } - private List getAreasByPlano(PlanoActuacao p) throws Exception + private List< Area > getAreasByPlano( PlanoActuacao p ) throws Exception { - Statement st = createStatement(); - String sql = "SELECT * FROM plano_areas WHERE plano_id = " + p.getId() + " ORDER BY descricao"; - ResultSet rs = st.executeQuery(sql); - - List areas = new ArrayList(); - if(rs.isBeforeFirst()) - { - rs.first(); - do - { - Area a = new Area(); - a.setId( new Integer(rs.getInt("id")) ); - a.setPlano_id(new Integer( rs.getInt("plano_id") )); - a.setDescricao(Utils.unicodeToHTML(rs.getString("descricao"))); - a.setRiscos(getRiscosByArea(a)); - areas.add(a); - }while(rs.next()); - } + List< Area > list = new LinkedList< Area >(); + + Select2 query = new Select2( PlanoAreasData.TABLENAME, + new Field( PlanoAreasData.PLANO_ID_FULL ).isEqual( p.getId() ), + new String[] { PlanoAreasData.ID_FULL, PlanoAreasData.PLANO_ID_FULL, PlanoAreasData.DESCRICAO_FULL }, + new String[] { PlanoAreasData.DESCRICAO_FULL } + ); + Virtual2DArray array = getExecuter().executeQuery( query ); + if ( array != null && array.columnLength() > 0 ) + { + for ( int i = 0; i < array.columnLength(); i++ ) + { + Integer areaID = array.get( i, 0 ); + Integer planoID = array.get( i, 1 ); + String descricao = array.get( i, 2 ); + + Area area = new Area(); + area.setId( areaID ); + area.setPlano_id( planoID ); + area.setDescricao( Utils.unicodeToHTML( descricao ) ); + area.setRiscos( getRiscosByArea( area ) ); + list.add( area ); + } + } + + return list; - return areas; +// Statement st = createStatement(); +// String sql = "SELECT * FROM plano_areas WHERE plano_id = " + p.getId() + " ORDER BY descricao"; +// ResultSet rs = st.executeQuery(sql); +// +// List areas = new ArrayList(); +// if(rs.isBeforeFirst()) +// { +// rs.first(); +// do +// { +// Area a = new Area(); +// a.setId( new Integer(rs.getInt("id")) ); +// a.setPlano_id(new Integer( rs.getInt("plano_id") )); +// a.setDescricao(Utils.unicodeToHTML(rs.getString("descricao"))); +// a.setRiscos(getRiscosByArea(a)); +// areas.add(a); +// }while(rs.next()); +// } +// +// return areas; } - private List getRiscosByArea(Area a) throws Exception + private List< Risco > getRiscosByArea( Area a ) throws Exception { - List riscos = new ArrayList(); - Statement st = createStatement(); - String sql = "SELECT plano_riscos.*, coalesce(valor,-1) as ordem_valor FROM plano_riscos " + - "WHERE area_id = " + a.getId() + " ORDER BY ordem_valor DESC, area_id, risco_id;"; - ResultSet rs = st.executeQuery(sql); - - if(rs.isBeforeFirst()) - { - rs.first(); - do - { - Risco r = new Risco(); - r.setId( new Integer(rs.getInt("id")) ); - r.setArea_id(new Integer( rs.getInt("area_id") )); - r.setDescricao( Utils.unicodeToHTML(rs.getString( "descricao" ) ) ); - r.setResponsavel_execucao( Utils.unicodeToHTML( rs.getString("responsavel_execucao") ) ); - r.setPor( rs.getString( "por" ) ); - r.setRecursos_necessarios( Utils.unicodeToHTML( rs.getString("recursos_necessarios") ) ); - java.sql.Date sqlDataInicio = rs.getDate("data_inicio"); - if(sqlDataInicio != null) - { - r.setData_inicio(new java.util.Date(sqlDataInicio.getTime())); - } - - java.sql.Date sqlDataFim = rs.getDate("data_fim"); - if(sqlDataFim != null) - { - r.setData_fim(new java.util.Date(sqlDataFim.getTime())); - } - r.setParecer_dl( Utils.unicodeToHTML( rs.getString("parecer_dl") ) ); - r.setParecer_dns( Utils.unicodeToHTML( rs.getString("parecer_dns") ) ); -// r.setVerificacao_siprp(rs.getString("verificacao_siprp")); - r.setVerificacao_siprp( Utils.unicodeToHTML( rs.getString( "verificacao_siprp" ) ) ); - - r.setMedidas(getMedidasByRisco(r)); - Object valorObject = rs.getObject("valor"); - r.setValor( valorObject == null ? null : (Integer) valorObject ); - riscos.add(r); - } - while ( rs.next() ); - } - return riscos; + List< Risco > list = new LinkedList< Risco >(); + + Select2 query = new Select2( + PlanoRiscosData.TABLENAME, + new Field( PlanoRiscosData.AREA_ID_FULL ).isEqual( a.getId() ), + new String[] { + PlanoRiscosData.ID_FULL, PlanoRiscosData.AREA_ID_FULL, PlanoRiscosData.DESCRICAO_FULL, PlanoRiscosData.RESPONSAVEL_EXECUCAO_FULL, + PlanoRiscosData.POR_FULL, PlanoRiscosData.RECURSOS_NECESSARIOS_FULL, PlanoRiscosData.DATA_INICIO_FULL, PlanoRiscosData.DATA_FIM_FULL, + PlanoRiscosData.PARECER_DL_FULL, PlanoRiscosData.PARECER_DNS_FULL, PlanoRiscosData.VERIFICACAO_SIPRP_FULL, PlanoRiscosData.VALOR_FULL, + "coalesce( valor, -1 ) AS ordem_valor" + }, + new String[] { "ordem_valor DESC", PlanoRiscosData.AREA_ID_FULL, PlanoRiscosData.RISCO_ID_FULL } + ); + query.disableOrderFieldsVerification(); + + Virtual2DArray array = getExecuter().executeQuery( query ); + if ( array != null && array.columnLength() > 0 ) + { + for ( int i = 0; i < array.columnLength(); i++ ) + { + Integer riscoID = array.get( i, 0 ); + Integer areaID = array.get( i, 1 ); + String descricao = array.get( i, 2 ); + String responsavelExecucao = array.get( i, 3 ); + String por = array.get( i, 4 ); + String recursosNecessarios = array.get( i, 5 ); + Date dataInicio = array.get( i, 6 ); + Date dataFim = array.get( i, 7 ); + String parecerDL = array.get( i, 8 ); + String parecerDNS = array.get( i, 9 ); + String verificacaoSiprp = array.get( i, 10 ); + Integer valor = array.get( i, 11 ); + + Risco r = new Risco(); + r.setId( riscoID ); + r.setArea_id( areaID ); + r.setDescricao( Utils.unicodeToHTML( descricao ) ); + r.setResponsavel_execucao( Utils.unicodeToHTML( responsavelExecucao ) ); + r.setPor( por ); + r.setRecursos_necessarios( Utils.unicodeToHTML( recursosNecessarios ) ); + r.setData_inicio( dataInicio ); + r.setData_fim( dataFim ); + r.setParecer_dl( Utils.unicodeToHTML( parecerDL ) ); + r.setParecer_dns( Utils.unicodeToHTML( parecerDNS ) ); + r.setVerificacao_siprp( Utils.unicodeToHTML( verificacaoSiprp ) ); + r.setValor( valor ); + r.setMedidas( getMedidasByRisco( r ) ); + + list.add( r ); + } + } + + return list; + +// List riscos = new ArrayList(); +// Statement st = createStatement(); +// String sql = "SELECT plano_riscos.*, coalesce(valor,-1) as ordem_valor FROM plano_riscos " + +// "WHERE area_id = " + a.getId() + " ORDER BY ordem_valor DESC, area_id, risco_id;"; +// ResultSet rs = st.executeQuery(sql); +// +// if(rs.isBeforeFirst()) +// { +// rs.first(); +// do +// { +// Risco r = new Risco(); +// r.setId( new Integer(rs.getInt("id")) ); +// r.setArea_id(new Integer( rs.getInt("area_id") )); +// r.setDescricao( Utils.unicodeToHTML(rs.getString( "descricao" ) ) ); +// r.setResponsavel_execucao( Utils.unicodeToHTML( rs.getString("responsavel_execucao") ) ); +// r.setPor( rs.getString( "por" ) ); +// r.setRecursos_necessarios( Utils.unicodeToHTML( rs.getString("recursos_necessarios") ) ); +// java.sql.Date sqlDataInicio = rs.getDate("data_inicio"); +// if(sqlDataInicio != null) +// { +// r.setData_inicio(new java.util.Date(sqlDataInicio.getTime())); +// } +// +// java.sql.Date sqlDataFim = rs.getDate("data_fim"); +// if(sqlDataFim != null) +// { +// r.setData_fim(new java.util.Date(sqlDataFim.getTime())); +// } +// r.setParecer_dl( Utils.unicodeToHTML( rs.getString("parecer_dl") ) ); +// r.setParecer_dns( Utils.unicodeToHTML( rs.getString("parecer_dns") ) ); +//// r.setVerificacao_siprp(rs.getString("verificacao_siprp")); +// r.setVerificacao_siprp( Utils.unicodeToHTML( rs.getString( "verificacao_siprp" ) ) ); +// +// r.setMedidas(getMedidasByRisco(r)); +// Object valorObject = rs.getObject("valor"); +// r.setValor( valorObject == null ? null : (Integer) valorObject ); +// riscos.add(r); +// } +// while ( rs.next() ); +// } +// return riscos; } // private List getValoresByRisco(Risco r) throws Exception @@ -980,115 +1168,248 @@ public class PlanosDataProvider extends GenericDataProvider // return valores; // } - private List getMedidasByRisco(Risco r) throws Exception + private List getMedidasByRisco( Risco r ) throws Exception { - List medidas = new ArrayList(); - - Statement st = createStatement(); - String sql = "SELECT * FROM plano_medidas WHERE risco_id = " + r.getId() + " ORDER BY id"; - ResultSet rs = st.executeQuery(sql); - - if(rs.isBeforeFirst()) - { - rs.first(); - do - { - Medida m = new Medida(); - m.setId( new Integer(rs.getInt("id")) ); - //m.setValor_id(new Integer( rs.getInt("valor_id") )); - m.setDescricao(Utils.unicodeToHTML(rs.getString("descricao"))); - m.setPostos(getPostosByMedida(m)); - m.setValidarMedidaId( rs.getInt( "estado_medidas_id" ) ); - medidas.add(m); - }while(rs.next()); - } - return medidas; + List< Medida > list = new LinkedList< Medida >(); + + Select2 query = new Select2( PlanoMedidasData.TABLENAME, + new Field( PlanoMedidasData.RISCO_ID_FULL ).isEqual( r.getId() ), + new String[] { + PlanoMedidasData.ID_FULL, PlanoMedidasData.DESCRICAO_FULL, PlanoMedidasData.ESTADO_MEDIDAS_ID_FULL + }, + new String[] { PlanoMedidasData.ID_FULL } + ); + Virtual2DArray array = getExecuter().executeQuery( query ); + if ( array != null ) + { + for ( int i = 0; i < array.columnLength(); i++ ) + { + Integer planoMedidaID = array.get( i, 0 ); + String descricao = array.get( i, 1 ); + Integer estado = array.get( i, 2 ); + + Medida m = new Medida(); + m.setId( planoMedidaID ); + m.setDescricao( Utils.unicodeToHTML( descricao ) ); + m.setValidarMedidaId( estado ); + m.setPostos( getPostosByMedida( m ) ); + + list.add( m ); + } + } + + return list; + + +// List medidas = new ArrayList(); +// +// Statement st = createStatement(); +// String sql = "SELECT * FROM plano_medidas WHERE risco_id = " + r.getId() + " ORDER BY id"; +// ResultSet rs = st.executeQuery(sql); +// +// if(rs.isBeforeFirst()) +// { +// rs.first(); +// do +// { +// Medida m = new Medida(); +// m.setId( new Integer(rs.getInt("id")) ); +// //m.setValor_id(new Integer( rs.getInt("valor_id") )); +// m.setDescricao(Utils.unicodeToHTML(rs.getString("descricao"))); +// m.setPostos(getPostosByMedida(m)); +// m.setValidarMedidaId( rs.getInt( "estado_medidas_id" ) ); +// medidas.add(m); +// }while(rs.next()); +// } +// return medidas; } - private List getPostosByMedida(Medida m) throws Exception + private List< PostoTrabalho > getPostosByMedida( Medida m ) throws Exception { - List postos = new ArrayList(); - - Statement st = createStatement(); - String sql = "SELECT * FROM plano_postos_trabalho WHERE medida_id = " + m.getId() + " ORDER BY id"; - ResultSet rs = st.executeQuery(sql); - - if(rs.isBeforeFirst()) - { - rs.first(); - do - { - PostoTrabalho p = new PostoTrabalho(); - p.setId( new Integer(rs.getInt("id")) ); - p.setMedida_id(new Integer( rs.getInt("medida_id") )); - p.setDescricao(Utils.unicodeToHTML(rs.getString("descricao"))); - postos.add(p); - }while(rs.next()); - } - return postos; + List< PostoTrabalho > list = new LinkedList< PostoTrabalho >(); + + Select2 query = new Select2( PlanoPostosTrabalhoData.TABLENAME, + new Field( PlanoPostosTrabalhoData.MEDIDA_ID_FULL ).isEqual( m.getId() ), + new String[] { PlanoPostosTrabalhoData.ID_FULL, PlanoPostosTrabalhoData.MEDIDA_ID_FULL, PlanoPostosTrabalhoData.DESCRICAO_FULL }, + new String[] { PlanoPostosTrabalhoData.ID_FULL } + ); + Virtual2DArray array = getExecuter().executeQuery( query ); + if ( array != null ) + { + for ( int i = 0; i < array.columnLength(); i++ ) + { + Integer planoPostoTrabalhoID = array.get( i, 0 ); + Integer medidaID = array.get( i, 1 ); + String descricao = array.get( i, 2 ); + + PostoTrabalho p = new PostoTrabalho(); + p.setId( planoPostoTrabalhoID ); + p.setMedida_id( medidaID ); + p.setDescricao( Utils.unicodeToHTML( descricao ) ); + + list.add( p ); + } + } + + return list; + + +// List postos = new ArrayList(); +// +// Statement st = createStatement(); +// String sql = "SELECT * FROM plano_postos_trabalho WHERE medida_id = " + m.getId() + " ORDER BY id"; +// ResultSet rs = st.executeQuery(sql); +// +// if(rs.isBeforeFirst()) +// { +// rs.first(); +// do +// { +// PostoTrabalho p = new PostoTrabalho(); +// p.setId( new Integer(rs.getInt("id")) ); +// p.setMedida_id(new Integer( rs.getInt("medida_id") )); +// p.setDescricao(Utils.unicodeToHTML(rs.getString("descricao"))); +// postos.add(p); +// }while(rs.next()); +// } +// return postos; } - public int getTotalRiscosByPlano(Integer plano_id) + public int getTotalRiscosByPlano( Integer planoID ) { - Statement st = createStatement(); - String sql = "select count(plano_riscos.id) as total_riscos from plano_riscos "; - sql += "inner join plano_areas on plano_riscos.area_id = plano_areas.id "; - sql += "inner join planos_actuacao on plano_areas.plano_id = planos_actuacao.id "; - sql += "where planos_actuacao.id = " + plano_id; - sql += " and planos_actuacao.deleted_date is null"; - int total_riscos = 0; - - try - { - ResultSet rs = st.executeQuery(sql); - if(rs.isBeforeFirst()) - { - rs.first(); - - total_riscos = rs.getInt("total_riscos"); - } - } - catch(Exception ex) - { - ErrorLogger.logException( ex ); - } + int count = 0; + try + { + Select2 query = new Select2( + new String[] { PlanoRiscosData.TABLENAME, PlanoAreasData.TABLENAME, PlanosActuacaoData.TABLENAME }, + new Integer[] { Select2.JOIN_INNER, Select2.JOIN_INNER }, + new Expression[] { + new Field( PlanoRiscosData.AREA_ID_FULL ).isEqual( new Field( PlanoAreasData.ID_FULL ) ), + new Field( PlanoAreasData.PLANO_ID_FULL ).isEqual( new Field( PlanosActuacaoData.ID_FULL ) ) + }, + new String[] { + "COUNT( " + PlanoRiscosData.ID_FULL + " ) AS total_riscos" + }, + new Field( PlanosActuacaoData.ID_FULL ).isEqual( planoID ).and( + new Field( PlanosActuacaoData.DELETED_DATE_FULL ).isEqual( null ) + ), + new String[] {}, + null, + null, + null + ); + Virtual2DArray array = getExecuter().executeQuery( query ); + if ( array != null && array.columnLength() > 0 ) + { + Long countL = array.get( 0, 0 ); + count = countL == null ? 0 : countL.intValue(); + } + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return count; - return total_riscos; + +// Statement st = createStatement(); +// String sql = "select count(plano_riscos.id) as total_riscos from plano_riscos "; +// sql += "inner join plano_areas on plano_riscos.area_id = plano_areas.id "; +// sql += "inner join planos_actuacao on plano_areas.plano_id = planos_actuacao.id "; +// sql += "where planos_actuacao.id = " + plano_id; +// sql += " and planos_actuacao.deleted_date is null"; +// int total_riscos = 0; +// +// try +// { +// ResultSet rs = st.executeQuery(sql); +// if(rs.isBeforeFirst()) +// { +// rs.first(); +// +// total_riscos = rs.getInt("total_riscos"); +// } +// } +// catch(Exception ex) +// { +// ErrorLogger.logException( ex ); +// } +// +// return total_riscos; } // POSTOS TRABALHO - public void createPostoTrabalhoByRisco(Integer postoTrabalhoId, Integer riscoId, Integer planoId) throws Exception - { - Statement st = createStatement(); - Integer newId = getMaxTableId("postos_trabalho_risco"); - - String sql = "INSERT INTO postos_trabalho_risco (id, posto_trabalho_id, risco_id, plano_id) VALUES ("; - sql += newId + ", "; - sql += postoTrabalhoId + ", "; - sql += riscoId + ", "; - sql += planoId + ")"; - - System.out.println("SQL CREATE POSTO TRABALHO BY RISCO : " + sql); - st.execute(sql); - } +// public void createPostoTrabalhoByRisco( Integer postoTrabalhoId, Integer riscoId, Integer planoId ) throws Exception +// { +// Integer newID = getMaxTableId( "postos_trabalho_risco" ); +// +// Insert ins = new Insert( "postos_trabalho_risco", new Assignment[] { +// new Assignment( new Field( "id" ), newID ), +// new Assignment( new Field( "posto_trabalho_id" ), postoTrabalhoId ), +// new Assignment( new Field( "risco_id" ), riscoId ), +// new Assignment( new Field( "plano_id" ), planoId ) +// } ); +// +// System.out.println( "\nPlanosDataProvider . createPostoTrabalhoByRisco( " + postoTrabalhoId + ", " + riscoId + ", " + planoId + " ) : " ); +// System.out.println( "\tSQL : " + ins.toString() ); +// +// Executer executer = EvoBaseProvider.getInstance().getLocalExecuter(); +// executer.executeQuery( ins ); +// +//// Statement st = createStatement(); +//// Integer newId = getMaxTableId("postos_trabalho_risco"); +//// +//// String sql = "INSERT INTO postos_trabalho_risco (id, posto_trabalho_id, risco_id, plano_id) VALUES ("; +//// sql += newId + ", "; +//// sql += postoTrabalhoId + ", "; +//// sql += riscoId + ", "; +//// sql += planoId + ")"; +//// +//// System.out.println("SQL CREATE POSTO TRABALHO BY RISCO : " + sql); +//// st.execute(sql); +// } - public PostoTrabalho getPostoTrabalho(Integer postoTrabalhoId) throws Exception - { - PostoTrabalho pt = null; - Statement st = createStatement(); - String sql = "SELECT * FROM postos_trabalho WHERE id = " + postoTrabalhoId + " AND activo = 'y'"; - ResultSet rs = st.executeQuery(sql); +// public PostoTrabalho getPostoTrabalho( Integer postoTrabalhoID ) throws Exception +// { +// PostoTrabalho pt = null; +// +// Executer executer = EvoBaseProvider.getInstance().getLocalExecuter(); +// +// Select2 query = new Select2( "postos_trabalho", +// new Field( "id" ).isEqual( postoTrabalhoID ).and( new Field( "activo" ).isEqual( "y" ) ), +// new String[] { "id", "descricao", "activo" }, +// new String[] {} +// ); +// Virtual2DArray array = executer.executeQuery( query ); +// if ( array != null && array.columnLength() > 0 ) +// { +// Integer id = array.get( 0, 0 ); +// String descricao = array.get( 0, 1 ); +// String activo = array.get( 0, 2 ); +// +// pt = new PostoTrabalho(); +// pt.setId( id ); +// pt.setDescricao( descricao ); +// pt.setActivo( activo ); +// } +// return pt; +// +//// PostoTrabalho pt = null; +//// Statement st = createStatement(); +//// String sql = "SELECT * FROM postos_trabalho WHERE id = " + postoTrabalhoID + " AND activo = 'y'"; +//// ResultSet rs = st.executeQuery(sql); +//// +//// if(rs.isBeforeFirst()) +//// { +//// rs.first(); +//// pt = new PostoTrabalho(); +//// pt.setId( new Integer( rs.getInt("id") ) ); +//// pt.setDescricao( rs.getString("descricao") ); +//// pt.setActivo( rs.getString("activo") ); +//// } +//// return pt; +// } - if(rs.isBeforeFirst()) - { - rs.first(); - pt = new PostoTrabalho(); - pt.setId( new Integer( rs.getInt("id") ) ); - pt.setDescricao( rs.getString("descricao") ); - pt.setActivo( rs.getString("activo") ); - } - return pt; - } // public ArrayList getPostosTrabalhoByRisco(Integer planoId, Integer riscoId) throws Exception // { @@ -1114,55 +1435,70 @@ public class PlanosDataProvider extends GenericDataProvider // } // RISCOS - public void createRiscoByPlano(Integer riscoId, Integer planoId) throws Exception - { - Statement st = createStatement(); - Integer newId = getMaxTableId("riscos_plano_actuacao"); - - String sql = "INSERT INTO riscos_plano_actuacao (id, risco_id, plano_id) VALUES ("; - sql += newId + ", "; - sql += riscoId + ", "; - sql += planoId + ")"; - - System.out.println("SQL CREATE RISCO BY PLANO : " + sql); - st.execute(sql); - } +// public void createRiscoByPlano(Integer riscoId, Integer planoId) throws Exception +// { +// Integer newID = getMaxTableId( "riscos_plano_actuacao" ); +// +// Insert ins = new Insert( "riscos_plano_actuacao", new Assignment[] { +// new Assignment( new Field( "id" ), newID ), +// new Assignment( new Field( "risco_id" ), riscoId ), +// new Assignment( new Field( "plano_id" ), planoId ) +// } ); +// +// System.out.println( "\nPlanosDataProvider . createRiscoByPlano( " + riscoId + ", " + planoId + " ) : " ); +// System.out.println( "\tSQL : " + ins.toString() ); +// +// Executer executer = EvoBaseProvider.getInstance().getLocalExecuter(); +// executer.executeQuery( ins ); +// +// +//// Statement st = createStatement(); +//// Integer newId = getMaxTableId("riscos_plano_actuacao"); +//// +//// String sql = "INSERT INTO riscos_plano_actuacao (id, risco_id, plano_id) VALUES ("; +//// sql += newId + ", "; +//// sql += riscoId + ", "; +//// sql += planoId + ")"; +//// +//// System.out.println("SQL CREATE RISCO BY PLANO : " + sql); +//// st.execute(sql); +// } - public Risco getRisco(Integer riscoId) throws Exception - { - Risco r = null; - Statement st = createStatement(); - String sql = "SELECT * FROM riscos WHERE id = " + riscoId + " AND activo = 'y'"; - ResultSet rs = st.executeQuery(sql); - - if(rs.isBeforeFirst()) - { - rs.first(); - r = new Risco(); - r.setId( new Integer( rs.getInt("id") ) ); - r.setDescricao( rs.getString("descricao") ); - r.setResponsavel_execucao(rs.getString("responsavel_execucao")); - r.setPor(rs.getString("por")); - r.setRecursos_necessarios(rs.getString("recursos_necessarios")); - java.sql.Date sqlDataInicio = rs.getDate("data_inicio"); - if(sqlDataInicio != null) - { - r.setData_inicio(new java.util.Date(sqlDataInicio.getTime())); - } - - java.sql.Date sqlDataFim = rs.getDate("data_fim"); - if(sqlDataFim != null) - { - r.setData_fim(new java.util.Date(sqlDataFim.getTime())); - } - r.setParecer_dl(rs.getString("parecer_dl")); - r.setParecer_dns(rs.getString("parecer_dns")); - r.setVerificacao_siprp(rs.getString("verificacao_siprp")); - r.setActivo( rs.getString("activo") ); - r.setValor(new Integer(rs.getInt("valor"))); - } - return r; - } +// public Risco getRisco( Integer riscoId ) throws Exception +// { +// Risco r = null; +// Statement st = createStatement(); +// String sql = "SELECT * FROM riscos WHERE id = " + riscoId + " AND activo = 'y'"; +// ResultSet rs = st.executeQuery(sql); +// +// if(rs.isBeforeFirst()) +// { +// rs.first(); +// r = new Risco(); +// r.setId( new Integer( rs.getInt("id") ) ); +// r.setDescricao( rs.getString("descricao") ); +// r.setResponsavel_execucao(rs.getString("responsavel_execucao")); +// r.setPor(rs.getString("por")); +// r.setRecursos_necessarios(rs.getString("recursos_necessarios")); +// java.sql.Date sqlDataInicio = rs.getDate("data_inicio"); +// if(sqlDataInicio != null) +// { +// r.setData_inicio(new java.util.Date(sqlDataInicio.getTime())); +// } +// +// java.sql.Date sqlDataFim = rs.getDate("data_fim"); +// if(sqlDataFim != null) +// { +// r.setData_fim(new java.util.Date(sqlDataFim.getTime())); +// } +// r.setParecer_dl(rs.getString("parecer_dl")); +// r.setParecer_dns(rs.getString("parecer_dns")); +// r.setVerificacao_siprp(rs.getString("verificacao_siprp")); +// r.setActivo( rs.getString("activo") ); +// r.setValor(new Integer(rs.getInt("valor"))); +// } +// return r; +// } // public ArrayList getRiscosByPlano(Integer planoId) throws Exception // { @@ -1188,60 +1524,90 @@ public class PlanosDataProvider extends GenericDataProvider // } // MEDIDAS - public void createMedidaByRisco(Integer medidaId, Integer riscoId, Integer planoId) throws Exception - { - Statement st = createStatement(); - Integer newId = getMaxTableId("medidas_plano_actuacao_risco"); - - String sql = "INSERT INTO postos_trabalho_risco (id, medida_id, risco_id, plano_id) VALUES ("; - sql += newId + ", "; - sql += medidaId + ", "; - sql += riscoId + ", "; - sql += planoId + ")"; - - System.out.println("SQL CREATE MEDIDA BY RISCO : " + sql); - st.execute(sql); - } +// public void createMedidaByRisco(Integer medidaId, Integer riscoId, Integer planoId) throws Exception +// { +// Statement st = createStatement(); +// Integer newId = getMaxTableId("medidas_plano_actuacao_risco"); +// +// String sql = "INSERT INTO postos_trabalho_risco (id, medida_id, risco_id, plano_id) VALUES ("; +// sql += newId + ", "; +// sql += medidaId + ", "; +// sql += riscoId + ", "; +// sql += planoId + ")"; +// +// System.out.println("SQL CREATE MEDIDA BY RISCO : " + sql); +// st.execute(sql); +// } + public List< EstadoMedida > getEstadoMedidas() throws Exception { - Statement st = createStatement(); - String sql = "SELECT * FROM estado_medidas WHERE activo = 'y' ORDER BY ordem ASC"; - ResultSet rs = st.executeQuery( sql ); - - List< EstadoMedida > list = new Vector< EstadoMedida >(); - while( rs.next() ) + List< EstadoMedida > list = new LinkedList< EstadoMedida >(); + + Select2 query = new Select2( EstadoMedidasData.TABLENAME, + new Field( EstadoMedidasData.ACTIVO_FULL ).isEqual( "y" ), + new String[] { + EstadoMedidasData.ID_FULL, EstadoMedidasData.DESCRICAO_FULL, EstadoMedidasData.ORDEM_FULL, + EstadoMedidasData.ACTIVO_FULL + }, + new String[] { EstadoMedidasData.ORDEM_FULL + " ASC" } + ); + Virtual2DArray array = getExecuter().executeQuery( query ); + if ( array != null ) { - Integer ID = rs.getInt( "id" ); - String desc = Utils.unicodeToHTML( rs.getString( "descricao" ) ); - - EstadoMedida estado = new EstadoMedida(); - estado.setId( ID ); - estado.setDescricao( desc ); - list.add( estado ); + for ( int i = 0; i < array.columnLength(); i++ ) + { + Integer estadoID = array.get( i, 0 ); + String descricao = array.get( i, 1 ); + Integer ordem = array.get( i, 2 ); + String activo = array.get( i, 3 ); + + EstadoMedida estado = new EstadoMedida(); + estado.setId( estadoID ); + estado.setDescricao( Utils.unicodeToHTML( descricao ) ); + list.add( estado ); + } } - return list; - } - public Medida getMedida(Integer medidaId) throws Exception - { - Medida m= null; - Statement st = createStatement(); - String sql = "SELECT * FROM medidas_plano_actuacao WHERE id = " + medidaId + " AND activo = 'y'"; - ResultSet rs = st.executeQuery(sql); + +// Statement st = createStatement(); +// String sql = "SELECT * FROM estado_medidas WHERE activo = 'y' ORDER BY ordem ASC"; +// ResultSet rs = st.executeQuery( sql ); +// +// List< EstadoMedida > list = new Vector< EstadoMedida >(); +// while( rs.next() ) +// { +// Integer ID = rs.getInt( "id" ); +// String desc = Utils.unicodeToHTML( rs.getString( "descricao" ) ); +// +// EstadoMedida estado = new EstadoMedida(); +// estado.setId( ID ); +// estado.setDescricao( desc ); +// list.add( estado ); +// } +// +// return list; + } - if(rs.isBeforeFirst()) - { - rs.first(); - m = new Medida(); - m.setId( new Integer( rs.getInt("id") ) ); - m.setDescricao( rs.getString("descricao") ); - m.setActiva( rs.getString("activo") ); - } - return m; - } +// public Medida getMedida(Integer medidaId) throws Exception +// { +// Medida m= null; +// Statement st = createStatement(); +// String sql = "SELECT * FROM medidas_plano_actuacao WHERE id = " + medidaId + " AND activo = 'y'"; +// ResultSet rs = st.executeQuery(sql); +// +// if(rs.isBeforeFirst()) +// { +// rs.first(); +// m = new Medida(); +// m.setId( new Integer( rs.getInt("id") ) ); +// m.setDescricao( rs.getString("descricao") ); +// m.setActiva( rs.getString("activo") ); +// } +// return m; +// } // public List getPlanosDelayed() throws Exception // { diff --git a/trunk/PlanosActuacao/src/java/db/providers/RelatoriosDataProvider.java b/trunk/PlanosActuacao/src/java/db/providers/RelatoriosDataProvider.java index a5ffc625..99fdd652 100644 --- a/trunk/PlanosActuacao/src/java/db/providers/RelatoriosDataProvider.java +++ b/trunk/PlanosActuacao/src/java/db/providers/RelatoriosDataProvider.java @@ -6,6 +6,8 @@ package db.providers; import com.evolute.utils.error.ErrorLogger; +import db.data.siprp_local.outer.EmpresasData; +import db.data.siprp_local.outer.ImageData; import db.entidades.Area; import db.entidades.Medida; import db.entidades.PlanoActuacao; @@ -48,7 +50,7 @@ public class RelatoriosDataProvider extends GenericDataProvider { try { - plano = getAreasByPlano(plano, relatorioId); + plano = getAreasByPlano(plano, relatorioId); } catch(Exception ex) { @@ -57,24 +59,23 @@ public class RelatoriosDataProvider extends GenericDataProvider return plano; } - - private PlanoActuacao getAreasByPlano(PlanoActuacao plano, Integer relatorioId) throws Exception + + private PlanoActuacao getAreasByPlano( PlanoActuacao plano, Integer relatorioID ) throws Exception { -// Statement st = dblocal.createStatement(); Statement st = createLocalStatement(); - + String sql = "select distinct area_id, hs_relatorio_area.description as descricao 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 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.id = " + relatorioId + " "; + sql += "where hs_relatorio.id = " + relatorioID + " "; sql += "order by area_id "; System.out.println("AREAS BY PLANO SQL : " + sql); - ResultSet rs = st.executeQuery(sql); - - List areas = new ArrayList(); + ResultSet rs = st.executeQuery(sql); + + List areas = new ArrayList(); if(rs.isBeforeFirst()) { rs.first(); @@ -88,20 +89,20 @@ public class RelatoriosDataProvider extends GenericDataProvider a.setDescricao(Utils.unicodeToHTML(rs.getString("descricao"))); try { - a.setRiscos(getRiscosByArea(a)); + a.setRiscos(getRiscosByArea(a)); } catch(Exception ex) { - System.out.println("ERRO RISCOS BY AREA !!!!"); + System.out.println("ERRO RISCOS BY AREA !!!!"); ErrorLogger.logException( ex ); a.setRiscos(null); } - areas.add(a); + areas.add(a); } }while(rs.next()); - plano.setAreas(areas); + plano.setAreas(areas); } return plano; } @@ -416,45 +417,72 @@ public class RelatoriosDataProvider extends GenericDataProvider public String getEmpresaNome(Integer empresa_id) throws Exception { -// Statement st = dblocal.createStatement(); - Statement st = createLocalStatement(); - - String sql ="SELECT designacao_social FROM empresas WHERE id = " + empresa_id; - ResultSet rslocal = st.executeQuery(sql); - rslocal.first(); - String nome = Utils.unicodeToHTML(rslocal.getString("designacao_social")); - return nome; + String nome = ""; + EmpresasData empresaData = getLocalProvider().load( EmpresasData.class, empresa_id, EmpresasData.ID ); + if ( empresaData != null ) + { + nome = Utils.unicodeToHTML( empresaData.getDesignacao_social() ); + } + return nome; + +// Statement st = createLocalStatement(); +// +// String sql ="SELECT designacao_social FROM empresas WHERE id = " + empresa_id; +// ResultSet rslocal = st.executeQuery(sql); +// rslocal.first(); +// String nome = Utils.unicodeToHTML(rslocal.getString("designacao_social")); +// return nome; } public byte[] getLogoByEmpresa( Integer empresaId ) throws Exception { -// Statement st = dblocal.createStatement(); - Statement st = createLocalStatement(); - - String sql = "select empresa_logo_id from empresas where id = " + empresaId; - ResultSet rslocal = st.executeQuery(sql); - if ( rslocal.isBeforeFirst() ) - { - rslocal.first(); - Integer logoId = new Integer( rslocal.getInt("empresa_logo_id") ); - byte[] logo = getLogo( logoId ); - return logo; - } + byte[] logo = null; + EmpresasData empresaData = getLocalProvider().load( EmpresasData.class, empresaId, EmpresasData.ID ); + if ( empresaData != null ) + { + Integer logoID = empresaData.getEmpresa_logo_id(); + logo = getLogo( logoID ); + } + return logo; - return null; - } - - public byte[] getLogo(Integer logoId) throws Exception - { -// Statement st = dblocal.createStatement(); - Statement st = createLocalStatement(); - - String sql = "select image_data from image where id = " + logoId; - ResultSet rslocal = st.executeQuery(sql); - rslocal.first(); - byte[] logo = rslocal.getBytes("image_data"); - System.out.println("LOGO SIZE : " + logo.length); - return logo; +// Statement st = createLocalStatement(); +// +// String sql = "select empresa_logo_id from empresas where id = " + empresaId; +// ResultSet rslocal = st.executeQuery(sql); +// if ( rslocal.isBeforeFirst() ) +// { +// rslocal.first(); +// Integer logoId = new Integer( rslocal.getInt("empresa_logo_id") ); +// byte[] logo = getLogo( logoId ); +// return logo; +// } +// +// return null; } + + + public byte[] getLogo( Integer logoID ) throws Exception + { + byte[] logo = null; + ImageData imageData = getLocalProvider().load( ImageData.class, logoID, ImageData.ID ); + if ( imageData != null ) + { + logo = imageData.getImage_data(); + } + System.out.println( "\nRelatoriosDataProvider . getLogo( " + logoID + " ) : " + ( logo == null ? "null" : "size = " + logo.length ) ); + return logo; + } + +// public byte[] getLogo(Integer logoId) throws Exception +// { +// Statement st = createLocalStatement(); +// +// String sql = "select image_data from image where id = " + logoId; +// ResultSet rslocal = st.executeQuery(sql); +// rslocal.first(); +// byte[] logo = rslocal.getBytes("image_data"); +// System.out.println("LOGO SIZE : " + logo.length); +// return logo; +// } } \ No newline at end of file