You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

319 lines
10 KiB

/*
* 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<Date> 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;
}
}