04/11/2008

git-svn-id: https://svn.coded.pt/svn/SIPRP@797 bb69d46d-e84e-40c8-a05a-06db0d633741
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
L Luís = 17 years ago
parent 868fc4da14
commit ee8745dfd6

@ -0,0 +1,65 @@
/*
* Dblocal.java
*
* Created on September 20, 2007, 2:07 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
/**
*
* @author lluis
*/
public class Dblocal {
String connectionURL = "jdbc:postgresql://storage/siprp_local"; //testes
//String connectionURL = "jdbc:postgresql://localhost:5436/siprp_local_3";
String User = "postgres";
String Pass = null;
Connection connection = null;
/** Creates a new instance of Dblocal */
public Dblocal() {
}
public Connection connect() throws Exception
{
Class.forName("org.postgresql.Driver").newInstance();
connection = DriverManager.getConnection(connectionURL, User, Pass);
HttpSession session = (HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(true);
session.setAttribute("connection_local", connection);
return connection;
}
public Statement createStatement()
{
HttpSession session = (HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(false);
connection = (Connection) session.getAttribute("connection_local");
Statement st;
try
{
st = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
return st;
}
catch(Exception ex)
{
ex.printStackTrace();
return null;
}
}
public void close() throws Exception
{
connection.close();
}
}

@ -0,0 +1,51 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package db.entidades;
import java.util.List;
/**
*
* @author lluis
*/
public class Area {
private Integer id;
private Integer plano_id;
private String descricao;
private List<Risco> riscos;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public List<Risco> getRiscos() {
return riscos;
}
public void setRiscos(List<Risco> riscos) {
this.riscos = riscos;
}
public Integer getPlano_id() {
return plano_id;
}
public void setPlano_id(Integer plano_id) {
this.plano_id = plano_id;
}
}

@ -14,7 +14,7 @@ import java.util.Vector;
*/ */
public class Medida { public class Medida {
private Integer id; private Integer id;
private Integer risco_id; private Integer valor_id;
private String descricao; private String descricao;
private String activa; private String activa;
private List<PostoTrabalho> postos; private List<PostoTrabalho> postos;
@ -43,12 +43,12 @@ public class Medida {
this.activa = activa; this.activa = activa;
} }
public Integer getRisco_id() { public Integer getValor_id() {
return risco_id; return valor_id;
} }
public void setRisco_id(Integer risco_id) { public void setValor_id(Integer valor_id) {
this.risco_id = risco_id; this.valor_id = valor_id;
} }
public List<PostoTrabalho> getPostos() { public List<PostoTrabalho> getPostos() {

@ -20,6 +20,7 @@ public class PlanoActuacao {
private String nome_estabelecimento; private String nome_estabelecimento;
private Integer fase; private Integer fase;
private String descricao; private String descricao;
private List<Area> areas;
private List<Risco> riscos; private List<Risco> riscos;
// //
@ -128,4 +129,12 @@ public class PlanoActuacao {
public void setNome_estabelecimento(String nome_estabelecimento) { public void setNome_estabelecimento(String nome_estabelecimento) {
this.nome_estabelecimento = nome_estabelecimento; this.nome_estabelecimento = nome_estabelecimento;
} }
public List<Area> getAreas() {
return areas;
}
public void setAreas(List<Area> areas) {
this.areas = areas;
}
} }

@ -11,7 +11,6 @@ package db.entidades;
*/ */
public class PostoTrabalho { public class PostoTrabalho {
private Integer id; private Integer id;
private Integer risco_id;
private Integer medida_id; private Integer medida_id;
private String descricao; private String descricao;
private String activo; private String activo;
@ -40,14 +39,6 @@ public class PostoTrabalho {
this.activo = activo; this.activo = activo;
} }
public Integer getRisco_id() {
return risco_id;
}
public void setRisco_id(Integer risco_id) {
this.risco_id = risco_id;
}
public Integer getMedida_id() { public Integer getMedida_id() {
return medida_id; return medida_id;
} }

@ -14,11 +14,12 @@ import java.util.Vector;
*/ */
public class Risco { public class Risco {
private Integer id; private Integer id;
private Integer plano_id; private Integer area_id;
private String descricao; private String descricao;
private String activo; private String activo;
private Integer valor; private Integer valor;
private List<Valor> valores;
private List<Medida> medidas; private List<Medida> medidas;
public Integer getId() { public Integer getId() {
@ -45,12 +46,12 @@ public class Risco {
this.activo = activo; this.activo = activo;
} }
public Integer getPlano_id() { public Integer getArea_id() {
return plano_id; return area_id;
} }
public void setPlano_id(Integer plano_id) { public void setArea_id(Integer area_id) {
this.plano_id = plano_id; this.area_id = area_id;
} }
public Integer getValor() { public Integer getValor() {
@ -68,4 +69,12 @@ public class Risco {
public void setMedidas(List<Medida> medidas) { public void setMedidas(List<Medida> medidas) {
this.medidas = medidas; this.medidas = medidas;
} }
public List<Valor> getValores() {
return valores;
}
public void setValores(List<Valor> valores) {
this.valores = valores;
}
} }

@ -0,0 +1,51 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package db.entidades;
import java.util.List;
/**
*
* @author lluis
*/
public class Valor {
private Integer id;
private Integer risco_id;
private Integer valor;
private List<Medida> medidas;
public Integer getValor() {
return valor;
}
public void setValor(Integer valor) {
this.valor = valor;
}
public List<Medida> getMedidas() {
return medidas;
}
public void setMedidas(List<Medida> medidas) {
this.medidas = medidas;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getRisco_id() {
return risco_id;
}
public void setRisco_id(Integer risco_id) {
this.risco_id = risco_id;
}
}

@ -5,11 +5,13 @@
package db.providers; package db.providers;
import db.entidades.Area;
import db.entidades.Medida; import db.entidades.Medida;
import db.entidades.PlanoActuacao; import db.entidades.PlanoActuacao;
import db.entidades.PostoTrabalho; import db.entidades.PostoTrabalho;
import db.entidades.Risco; import db.entidades.Risco;
import db.entidades.Utilizador; import db.entidades.Utilizador;
import db.entidades.Valor;
import global.Global; import global.Global;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.Statement; import java.sql.Statement;
@ -56,6 +58,80 @@ public class PlanosDataProvider extends GenericDataProvider{
st.execute(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, plano_id, descricao) values (";
sql += newId + ", ";
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) values (";
sql += newId + ", ";
sql += r.getArea_id() + ", '";
sql += r.getDescricao() + "' ";
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 createMedida(Medida m) throws Exception
{
Statement st = createStatement();
Integer newId = getMaxTableId("plano_medidas");
String sql = "insert into plano_medidas (id, valor_id, descricao) values (";
sql += newId + ", ";
sql += m.getValor_id() + ", '";
sql += m.getDescricao() + "' ";
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, medida_id, descricao) values (";
sql += newId + ", ";
sql += p.getMedida_id() + ", '";
sql += p.getDescricao() + "' ";
sql += ")";
System.out.println("SQL CREATE POSTO : " + sql);
st.execute(sql);
}
public List<Date> getPlanosOnline() throws Exception public List<Date> getPlanosOnline() throws Exception
{ {
ArrayList list = new ArrayList(); ArrayList list = new ArrayList();
@ -102,7 +178,7 @@ public class PlanosDataProvider extends GenericDataProvider{
} }
ResultSet rs = st.executeQuery(sql); ResultSet rs = st.executeQuery(sql);
ArrayList list = fillPlanoFields(rs); ArrayList list = getFullPlanos(rs);
return list; return list;
} }
@ -134,7 +210,7 @@ public class PlanosDataProvider extends GenericDataProvider{
} }
ResultSet rs = st.executeQuery(sql); ResultSet rs = st.executeQuery(sql);
ArrayList list = fillPlanoFields(rs); ArrayList list = getFullPlanos(rs);
return list; return list;
} }
@ -143,11 +219,11 @@ public class PlanosDataProvider extends GenericDataProvider{
Statement st = createStatement(); Statement st = createStatement();
String sql = "select * from planos_actuacao where fase = 6"; String sql = "select * from planos_actuacao where fase = 6";
ResultSet rs = st.executeQuery(sql); ResultSet rs = st.executeQuery(sql);
ArrayList list = fillPlanoFields(rs); ArrayList list = getFullPlanos(rs);
return list; return list;
} }
private ArrayList fillPlanoFields(ResultSet rs) throws Exception private ArrayList getFullPlanos(ResultSet rs) throws Exception
{ {
ArrayList list = new ArrayList(); ArrayList list = new ArrayList();
if(rs.isBeforeFirst()) if(rs.isBeforeFirst())
@ -162,6 +238,7 @@ public class PlanosDataProvider extends GenericDataProvider{
pa.setFase( new Integer( rs.getInt("fase") ) ); pa.setFase( new Integer( rs.getInt("fase") ) );
java.sql.Date sqlDate = rs.getDate("data_visita"); java.sql.Date sqlDate = rs.getDate("data_visita");
pa.setData_visita(new java.util.Date(sqlDate.getTime())); pa.setData_visita(new java.util.Date(sqlDate.getTime()));
pa.setAreas(getAreasByPlano(pa));
list.add(pa); list.add(pa);
}while(rs.next()); }while(rs.next());
@ -169,6 +246,124 @@ public class PlanosDataProvider extends GenericDataProvider{
return list; return list;
} }
private List<Area> getAreasByPlano(PlanoActuacao p) throws Exception
{
Statement st = createStatement();
String sql = "SELECT * FROM plano_areas WHERE plano_id = " + p.getId();
ResultSet rs = st.executeQuery(sql);
List<Area> 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(rs.getString("descricao"));
a.setRiscos(getRiscosByArea(a));
areas.add(a);
}while(rs.next());
}
return areas;
}
private List<Risco> getRiscosByArea(Area a) throws Exception
{
List<Risco> riscos = new ArrayList();
Statement st = createStatement();
String sql = "SELECT * FROM plano_riscos WHERE area_id = " + a.getId();
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(rs.getString("descricao"));
r.setValores(getValoresByRisco(r));
riscos.add(r);
}while(rs.next());
}
return riscos;
}
private List<Valor> getValoresByRisco(Risco r) throws Exception
{
List<Valor> valores = new ArrayList();
Statement st = createStatement();
String sql = "SELECT * FROM plano_valores WHERE risco_id = " + r.getId();
ResultSet rs = st.executeQuery(sql);
if(rs.isBeforeFirst())
{
rs.first();
do
{
Valor v = new Valor();
v.setId( new Integer(rs.getInt("id")) );
v.setRisco_id(new Integer( rs.getInt("risco_id") ));
v.setValor(new Integer(rs.getInt("valor")));
v.setMedidas(getMedidasByValor(v));
valores.add(v);
}while(rs.next());
}
return valores;
}
private List<Medida> getMedidasByValor(Valor v) throws Exception
{
List<Medida> medidas = new ArrayList();
Statement st = createStatement();
String sql = "SELECT * FROM plano_medidas WHERE valor_id = " + v.getId();
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(rs.getString("descricao"));
m.setPostos(getPostosByMedida(m));
medidas.add(m);
}while(rs.next());
}
return medidas;
}
private List<PostoTrabalho> getPostosByMedida(Medida m) throws Exception
{
List<PostoTrabalho> postos = new ArrayList();
Statement st = createStatement();
String sql = "SELECT * FROM plano_postos_trabalho WHERE medida_id = " + m.getId();
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(rs.getString("descricao"));
postos.add(p);
}while(rs.next());
}
return postos;
}
// POSTOS TRABALHO // POSTOS TRABALHO
public void createPostoTrabalhoByRisco(Integer postoTrabalhoId, Integer riscoId, Integer planoId) throws Exception public void createPostoTrabalhoByRisco(Integer postoTrabalhoId, Integer riscoId, Integer planoId) throws Exception
{ {
@ -203,28 +398,28 @@ public class PlanosDataProvider extends GenericDataProvider{
return pt; return pt;
} }
public ArrayList getPostosTrabalhoByRisco(Integer planoId, Integer riscoId) throws Exception // public ArrayList getPostosTrabalhoByRisco(Integer planoId, Integer riscoId) throws Exception
{ // {
ArrayList list = new ArrayList(); // ArrayList list = new ArrayList();
Statement st = createStatement(); // Statement st = createStatement();
String sql = "SELECT * FROM postos_trabalho_risco WHERE plano_id = " + planoId + " AND risco_id = " + riscoId; // String sql = "SELECT * FROM postos_trabalho_risco WHERE plano_id = " + planoId + " AND risco_id = " + riscoId;
//
ResultSet rs = st.executeQuery(sql); // ResultSet rs = st.executeQuery(sql);
//
if(rs.isBeforeFirst()) // if(rs.isBeforeFirst())
{ // {
rs.first(); // rs.first();
do // do
{ // {
Integer postoTrabalhoId = new Integer( rs.getInt("posto_trabalho_id") ); // Integer postoTrabalhoId = new Integer( rs.getInt("posto_trabalho_id") );
PostoTrabalho pt = getPostoTrabalho(postoTrabalhoId); // PostoTrabalho pt = getPostoTrabalho(postoTrabalhoId);
pt.setRisco_id(riscoId); // pt.setRisco_id(riscoId);
list.add(pt); // list.add(pt);
}while(rs.next()); // }while(rs.next());
} // }
//
return list; // return list;
} // }
// RISCOS // RISCOS
public void createRiscoByPlano(Integer riscoId, Integer planoId) throws Exception public void createRiscoByPlano(Integer riscoId, Integer planoId) throws Exception
@ -259,28 +454,28 @@ public class PlanosDataProvider extends GenericDataProvider{
return r; return r;
} }
public ArrayList getRiscosByPlano(Integer planoId) throws Exception // public ArrayList getRiscosByPlano(Integer planoId) throws Exception
{ // {
ArrayList list = new ArrayList(); // ArrayList list = new ArrayList();
Statement st = createStatement(); // Statement st = createStatement();
String sql = "SELECT * FROM riscos_plano_actuacao WHERE plano_id = " + planoId; // String sql = "SELECT * FROM riscos_plano_actuacao WHERE plano_id = " + planoId;
//
ResultSet rs = st.executeQuery(sql); // ResultSet rs = st.executeQuery(sql);
//
if(rs.isBeforeFirst()) // if(rs.isBeforeFirst())
{ // {
rs.first(); // rs.first();
do // do
{ // {
Integer riscoId = new Integer( rs.getInt("risco_id") ); // Integer riscoId = new Integer( rs.getInt("risco_id") );
Risco r = getRisco(riscoId); // Risco r = getRisco(riscoId);
r.setPlano_id(planoId); // r.setPlano_id(planoId);
list.add(r); // list.add(r);
}while(rs.next()); // }while(rs.next());
} // }
//
return list; // return list;
} // }
// MEDIDAS // MEDIDAS
public void createMedidaByRisco(Integer medidaId, Integer riscoId, Integer planoId) throws Exception public void createMedidaByRisco(Integer medidaId, Integer riscoId, Integer planoId) throws Exception

