/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package db.providers; import db.entidades.Medida; import db.entidades.PlanoActuacao; import db.entidades.PostoTrabalho; import db.entidades.Risco; import db.entidades.Utilizador; import global.Global; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * * @author lluis */ public class PlanosDataProvider extends GenericDataProvider{ // PLANOS public Integer createPlano(PlanoActuacao p) throws Exception { Statement st = createStatement(); Integer newId = getMaxTableId("planos_actuacao"); String sql = "insert into planos_actuacao (id, estabelecimento_id, fase, data_visita, nome_estabelecimento) values ("; sql += newId + ", "; sql += p.getEstabelecimento_id() + ", "; sql += p.getFase() + ", '"; java.sql.Date sqlDate = new java.sql.Date(p.getData_visita().getTime()); sql += sqlDate + "', '"; sql += p.getNome_estabelecimento() + "'"; sql += ")"; System.out.println("SQL CREATE PLANO : " + sql); st.execute(sql); return newId; } public void updatePlano(PlanoActuacao p) throws Exception { Statement st = createStatement(); String sql = ""; //To Do sql string here : sql = "UPDATE planos_actuacao SET fase = " + p.getFase() + " "; sql += "WHERE id = " + p.getId(); System.out.println("SQL UPDATE PLANO : " + sql); st.execute(sql); } public List getPlanosOnline() throws Exception { ArrayList list = new ArrayList(); Statement st = createStatement(); String sql = "select data_visita from planos_actuacao"; 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()); list.add(data_visita); }while(rs.next()); } return list; } public ArrayList getPlanosActivos(Utilizador u) throws Exception { int userType = u.getTipo().intValue(); Statement st = createStatement(); String sql = "select * from planos_actuacao "; switch(userType) { case Global.TECNICO_HS: sql += "WHERE fase = 1 OR fase = 5"; break; case Global.RESPONSAVEL_SEGURANCA: sql += "WHERE fase = 2"; break; case Global.DIRECTOR_LOJA: sql += "WHERE fase = 3"; break; case Global.DIRECTOR_NACIONAL_SEGURANCA: sql += "WHERE fase = 4"; break; } ResultSet rs = st.executeQuery(sql); ArrayList list = fillPlanoFields(rs); return list; } public ArrayList getPlanosSeguimento(Utilizador u) throws Exception { Statement st = createStatement(); int userType = u.getTipo().intValue(); String sql = "select * from planos_actuacao "; switch(userType) { case Global.TECNICO_HS: sql += "WHERE fase <> 1 AND fase <> 5 AND fase <> 6"; break; case Global.RESPONSAVEL_SEGURANCA: sql += "WHERE fase <> 2 AND fase <> 6"; break; case Global.DIRECTOR_LOJA: sql += "WHERE fase <> 3 AND fase <> 6"; break; case Global.DIRECTOR_NACIONAL_SEGURANCA: sql += "WHERE fase <> 4 AND fase <> 6"; break; } ResultSet rs = st.executeQuery(sql); ArrayList list = fillPlanoFields(rs); return list; } public ArrayList getPlanosConcluidos() throws Exception { Statement st = createStatement(); String sql = "select * from planos_actuacao where fase = 6"; ResultSet rs = st.executeQuery(sql); ArrayList list = fillPlanoFields(rs); return list; } private ArrayList fillPlanoFields(ResultSet rs) throws Exception { ArrayList list = new ArrayList(); if(rs.isBeforeFirst()) { rs.first(); do { PlanoActuacao pa = new PlanoActuacao(); pa.setId( new Integer( rs.getInt("id") ) ); pa.setEstabelecimento_id(new Integer(rs.getInt("estabelecimento_id"))); pa.setNome_estabelecimento(rs.getString("nome_estabelecimento")); pa.setFase( new Integer( rs.getInt("fase") ) ); java.sql.Date sqlDate = rs.getDate("data_visita"); pa.setData_visita(new java.util.Date(sqlDate.getTime())); list.add(pa); }while(rs.next()); } return list; } // 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 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); 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 { ArrayList list = new ArrayList(); Statement st = createStatement(); String sql = "SELECT * FROM postos_trabalho_risco WHERE plano_id = " + planoId + " AND risco_id = " + riscoId; ResultSet rs = st.executeQuery(sql); if(rs.isBeforeFirst()) { rs.first(); do { Integer postoTrabalhoId = new Integer( rs.getInt("posto_trabalho_id") ); PostoTrabalho pt = getPostoTrabalho(postoTrabalhoId); pt.setRisco_id(riscoId); list.add(pt); }while(rs.next()); } return list; } // 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 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.setActivo( rs.getString("activo") ); } return r; } public ArrayList getRiscosByPlano(Integer planoId) throws Exception { ArrayList list = new ArrayList(); Statement st = createStatement(); String sql = "SELECT * FROM riscos_plano_actuacao WHERE plano_id = " + planoId; ResultSet rs = st.executeQuery(sql); if(rs.isBeforeFirst()) { rs.first(); do { Integer riscoId = new Integer( rs.getInt("risco_id") ); Risco r = getRisco(riscoId); r.setPlano_id(planoId); list.add(r); }while(rs.next()); } return list; } // 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 Medida getMedida(Integer medidaId) throws Exception { Medida m= null; Statement st = createStatement(); String sql = "SELECT * FROM madidas_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; } }