/* * 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.User; import global.Global; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; /** * * @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 = ""; //To Do sql string here : 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 += "WHERE id = " + p.getId(); System.out.println("SQL UPDATE PLANO : " + sql); st.execute(sql); } public ArrayList getPlanosActivos(User 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 estado = 1 OR estado = 5"; break; case Global.RESPONSAVEL_SEGURANCA: sql += "WHERE estado = 2"; break; case Global.DIRECTOR_LOJA: sql += "WHERE estado = 3"; break; case Global.DIRECTOR_NACIONAL_SEGURANCA: sql += "WHERE estado = 4"; break; } ResultSet rs = st.executeQuery(sql); ArrayList list = fillPlanoFields(rs); return list; } public ArrayList getPlanosConcluidos(User u) throws Exception { Statement st = createStatement(); String sql = "select * from planos_actuacao where estado = 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.setEstado( new Integer( rs.getInt("estado") ) ); 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; } }