@ -0,0 +1,220 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package db.providers;
import db.Dblocal;
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 java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author lluis
*/
public class RelatoriosDataProvider extends GenericDataProvider {
Dblocal dblocal = new Dblocal();
public RelatoriosDataProvider() throws Exception
{
dblocal.connect();
}
public PlanoActuacao getFullPlano(PlanoActuacao plano, Integer relatorioId)
{
try
{
plano = getAreasByPlano(plano, relatorioId);
}
catch(Exception ex)
{
ex.printStackTrace();
}
return plano;
}
private PlanoActuacao getAreasByPlano(PlanoActuacao plano, Integer relatorioId) throws Exception
{
Statement st = dblocal.createStatement();
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 += "order by area_id ";
System.out.println("AREAS BY PLANO SQL : " + sql);
ResultSet rs = st.executeQuery(sql);
List<Area> areas = new ArrayList();
if(rs.isBeforeFirst())
{
rs.first();
do
{
Area a = new Area();
a.setId(new Integer( rs.getInt("area_id") ));
a.setDescricao(rs.getString("descricao"));
try
{
a.setRiscos(getRiscosByArea(a));
}
catch(Exception ex)
{
a.setRiscos(null);
}
areas.add(a);
}while(rs.next());
plano.setAreas(areas);
}
return plano;
}
private List<Risco> getRiscosByArea(Area a) throws Exception
{
Statement st = dblocal.createStatement();
String sql = "select distinct hs_relatorio_risco.id, hs_relatorio_risco.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 area_id = " + a.getId() + " ";
sql += "order by hs_relatorio_risco.id ";
System.out.println("RISCOS BY AREA SQL : " + sql);
ResultSet rs = st.executeQuery(sql);
List<Risco> riscos = new ArrayList();
if(rs.isBeforeFirst())
{
rs.first();
do
{
Risco r = new Risco();
r.setId(new Integer( rs.getInt("id") ));
r.setDescricao(rs.getString("descricao"));
r.setValores(getValoresByRisco(r, a));
riscos.add(r);
}while(rs.next());
}
return riscos;
}
private List<Valor> getValoresByRisco(Risco r, Area a) throws Exception
{
Statement st = dblocal.createStatement();
String sql = "select valor from ";
sql += "(select distinct hs_relatorio_posto_risco.risco_id, ";
sql += "case hs_relatorio_posto_risco.valor_qualitativo_id isnull when true 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() + ") subquery ";
sql += "order by subquery.valor";
System.out.println("VALORES BY RISCO : " + sql);
ResultSet rs = st.executeQuery(sql);
List<Valor> valores = new ArrayList();
if(rs.isBeforeFirst())
{
rs.first();
do
{
Valor v = new Valor();
int valor = rs.getInt("valor");
v.setValor(new Integer(valor));
v.setMedidas(getMedidasByValor(v, r, a));
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 hs_relatorio_posto_risco.valor_qualitativo_id isnull when true 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() + ") subquery ";
sql += "where valor = " + v.getValor() + " ";
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.setValor(new Integer(valor));
m.setId(new Integer( rs.getInt("medida_id") ));
m.setDescricao(rs.getString("descricao"));
m.setPostos(getPostosByMedidaAndValor(m, v, 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 hs_relatorio_posto_risco.valor_qualitativo_id isnull when true 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.getValor();
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(rs.getString("descricao"));
postos.add(p);
}while(rs.next());
}
return postos;
}
}

@ -17,14 +17,16 @@ import com.sun.webui.jsf.component.TextArea;
import com.sun.webui.jsf.component.TextField; import com.sun.webui.jsf.component.TextField;
import com.sun.webui.jsf.model.Option; import com.sun.webui.jsf.model.Option;
import com.sun.webui.jsf.model.SingleSelectOptionsList; import db.entidades.Area;
import db.entidades.Medida; import db.entidades.Medida;
import db.entidades.PlanoActuacao; import db.entidades.PlanoActuacao;
import db.entidades.PostoTrabalho; import db.entidades.PostoTrabalho;
import db.entidades.Risco; import db.entidades.Risco;
import db.entidades.Utilizador; import db.entidades.Utilizador;
import db.entidades.Valor;
import db.providers.PlanosDataProvider; import db.providers.PlanosDataProvider;
import global.Global; import global.Global;
import java.util.List;
import java.util.Vector; import java.util.Vector;
import javax.faces.FacesException; import javax.faces.FacesException;
import javax.faces.component.html.HtmlInputHidden; import javax.faces.component.html.HtmlInputHidden;
@ -67,7 +69,11 @@ public class EditarPlano extends AbstractPageBean {
Vector<PostoTrabalho> postos = new Vector<PostoTrabalho>(); Vector<PostoTrabalho> postos = new Vector<PostoTrabalho>();
HtmlPanelGrid gridPlano = new HtmlPanelGrid(); HtmlPanelGrid gridPlano = new HtmlPanelGrid();
HtmlPanelGrid gridArea;
HtmlPanelGrid gridRisco; HtmlPanelGrid gridRisco;
HtmlPanelGrid gridValor;
HtmlPanelGrid gridMedida;
HtmlPanelGrid gridPosto;
@ -205,6 +211,15 @@ public class EditarPlano extends AbstractPageBean {
public void setDrpIrPara(DropDown dd) { public void setDrpIrPara(DropDown dd) {
this.drpIrPara = dd; this.drpIrPara = dd;
} }
private StaticText lblTop = new StaticText();
public StaticText getLblTop() {
return lblTop;
}
public void setLblTop(StaticText st) {
this.lblTop = st;
}
/** /**
* <p>Construct a new Page bean instance.</p> * <p>Construct a new Page bean instance.</p>
@ -276,7 +291,6 @@ public class EditarPlano extends AbstractPageBean {
*/ */
@Override @Override
public void prerender() { public void prerender() {
System.out.println("PRERENDER");
FacesContext fc = getFacesContext(); FacesContext fc = getFacesContext();
//boolean isPostback = JSFUtils.isPostBack12(fc); //boolean isPostback = JSFUtils.isPostBack12(fc);
//boolean isPostback = JSFUtils.isPostBack(fc); //boolean isPostback = JSFUtils.isPostBack(fc);
@ -284,9 +298,11 @@ public class EditarPlano extends AbstractPageBean {
System.out.println("POSTBACK : " + isPostback); System.out.println("POSTBACK : " + isPostback);
if(!isPostback) if(!isPostback)
{ {
initializePlano(); PlanoActuacao p = getSessionBean1().getPlanoActuacao();
initialize(); //initializePlano();
fillPlano(); initialize(p);
showPlano(p);
//fillPlano();
} }
else else
{ {
@ -344,370 +360,201 @@ public class EditarPlano extends AbstractPageBean {
return "lista_planos"; return "lista_planos";
} }
private void fillPlano() // private void fillPlano()
{ // {
String indent = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; // String indent = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
Risco r = getNextRisco(plano.getId()); // Risco r = getNextRisco(plano.getId());
fillRisco(r); // fillRisco(r);
} // }
//
private void fillRisco(Risco r) // private void fillRisco(Risco r)
{ // {
String indent = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; // String indent = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
if(gridLayout.getChildren().size() > 0) // if(gridLayout.getChildren().size() > 0)
{ // {
gridLayout.getChildren().clear(); // gridLayout.getChildren().clear();
} // }
gridRisco = new HtmlPanelGrid(); // gridRisco = new HtmlPanelGrid();
gridRisco.setWidth("100%"); // gridRisco.setWidth("100%");
gridRisco.setStyle("border: solid 1px #000000"); // gridRisco.setStyle("border: solid 1px #000000");
gridRisco.setColumns(1); // gridRisco.setColumns(1);
gridRisco.setColumnClasses("gridColLeft"); // gridRisco.setColumnClasses("gridColLeft");
//
pg = new PanelGroup(); // pg = new PanelGroup();
st = new StaticText(); // st = new StaticText();
st.setEscape(false); // st.setEscape(false);
st.setStyleClass("label"); // st.setStyleClass("label");
st.setStyle("color: #2c4d7a"); // st.setStyle("color: #2c4d7a");
st.setText("RISCO 1" + ":&nbsp;"); // st.setText("RISCO 1" + ":&nbsp;");
pg.getChildren().add(st); // pg.getChildren().add(st);
st = new StaticText(); // st = new StaticText();
st.setEscape(false); // st.setEscape(false);
st.setText(r.getDescricao()); // st.setText(r.getDescricao());
pg.getChildren().add(st); // pg.getChildren().add(st);
gridRisco.getChildren().add(pg); // gridRisco.getChildren().add(pg);
//
st = new StaticText(); // st = new StaticText();
st.setEscape(false); // st.setEscape(false);
st.setText("&nbsp;"); // st.setText("&nbsp;");
gridRisco.getChildren().add(st); // gridRisco.getChildren().add(st);
//
pg = new PanelGroup(); // pg = new PanelGroup();
st = new StaticText(); // st = new StaticText();
st.setEscape(false); // st.setEscape(false);
st.setStyleClass("label"); // st.setStyleClass("label");
st.setText("Valor:" + "&nbsp;"); // st.setText("Valor:" + "&nbsp;");
pg.getChildren().add(st); // pg.getChildren().add(st);
st = new StaticText(); // st = new StaticText();
st.setEscape(false); // st.setEscape(false);
st.setText(r.getValor().toString()); // st.setText(r.getValor().toString());
pg.getChildren().add(st); // pg.getChildren().add(st);
gridRisco.getChildren().add(pg); // gridRisco.getChildren().add(pg);
//
st = new StaticText(); // st = new StaticText();
st.setEscape(false); // st.setEscape(false);
st.setText("&nbsp;"); // st.setText("&nbsp;");
gridRisco.getChildren().add(st); // gridRisco.getChildren().add(st);
//
//medidas // //medidas
Vector<Medida> meds = getMedidas(r.getId()); // Vector<Medida> meds = getMedidas(r.getId());
for(int i = 0; i < meds.size(); i++) // for(int i = 0; i < meds.size(); i++)
{ // {
Medida m = medidas.get(i); // Medida m = medidas.get(i);
if(m.getRisco_id().intValue() == r.getId().intValue()) // if(m.getRisco_id().intValue() == r.getId().intValue())
{ // {
pg = new PanelGroup(); // pg = new PanelGroup();
st = new StaticText(); // st = new StaticText();
st.setEscape(false); // st.setEscape(false);
st.setStyleClass("label"); // st.setStyleClass("label");
st.setText(indent + "Medida" + ":&nbsp;"); // st.setText(indent + "Medida" + ":&nbsp;");
pg.getChildren().add(st); // pg.getChildren().add(st);
st = new StaticText(); // st = new StaticText();
st.setEscape(false); // st.setEscape(false);
st.setText(m.getDescricao()); // st.setText(m.getDescricao());
pg.getChildren().add(st); // pg.getChildren().add(st);
gridRisco.getChildren().add(pg); // gridRisco.getChildren().add(pg);
//
//postos trabalho // //postos trabalho
Vector<PostoTrabalho> posts = getPostosTrabalho(m.getId()); // Vector<PostoTrabalho> posts = getPostosTrabalho(m.getId());
pg = new PanelGroup(); // pg = new PanelGroup();
st = new StaticText(); // st = new StaticText();
st.setEscape(false); // st.setEscape(false);
st.setStyleClass("label"); // st.setStyleClass("label");
st.setText(indent + indent + "Postos de trabalho afectados" + ":&nbsp;"); // st.setText(indent + indent + "Postos de trabalho afectados" + ":&nbsp;");
pg.getChildren().add(st); // pg.getChildren().add(st);
st = new StaticText(); // st = new StaticText();
st.setEscape(false); // st.setEscape(false);
String spostos = ""; // String spostos = "";
for(int j = 0; j < posts.size(); j++) // for(int j = 0; j < posts.size(); j++)
{ // {
PostoTrabalho p = posts.get(j); // PostoTrabalho p = posts.get(j);
spostos += p.getDescricao(); // + "&nbsp;"; // spostos += p.getDescricao(); // + "&nbsp;";
if(j < (posts.size() -1) ) // if(j < (posts.size() -1) )
{ // {
spostos += ";&nbsp;"; // spostos += ";&nbsp;";
} // }
} // }
st.setText(spostos); // st.setText(spostos);
pg.getChildren().add(st); // pg.getChildren().add(st);
gridRisco.getChildren().add(pg); // gridRisco.getChildren().add(pg);
} // }
} // }
//
st = new StaticText(); // st = new StaticText();
st.setEscape(false); // st.setEscape(false);
st.setText("&nbsp;"); // st.setText("&nbsp;");
gridRisco.getChildren().add(st); // gridRisco.getChildren().add(st);
//
pg = new PanelGroup(); // pg = new PanelGroup();
st = new StaticText(); // st = new StaticText();
st.setEscape(false); // st.setEscape(false);
st.setStyleClass("label"); // st.setStyleClass("label");
st.setText("Respons&aacute;vel de execu&ccedil;&atilde;o:"); // st.setText("Respons&aacute;vel de execu&ccedil;&atilde;o:");
pg.getChildren().add(st); // pg.getChildren().add(st);
txtResponsavelExecucao = new TextField(); // txtResponsavelExecucao = new TextField();
txtResponsavelExecucao.setColumns(100); // txtResponsavelExecucao.setColumns(100);
pg.getChildren().add(txtResponsavelExecucao); // pg.getChildren().add(txtResponsavelExecucao);
gridRisco.getChildren().add(pg); // gridRisco.getChildren().add(pg);
pg = new PanelGroup(); // pg = new PanelGroup();
st = new StaticText(); // st = new StaticText();
st.setEscape(false); // st.setEscape(false);
st.setStyleClass("label"); // st.setStyleClass("label");
st.setText("Recursos necess&aacute;rios &agrave; implementa&ccedil;&atilde;o da medida:"); // st.setText("Recursos necess&aacute;rios &agrave; implementa&ccedil;&atilde;o da medida:");
pg.getChildren().add(st); // pg.getChildren().add(st);
gridRisco.getChildren().add(pg); // gridRisco.getChildren().add(pg);
txtRecursos = new TextArea(); // txtRecursos = new TextArea();
txtRecursos.setColumns(200); // txtRecursos.setColumns(200);
gridRisco.getChildren().add(txtRecursos); // gridRisco.getChildren().add(txtRecursos);
//
HtmlPanelGrid grd = new HtmlPanelGrid(); // HtmlPanelGrid grd = new HtmlPanelGrid();
grd.setColumns(2); // grd.setColumns(2);
grd.setColumnClasses("gridCol15, gridCol85"); // grd.setColumnClasses("gridCol15, gridCol85");
grd.setId("pgDtInicio"); // grd.setId("pgDtInicio");
grd.setStyle("width: 100%"); // grd.setStyle("width: 100%");
st = new StaticText(); // st = new StaticText();
st.setEscape(false); // st.setEscape(false);
st.setStyleClass("label"); // st.setStyleClass("label");
st.setText("Data prevista de in&iacute;cio:"); // st.setText("Data prevista de in&iacute;cio:");
grd.getChildren().add(st); // grd.getChildren().add(st);
dtInicio = new Calendar(); // dtInicio = new Calendar();
grd.getChildren().add(dtInicio); // grd.getChildren().add(dtInicio);
gridRisco.getChildren().add(grd); // gridRisco.getChildren().add(grd);
//
grd = new HtmlPanelGrid(); // grd = new HtmlPanelGrid();
grd.setColumns(2); // grd.setColumns(2);
grd.setColumnClasses("gridCol15, gridCol85"); // grd.setColumnClasses("gridCol15, gridCol85");
grd.setId("pgDtFim"); // grd.setId("pgDtFim");
grd.setStyle("width: 100%"); // grd.setStyle("width: 100%");
st = new StaticText(); // st = new StaticText();
st.setEscape(false); // st.setEscape(false);
st.setStyleClass("label"); // st.setStyleClass("label");
st.setText("Data prevista de conclus&atilde;o:"); // st.setText("Data prevista de conclus&atilde;o:");
grd.getChildren().add(st); // grd.getChildren().add(st);
dtFim = new Calendar(); // dtFim = new Calendar();
//
grd.getChildren().add(dtFim); // grd.getChildren().add(dtFim);
gridRisco.getChildren().add(grd); // gridRisco.getChildren().add(grd);
//
gridLayout.getChildren().add(gridRisco); // gridLayout.getChildren().add(gridRisco);
//
} // }
private void initializePlano()
{
getSessionBean1().setRiscosIdx(0);
//plano
plano = new PlanoActuacao();
plano.setId(new Integer(1));
plano.setEstabelecimento_id(new Integer(1));
plano.setFase(new Integer(1));
getSessionBean1().setPlanoId(new Integer(1));
plano.setDescricao("Plano 1");
//riscos
Risco r = new Risco();
r.setId(new Integer(1));
r.setPlano_id(new Integer(1));
r.setDescricao("Risco A");
r.setValor(new Integer(4));
riscos.add(r);
r = new Risco();
r.setId(new Integer(2));
r.setPlano_id(new Integer(1));
r.setDescricao("Risco B");
r.setValor(new Integer(6));
riscos.add(r);
r = new Risco();
r.setId(new Integer(3));
r.setPlano_id(new Integer(1));
r.setDescricao("Risco C");
r.setValor(new Integer(12));
riscos.add(r);
//medidas
Medida m = new Medida();
m.setId(new Integer(1));
m.setRisco_id(new Integer(1));
m.setDescricao("Medida a");
medidas.add(m);
m = new Medida();
m.setId(new Integer(2));
m.setRisco_id(new Integer(1));
m.setDescricao("Medida b");
medidas.add(m);
m = new Medida();
m.setId(new Integer(3));
m.setRisco_id(new Integer(2));
m.setDescricao("Medida c");
medidas.add(m);
m = new Medida();
m.setId(new Integer(4));
m.setRisco_id(new Integer(2));
m.setDescricao("Medida d");
medidas.add(m);
m = new Medida();
m.setId(new Integer(5));
m.setRisco_id(new Integer(2));
m.setDescricao("Medida e");
medidas.add(m);
m = new Medida();
m.setId(new Integer(6));
m.setRisco_id(new Integer(3));
m.setDescricao("Medida f");
medidas.add(m);
m = new Medida();
m.setId(new Integer(7));
m.setRisco_id(new Integer(3));
m.setDescricao("Medida g");
medidas.add(m);
//postos trabalho
PostoTrabalho p = new PostoTrabalho();
p.setId(new Integer(1));
p.setMedida_id(new Integer(1));
p.setDescricao("posto 1");
postos.add(p);
p = new PostoTrabalho();
p.setId(new Integer(2));
p.setMedida_id(new Integer(1));
p.setDescricao("posto 2");
postos.add(p);
p = new PostoTrabalho();
p.setId(new Integer(3));
p.setMedida_id(new Integer(1));
p.setDescricao("posto 3");
postos.add(p);
p = new PostoTrabalho();
p.setId(new Integer(4));
p.setMedida_id(new Integer(2));
p.setDescricao("posto 4");
postos.add(p);
p = new PostoTrabalho();
p.setId(new Integer(5));
p.setMedida_id(new Integer(2));
p.setDescricao("posto 5");
postos.add(p);
p = new PostoTrabalho();
p.setId(new Integer(6));
p.setMedida_id(new Integer(3));
p.setDescricao("posto 6");
postos.add(p);
p = new PostoTrabalho();
p.setId(new Integer(7));
p.setMedida_id(new Integer(3));
p.setDescricao("posto 7");
postos.add(p);
p = new PostoTrabalho();
p.setId(new Integer(8));
p.setMedida_id(new Integer(4));
p.setDescricao("posto 8");
postos.add(p);
p = new PostoTrabalho();
p.setId(new Integer(9));
p.setMedida_id(new Integer(4));
p.setDescricao("posto 9");
postos.add(p);
p = new PostoTrabalho();
p.setId(new Integer(10));
p.setMedida_id(new Integer(5));
p.setDescricao("posto 10");
postos.add(p);
p = new PostoTrabalho();
p.setId(new Integer(11));
p.setMedida_id(new Integer(5));
p.setDescricao("posto 11");
postos.add(p);
p = new PostoTrabalho();
p.setId(new Integer(12));
p.setMedida_id(new Integer(6));
p.setDescricao("posto 12");
postos.add(p);
p = new PostoTrabalho();
p.setId(new Integer(13));
p.setMedida_id(new Integer(6));
p.setDescricao("posto 13");
postos.add(p);
p = new PostoTrabalho();
p.setId(new Integer(14));
p.setMedida_id(new Integer(7));
p.setDescricao("posto 14");
postos.add(p);
p = new PostoTrabalho();
p.setId(new Integer(15));
p.setMedida_id(new Integer(7));
p.setDescricao("posto 15");
postos.add(p);
getSessionBean1().setRiscos(riscos);
getSessionBean1().setMedidas(medidas);
getSessionBean1().setPostos(postos);
}
private Risco getNextRisco(Integer planoId) // private Risco getNextRisco(Integer planoId)
{ // {
System.out.println("GET NEXT RISCO"); // System.out.println("GET NEXT RISCO");
System.out.println("RISCOS SIZE : " + riscos.size()); // System.out.println("RISCOS SIZE : " + riscos.size());
riscos = getSessionBean1().getRiscos(); // riscos = getSessionBean1().getRiscos();
risco_id = getSessionBean1().getRiscosIdx(); // risco_id = getSessionBean1().getRiscosIdx();
Risco r = riscos.get(risco_id); // Risco r = riscos.get(risco_id);
if(r != null) // if(r != null)
{ // {
if(r.getPlano_id().intValue() != planoId.intValue()) // if(r.getPlano_id().intValue() != planoId.intValue())
{ // {
r = null; // r = null;
risco_id = 0; // risco_id = 0;
} // }
} // }
risco_id++; // risco_id++;
getSessionBean1().setRiscosIdx(risco_id); // getSessionBean1().setRiscosIdx(risco_id);
return r; // return r;
} // }
private Vector<Medida> getMedidas(Integer riscoId) // private Vector<Medida> getMedidas(Integer riscoId)
{ // {
Vector<Medida> meds = new Vector<Medida>(); // Vector<Medida> meds = new Vector<Medida>();
medidas = getSessionBean1().getMedidas(); // medidas = getSessionBean1().getMedidas();
for(int i = 0; i < medidas.size(); i++) // for(int i = 0; i < medidas.size(); i++)
{ // {
Medida m = medidas.get(i); // Medida m = medidas.get(i);
if(m.getRisco_id().intValue() == riscoId.intValue()) // if(m.getRisco_id().intValue() == riscoId.intValue())
{ // {
meds.add(m); // meds.add(m);
} // }
} // }
return meds; // return meds;
} // }
private Vector<PostoTrabalho> getPostosTrabalho(Integer medidaId) private Vector<PostoTrabalho> getPostosTrabalho(Integer medidaId)
{ {
@ -724,7 +571,7 @@ public class EditarPlano extends AbstractPageBean {
return posts; return posts;
} }
private void initialize() private void initialize(PlanoActuacao p)
{ {
Utilizador u = getSessionBean1().getCurrentUser(); Utilizador u = getSessionBean1().getCurrentUser();
if(u.getTipo().intValue() == Global.DIRECTOR_NACIONAL_SEGURANCA) if(u.getTipo().intValue() == Global.DIRECTOR_NACIONAL_SEGURANCA)
@ -761,7 +608,6 @@ public class EditarPlano extends AbstractPageBean {
// } // }
// } // }
PlanoActuacao p = getSessionBean1().getPlanoActuacao();
int fase = p.getFase().intValue(); int fase = p.getFase().intValue();
switch(fase) switch(fase)
@ -794,14 +640,146 @@ public class EditarPlano extends AbstractPageBean {
gridPlano.setColumns(1); gridPlano.setColumns(1);
gridPlano.setColumnClasses("gridColCenter"); gridPlano.setColumnClasses("gridColCenter");
//plano //plano
lblTop.setText("Plano de actua&ccedil;&atilde;o da auditoria " + p.getData_visita_str());
gridLayout.getChildren().add(gridPlano);
}
private void showPlano(PlanoActuacao p)
{
gridArea = new HtmlPanelGrid();
gridArea.setColumns(1);
gridArea.setColumnClasses("gridColLeft");
gridArea.setWidth("100%");
gridArea.setStyle("border: solid 1px #000000");
gridPlano.getChildren().add(gridArea);
Area a = p.getAreas().get(0);
pg = new PanelGroup();
st = new StaticText();
st.setEscape(false);
st.setText(a.getDescricao());
pg.getChildren().add(st);
gridArea.getChildren().add(pg);
HtmlPanelGrid grd = new HtmlPanelGrid();
grd.setColumns(1);
grd.setWidth("100%");
grd.setStyleClass("centerBlock");
gridArea.getChildren().add(grd);
//Risco
gridRisco = new HtmlPanelGrid();
gridRisco.setStyleClass("centerBlock");
gridRisco.setWidth("98%");
gridRisco.setColumns(1);
gridRisco.setColumnClasses("gridColLeft");
grd.getChildren().add(gridRisco);
Risco r = a.getRiscos().get(0);
pg = new PanelGroup();
st = new StaticText(); st = new StaticText();
st.setEscape(false); st.setEscape(false);
st.setStyleClass("label"); st.setText(r.getDescricao());
st.setStyle("font-size: 16px"); pg.getChildren().add(st);
st.setText(plano.getDescricao()); gridRisco.getChildren().add(pg);
gridPlano.getChildren().add(st);
showValores(r);
gridLayout.getChildren().add(gridPlano);
gridMedida = new HtmlPanelGrid();
gridMedida.setStyleClass("centerBlock");
gridMedida.setWidth("98%");
gridMedida.setColumns(1);
gridMedida.setColumnClasses("gridColLeft");
grd.getChildren().add(gridMedida);
}
private void showValores(Risco r)
{
List<Valor> valores = r.getValores();
for(Valor v : valores)
{
HtmlPanelGrid grd = new HtmlPanelGrid();
grd.setColumns(1);
grd.setWidth("100%");
grd.setStyleClass("centerBlock");
gridRisco.getChildren().add(grd);
gridValor = new HtmlPanelGrid();
gridValor.setStyleClass("centerBlock");
gridValor.setWidth("98%");
gridValor.setColumns(1);
gridValor.setColumnClasses("gridColLeft");
grd.getChildren().add(gridValor);
pg = new PanelGroup();
st = new StaticText();
st.setEscape(false);
st.setText("Valor : " + v.getValor().toString());
pg.getChildren().add(st);
gridValor.getChildren().add(pg);
showMedidas(v);
}
}
private void showMedidas(Valor v)
{
List<Medida> medidas = v.getMedidas();
for(Medida m : medidas)
{
HtmlPanelGrid grd = new HtmlPanelGrid();
grd.setColumns(1);
grd.setWidth("100%");
grd.setStyleClass("centerBlock");
gridValor.getChildren().add(grd);
gridMedida = new HtmlPanelGrid();
gridMedida.setStyleClass("centerBlock");
gridMedida.setWidth("98%");
gridMedida.setColumns(1);
gridMedida.setColumnClasses("gridColLeft");
grd.getChildren().add(gridMedida);
pg = new PanelGroup();
st = new StaticText();
st.setEscape(false);
st.setText(m.getDescricao());
pg.getChildren().add(st);
gridMedida.getChildren().add(pg);
showPostos(m);
}
}
private void showPostos(Medida m)
{
List<PostoTrabalho> postos = m.getPostos();
for(PostoTrabalho p : postos)
{
HtmlPanelGrid grd = new HtmlPanelGrid();
grd.setColumns(1);
grd.setWidth("100%");
grd.setStyleClass("centerBlock");
gridMedida.getChildren().add(grd);
gridPosto = new HtmlPanelGrid();
gridPosto.setStyleClass("centerBlock");
gridPosto.setWidth("98%");
gridPosto.setColumns(1);
gridPosto.setColumnClasses("gridColLeft");
grd.getChildren().add(gridPosto);
pg = new PanelGroup();
st = new StaticText();
st.setEscape(false);
st.setText(p.getDescricao());
pg.getChildren().add(st);
gridPosto.getChildren().add(pg);
}
} }
public String butGravarPlano_action() { public String butGravarPlano_action() {
@ -814,8 +792,8 @@ public class EditarPlano extends AbstractPageBean {
// TODO: Process the action. Return value is a navigation // TODO: Process the action. Return value is a navigation
// case name where null will return to the same page. // case name where null will return to the same page.
System.out.println("BUT NEXT RISCO"); System.out.println("BUT NEXT RISCO");
Risco r = getNextRisco(getSessionBean1().getPlanoId()); //Risco r = getNextRisco(getSessionBean1().getPlanoId());
fillRisco(r); //fillRisco(r);
return null; return null;
} }

@ -10,21 +10,22 @@ import com.sun.data.provider.RowKey;
import com.sun.rave.web.ui.appbase.AbstractPageBean; import com.sun.rave.web.ui.appbase.AbstractPageBean;
import com.sun.webui.jsf.component.Table; import com.sun.webui.jsf.component.Table;
import com.sun.webui.jsf.component.TableRowGroup; import com.sun.webui.jsf.component.TableRowGroup;
import db.entidades.Area;
import db.entidades.Medida;
import db.entidades.PlanoActuacao; import db.entidades.PlanoActuacao;
import db.entidades.PostoTrabalho;
import db.entidades.Risco;
import db.providers.UtilizadoresDataProvider; import db.providers.UtilizadoresDataProvider;
import db.entidades.Utilizador; import db.entidades.Utilizador;
import db.entidades.Valor;
import db.providers.PlanosDataProvider; import db.providers.PlanosDataProvider;
import global.Global; import global.Global;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.Iterator;
import java.util.List; import java.util.List;
import javax.faces.FacesException; import javax.faces.FacesException;
import javax.faces.context.FacesContext; import javax.faces.context.FacesContext;
import siprp.database.cayenne.objects.HsRelatorio;
import siprp.database.cayenne.objects.HsRelatorioMedida;
import siprp.database.cayenne.objects.HsRelatorioRisco;
import siprp.database.cayenne.providers.PlanoActuacaoDAO; import siprp.database.cayenne.providers.PlanoActuacaoDAO;
import tabledataproviders.PlanosActualDataProvider; import tabledataproviders.PlanosActualDataProvider;
import utils.JSFUtils; import utils.JSFUtils;
@ -233,7 +234,10 @@ public class ListaPlanos extends AbstractPageBean {
// TODO: Process the action. Return value is a navigation // TODO: Process the action. Return value is a navigation
// case name where null will return to the same page. // case name where null will return to the same page.
PlanoActuacao p = getTableActivosRowData(); PlanoActuacao p = getTableActivosRowData();
getSessionBean1().setPlanoActuacao(p); getSessionBean1().setPlanoActuacao(p);
showPlano(p);
//dummy //dummy
//getSessionBean1().setFase(2); //getSessionBean1().setFase(2);
return "editar_plano"; return "editar_plano";
@ -283,7 +287,7 @@ public class ListaPlanos extends AbstractPageBean {
//// Integer id = es.getId(); // estabelecimento id ?? //// Integer id = es.getId(); // estabelecimento id ??
// } // }
PlanosActuacao planos = new PlanosActuacao(); PlanosActuacao planos = new PlanosActuacao(u);
List listPlanosActivos = planos.getPlanosActivos(u); List listPlanosActivos = planos.getPlanosActivos(u);
getSessionBean1().getPlanosActualDataProvider().setList(listPlanosActivos); getSessionBean1().getPlanosActualDataProvider().setList(listPlanosActivos);
@ -508,6 +512,62 @@ public class ListaPlanos extends AbstractPageBean {
ArrayList list = (ArrayList) provider.getList(); ArrayList list = (ArrayList) provider.getList();
PlanoActuacao p = (PlanoActuacao)list.get(k); PlanoActuacao p = (PlanoActuacao)list.get(k);
return p; return p;
}
private void showPlano(PlanoActuacao p)
{
System.out.println("PLANO : " + p.getData_visita_str() + " | " + p.getFase_nome() + " | " + p.getNome_estabelecimento());
System.out.println("=================================================================");
showAreas(p.getAreas());
System.out.println("=================================================================");
}
private void showAreas(List<Area> areas)
{
for(Area a : areas)
{
System.out.println(" " + a.getDescricao());
showRiscos(a.getRiscos());
}
}
private void showRiscos(List<Risco> riscos)
{
for(Risco r : riscos)
{
System.out.println(" " + r.getDescricao());
showValores(r.getValores());
}
}
private void showValores(List<Valor> valores)
{
for(Valor v : valores)
{
System.out.println(" " + v.getValor());
showMedidas(v.getMedidas());
}
}
private void showMedidas(List<Medida> medidas)
{
for(Medida m : medidas)
{
System.out.println(" " + m.getDescricao());
showPostos(m.getPostos());
}
}
private void showPostos(List<PostoTrabalho> postos)
{
for(PostoTrabalho p : postos)
{
System.out.println(" " + p.getDescricao());
}
} }
} }

@ -5,9 +5,15 @@
package planosactuacao; package planosactuacao;
import db.entidades.Area;
import db.entidades.Medida;
import db.entidades.PlanoActuacao; import db.entidades.PlanoActuacao;
import db.entidades.PostoTrabalho;
import db.entidades.Risco;
import db.entidades.Utilizador; import db.entidades.Utilizador;
import db.entidades.Valor;
import db.providers.PlanosDataProvider; import db.providers.PlanosDataProvider;
import db.providers.RelatoriosDataProvider;
import global.Global; import global.Global;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
@ -22,16 +28,29 @@ import siprp.database.cayenne.providers.PlanoActuacaoDAO;
*/ */
public class PlanosActuacao { public class PlanosActuacao {
PlanosDataProvider pdp = new PlanosDataProvider(); PlanosDataProvider pdp = new PlanosDataProvider();
RelatoriosDataProvider rdp;
List<PlanoActuacao> planosList; List<PlanoActuacao> planosList;
List<Date> planosOnlineList; List<Date> planosOnlineList;
PlanoActuacaoDAO pa = new PlanoActuacaoDAO(); PlanoActuacaoDAO pa = new PlanoActuacaoDAO();
public PlanosActuacao(){ public PlanosActuacao(Utilizador u){
List<Date> planosOnlineList = getPlanosOnline(); try
List<HsRelatorio> listRelatorios = getRelatorios(planosOnlineList); {
putPlanosOnline(listRelatorios); rdp = new RelatoriosDataProvider();
Integer estabelecimentoId = null;
if(u.getTipo().intValue() != Global.TECNICO_HS )
{
estabelecimentoId = u.getEstabelecimento_id();
}
List<Date> planosOnlineList = getPlanosOnline();
List<HsRelatorio> listRelatorios = getRelatorios(planosOnlineList, estabelecimentoId);
putPlanosOnline(listRelatorios);
}
catch(Exception ex)
{
ex.printStackTrace();
}
} }
private List<Date> getPlanosOnline() private List<Date> getPlanosOnline()
@ -43,14 +62,14 @@ public class PlanosActuacao {
} }
catch(Exception ex) catch(Exception ex)
{ {
ex.printStackTrace();
} }
return list; return list;
} }
private List<HsRelatorio> getRelatorios(List<Date> list) private List<HsRelatorio> getRelatorios(List<Date> list, Integer estabelecimentoId)
{ {
List<HsRelatorio> listRelatorios = pa.getRelatoriosNotIn(list); List<HsRelatorio> listRelatorios = pa.getRelatoriosNotIn(list, estabelecimentoId);
return listRelatorios; return listRelatorios;
} }
@ -62,22 +81,85 @@ public class PlanosActuacao {
while(iter.hasNext()) while(iter.hasNext())
{ {
HsRelatorio relatorio = iter.next(); HsRelatorio relatorio = iter.next();
PlanoActuacao p = new PlanoActuacao();
p.setData_visita(relatorio.getToHsMarcacoesEstabelecimento().getData());
p.setFase(new Integer(Global.FASE_SEGURANCA_PREENCHIMENTO));
p.setEstabelecimento_id(relatorio.getToHsMarcacoesEstabelecimento().getToEstabelecimentos().getId());
p.setNome_estabelecimento(relatorio.getToHsMarcacoesEstabelecimento().getToEstabelecimentos().getNome());
try try
{ {
pdp.createPlano(p); PlanoActuacao p = createPlano(relatorio);
//showPlano(p);
} }
catch(Exception ex) catch(Exception ex)
{ {
ex.printStackTrace(); ex.printStackTrace();
System.out.println("ERRO NA CRIACAO DOS PLANOS : " + ex.getMessage());
} }
} }
} }
private PlanoActuacao createPlano(HsRelatorio relatorio) throws Exception
{
PlanoActuacao p = new PlanoActuacao();
p.setData_visita(relatorio.getToHsMarcacoesEstabelecimento().getData());
p.setFase(new Integer(Global.FASE_SEGURANCA_PREENCHIMENTO));
p.setEstabelecimento_id(relatorio.getToHsMarcacoesEstabelecimento().getToEstabelecimentos().getId());
p.setNome_estabelecimento(relatorio.getToHsMarcacoesEstabelecimento().getToEstabelecimentos().getNome());
p = rdp.getFullPlano(p, relatorio.getId());
p.setId(pdp.createPlano(p));
createAreas(p.getId(), p.getAreas());
return p;
}
private void createAreas(Integer plano_id, List<Area> areas) throws Exception
{
for(Area a : areas)
{
a.setPlano_id(plano_id);
a.setId(pdp.createArea(a));
createRiscos(a.getId(), a.getRiscos());
}
}
private void createRiscos(Integer area_id, List<Risco> riscos) throws Exception
{
for(Risco r : riscos)
{
r.setArea_id(area_id);
r.setId(pdp.createRisco(r));
createValores(r.getId(), r.getValores());
}
}
private void createValores(Integer risco_id, List<Valor> valores) throws Exception
{
for(Valor v : valores)
{
v.setRisco_id(risco_id);
v.setId(pdp.createValor(v));
createMedidas(v.getId(), v.getMedidas());
}
}
private void createMedidas(Integer valor_id, List<Medida> medidas) throws Exception
{
for(Medida m : medidas)
{
m.setValor_id(valor_id);
m.setId(pdp.createMedida(m));
createPostos(m.getId(), m.getPostos());
}
}
private void createPostos(Integer medida_id, List<PostoTrabalho> postos) throws Exception
{
for(PostoTrabalho p : postos)
{
p.setMedida_id(medida_id);
pdp.createPostoTrabalho(p);
}
}
public List<PlanoActuacao> getPlanosActivos(Utilizador u) public List<PlanoActuacao> getPlanosActivos(Utilizador u)
{ {
ArrayList list = new ArrayList(); ArrayList list = new ArrayList();
@ -118,5 +200,59 @@ public class PlanosActuacao {
} }
return list; return list;
} }
private void showPlano(PlanoActuacao p)
{
System.out.println("================================================");
System.out.println("PLANO : " + p.getData_visita_str() + " | " + p.getDescricao() + " | " + p.getFase_nome() + " | " + p.getNome_estabelecimento());
showAreas(p.getAreas());
System.out.println("================================================");
}
private void showAreas(List<Area> areas)
{
for(Area a : areas)
{
System.out.println(" " + a.getDescricao());
showRiscos(a.getRiscos());
}
}
private void showRiscos(List<Risco> riscos)
{
for(Risco r : riscos)
{
System.out.println(" " + r.getDescricao());
showValores(r.getValores());
}
}
private void showValores(List<Valor> valores)
{
for(Valor v : valores)
{
System.out.println(" " + v.getValor());
showMedidas(v.getMedidas());
}
}
private void showMedidas(List<Medida> medidas)
{
for(Medida m : medidas)
{
System.out.println(" " + m.getDescricao());
showPostos(m.getPostos());
}
}
private void showPostos(List<PostoTrabalho> postos)
{
for(PostoTrabalho p : postos)
{
System.out.println(" " + p.getDescricao());
}
}
} }

@ -102,7 +102,7 @@
<h:panelGrid columnClasses="gridColCenter" columns="1" id="gridMsg" style="height: 24px; width: 100%"> <h:panelGrid columnClasses="gridColCenter" columns="1" id="gridMsg" style="height: 24px; width: 100%">
<webuijsf:staticText binding="#{EditarPlano.lblMsg}" id="lblMsg" styleClass="labelMsg "/> <webuijsf:staticText binding="#{EditarPlano.lblMsg}" id="lblMsg" styleClass="labelMsg "/>
</h:panelGrid> </h:panelGrid>
<webuijsf:staticText escape="false" id="lblTop" style="" styleClass="label" text="Plano de actuação da auditoria 02/10/2008"/> <webuijsf:staticText binding="#{EditarPlano.lblTop}" escape="false" id="lblTop" style="" styleClass="label"/>
<h:panelGrid binding="#{EditarPlano.gridLayout}" columnClasses="gridColLeft" columns="1" id="gridLayout" <h:panelGrid binding="#{EditarPlano.gridLayout}" columnClasses="gridColLeft" columns="1" id="gridLayout"
style="height: 24px; width: 80%" styleClass="centerBlock"/> style="height: 24px; width: 80%" styleClass="centerBlock"/>
<h:panelGrid binding="#{EditarPlano.gridValidar}" columns="1" id="gridValidar" style="height: 24px; width: 80%" <h:panelGrid binding="#{EditarPlano.gridValidar}" columns="1" id="gridValidar" style="height: 24px; width: 80%"

Loading…
Cancel
Save