22/12/2008

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

@ -22,6 +22,8 @@ import javax.servlet.http.HttpSession;
*/
public class Dblocal {
//String connectionURL = "jdbc:postgresql://storage/siprp_local"; //testes
//String connectionURL = "jdbc:postgresql://storage/siprp_local_3"; //testes local_3
String connectionURL = "jdbc:postgresql://localhost:5436/siprp_local_3";
String User = "postgres";

@ -13,6 +13,7 @@ import java.util.List;
*/
public class Area {
private Integer id;
private Integer area_id; //from relatorios
private Integer plano_id;
private String descricao;
private List<Risco> riscos;
@ -48,4 +49,12 @@ public class Area {
public void setPlano_id(Integer plano_id) {
this.plano_id = plano_id;
}
public Integer getArea_id() {
return area_id;
}
public void setArea_id(Integer area_id) {
this.area_id = area_id;
}
}

@ -14,6 +14,7 @@ import java.util.Vector;
*/
public class Medida {
private Integer id;
private Integer medida_id; //from relatorios
private Integer valor_id;
private Integer risco_id;
private String descricao;
@ -67,4 +68,12 @@ public class Medida {
public void setRisco_id(Integer risco_id) {
this.risco_id = risco_id;
}
public Integer getMedida_id() {
return medida_id;
}
public void setMedida_id(Integer medida_id) {
this.medida_id = medida_id;
}
}

@ -11,6 +11,7 @@ package db.entidades;
*/
public class PostoTrabalho {
private Integer id;
private Integer posto_id; //from relatorios
private Integer medida_id;
private String descricao;
private String activo;
@ -46,4 +47,12 @@ public class PostoTrabalho {
public void setMedida_id(Integer medida_id) {
this.medida_id = medida_id;
}
public Integer getPosto_id() {
return posto_id;
}
public void setPosto_id(Integer posto_id) {
this.posto_id = posto_id;
}
}

@ -78,6 +78,28 @@ public class PlanosDataProvider extends GenericDataProvider{
{
p.setObservacoes_dns("");
}
if(p.getUser_dir_loja() != null)
{
if(p.getUser_dir_loja().intValue() == 0)
{
p.setUser_dir_loja(null);
}
}
if(p.getUser_dns() != null)
{
if(p.getUser_dns().intValue() == 0)
{
p.setUser_dns(null);
}
}
if(p.getUser_hs() != null)
{
if(p.getUser_hs().intValue() == 0)
{
p.setUser_hs(null);
}
}
Statement st = createStatement();
String sql = "";
@ -260,8 +282,9 @@ public class PlanosDataProvider extends GenericDataProvider{
{
Statement st = createStatement();
Integer newId = getMaxTableId("plano_areas");
String sql = "insert into plano_areas (id, plano_id, descricao) values (";
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 += ")";
@ -307,8 +330,9 @@ public class PlanosDataProvider extends GenericDataProvider{
{
Statement st = createStatement();
Integer newId = getMaxTableId("plano_medidas");
String sql = "insert into plano_medidas (id, risco_id, descricao) values (";
String sql = "insert into plano_medidas (id, medida_id, risco_id, descricao) values (";
sql += newId + ", ";
sql += m.getMedida_id() + ", ";
sql += m.getRisco_id() + ", '";
sql += m.getDescricao() + "' ";
sql += ")";
@ -322,8 +346,9 @@ public class PlanosDataProvider extends GenericDataProvider{
{
Statement st = createStatement();
Integer newId = getMaxTableId("plano_postos_trabalho");
String sql = "insert into plano_postos_trabalho (id, medida_id, descricao) values (";
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 += ")";

@ -67,19 +67,24 @@ public class RelatoriosDataProvider extends GenericDataProvider {
{
Area a = new Area();
a.setId(new Integer( rs.getInt("area_id") ));
a.setDescricao(Utils.unicodeToHTML(rs.getString("descricao")));
try
a.setArea_id(a.getId());
if(existemMedidasByArea(a.getId()))
{
a.setRiscos(getRiscosByArea(a));
}
catch(Exception ex)
{
System.out.println("ERRO RISCOS BY AREA !!!!");
ex.printStackTrace();
a.setRiscos(null);
a.setDescricao(Utils.unicodeToHTML(rs.getString("descricao")));
try
{
a.setRiscos(getRiscosByArea(a));
}
catch(Exception ex)
{
System.out.println("ERRO RISCOS BY AREA !!!!");
ex.printStackTrace();
a.setRiscos(null);
}
areas.add(a);
}
areas.add(a);
}while(rs.next());
plano.setAreas(areas);
}
@ -108,13 +113,17 @@ public class RelatoriosDataProvider extends GenericDataProvider {
{
Risco r = new Risco();
r.setId(new Integer( rs.getInt("id") ));
r.setDescricao(Utils.unicodeToHTML(rs.getString("descricao")));
r.setValores(getValoresByRisco(r, a));
//Integer valor = getValorByRisco(r, a);
//r.setValor(valor);
r.setRisco_id(new Integer( rs.getInt("id") ));
r.setMedidas(getMedidasByRisco( r, a));
riscos.add(r);
if(existemMedidasByRisco(r.getId()))
{
r.setDescricao(Utils.unicodeToHTML(rs.getString("descricao")));
r.setValores(getValoresByRisco(r, a));
//Integer valor = getValorByRisco(r, a);
//r.setValor(valor);
r.setRisco_id(new Integer( rs.getInt("id") ));
r.setMedidas(getMedidasByRisco( r, a));
riscos.add(r);
}
}while(rs.next());
}
return riscos;
@ -247,9 +256,10 @@ public class RelatoriosDataProvider extends GenericDataProvider {
//int valor = rs.getInt("valor");
//m.setValor(new Integer(valor));
m.setId(new Integer( rs.getInt("medida_id") ));
m.setMedida_id(m.getId());
m.setDescricao(Utils.unicodeToHTML(rs.getString("descricao")));
//m.setPostos(getPostosByMedidaAndValor(m, v, a));
m.setPostos(getPostosByMedida(m, a));
m.setPostos(getPostosByMedida(r, m, a));
medidas.add(m);
}while(rs.next());
}
@ -288,7 +298,7 @@ public class RelatoriosDataProvider extends GenericDataProvider {
// return postos;
// }
private List<PostoTrabalho> getPostosByMedida(Medida m, Area a) throws Exception
private List<PostoTrabalho> getPostosByMedida(Risco r, Medida m, Area a) throws Exception
{
Statement st = dblocal.createStatement();
String sql = "select subquery.posto_id, valor, descricao from ";
@ -301,7 +311,7 @@ public class RelatoriosDataProvider extends GenericDataProvider {
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 medida_id = " + m.getId() + " and area_id = " + a.getId() + " and risco_id = " + r.getId() + ") subquery ";
//sql += "where valor = " + v.getValor();
System.out.println("POSTOS BY MEDIDA SQL : " + sql);
ResultSet rs = st.executeQuery(sql);
@ -313,6 +323,7 @@ public class RelatoriosDataProvider extends GenericDataProvider {
{
PostoTrabalho p = new PostoTrabalho();
p.setId(new Integer( rs.getInt("posto_id") ));
p.setPosto_id(p.getId());
p.setDescricao(Utils.unicodeToHTML(rs.getString("descricao")));
postos.add(p);
}while(rs.next());
@ -320,6 +331,60 @@ public class RelatoriosDataProvider extends GenericDataProvider {
return postos;
}
private boolean existemMedidasByArea(Integer area_id) throws Exception
{
Statement st = dblocal.createStatement();
String sql = "select distinct medida_id, valor, descricao ";
sql += "from ( select distinct hs_relatorio_posto_medida.medida_id, hs_relatorio_posto_risco.risco_id, hs_relatorio_medida.description as descricao, ";
sql += "case when hs_relatorio_posto_risco.valor_qualitativo_id isnull and hs_relatorio_posto_risco.probabilidade isnull and hs_relatorio_posto_risco.severidade isnull then null ";
sql += "when hs_relatorio_posto_risco.valor_qualitativo_id isnull then hs_relatorio_posto_risco.probabilidade * hs_relatorio_posto_risco.severidade else hs_relatorio_posto_risco.valor_qualitativo_id end as valor 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 area_id = " + area_id + " and hs_relatorio_posto_medida.is_plano_actuacao = true) subquery order by subquery.medida_id, valor";
System.out.println("EXISTEM MEDIDAS BY AREA SQL : " + sql);
ResultSet rs = st.executeQuery(sql);
if(rs.isBeforeFirst())
{
return true;
}
else
{
return false;
}
}
private boolean existemMedidasByRisco(Integer risco_id) throws Exception
{
Statement st = dblocal.createStatement();
String sql = "select distinct medida_id ";
sql += "from ( select distinct hs_relatorio_posto_medida.medida_id, hs_relatorio_posto_risco.risco_id, hs_relatorio_medida.description as descricao, ";
sql += "case when hs_relatorio_posto_risco.valor_qualitativo_id isnull and hs_relatorio_posto_risco.probabilidade isnull and hs_relatorio_posto_risco.severidade isnull then null ";
sql += "when hs_relatorio_posto_risco.valor_qualitativo_id isnull then hs_relatorio_posto_risco.probabilidade * hs_relatorio_posto_risco.severidade else hs_relatorio_posto_risco.valor_qualitativo_id end as valor 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 = " + risco_id + " and hs_relatorio_posto_medida.is_plano_actuacao = true) subquery order by medida_id";
System.out.println("EXISTEM MEDIDAS BY RISCO SQL : " + sql);
ResultSet rs = st.executeQuery(sql);
if(rs.isBeforeFirst())
{
return true;
}
else
{
return false;
}
}
public String getEmpresaNome(Integer empresa_id) throws Exception
{
Statement st = dblocal.createStatement();

@ -119,6 +119,7 @@ public class MainPhaseListener implements PhaseListener{
//////////////
String user_id = JSFUtils.getRequestParameter(fc, "user");
System.out.println("PHASE LISTENER - USER ID : " + user_id);
Utilizador u = null;
try
{
@ -146,20 +147,27 @@ public class MainPhaseListener implements PhaseListener{
if(sview.matches("/EditarPlano.jsp") || sview.matches("/EnviarCorrecao.jsp") || sview.matches("/ViewPlano.jsp"))
{
session.setDisableMenu(true);
session.setDisableMenu(false);
session.setDisableMenuPlanos(false);
if(sview.matches("/ViewPlano.jsp"))
{
if(u.getTipo().intValue() == Global.DIRECTOR_SIPRP)
{
//session.setDisableMenu(false);
session.setDisableMenuUtilizadores(false);
}
else
{
session.setDisableMenuUtilizadores(true);
}
session.setDisableMenuDadosUtilizador(false);
session.setRenderTopMenuImages(false);
session.setRenderSubHeader(true);
}
else if(sview.matches("/EditarPlano.jsp"))
{
session.setDisableMenuPlanos(true);
//session.setDisableMenuPlanos(true);
session.setDisableMenuPlanos(false);
session.setRenderTopMenuImages(false);
session.setRenderSubHeader(true);
}

@ -191,7 +191,7 @@ public class Header extends AbstractFragmentBean {
public String lnkPlanosActuacao1_action() {
// TODO: Process the action. Return value is a navigation
// case name where null will return to the same page.
return null;
return "lista_planos";
}
public String lnkGerirUtilizadores1_action() {

@ -165,49 +165,58 @@ public class ListaPlanos extends AbstractPageBean {
@Override
public void prerender() {
//UIComponent emptyCol = tableRowGroup1.getEmptyDataText();
System.out.println("LISTA PLANOS - PRERENDER");
FacesContext fc = getFacesContext();
String user_id = JSFUtils.getRequestParameter(fc, "user");
System.out.println("LISTA PLANOS - USER ID : " + user_id);
Utilizador u = null;
try
if(user_id != null)
{
Integer userId = new Integer(Integer.parseInt(user_id));
try
{
UtilizadoresDataProvider udp = new UtilizadoresDataProvider();
udp.checkConnection();
u = udp.getUtilizador(userId);
getSessionBean1().setCurrentUser(u);
Integer userId = new Integer(Integer.parseInt(user_id));
try
{
UtilizadoresDataProvider udp = new UtilizadoresDataProvider();
udp.checkConnection();
u = udp.getUtilizador(userId);
getSessionBean1().setCurrentUser(u);
u = getSessionBean1().getCurrentUser();
if(u.getTipo().intValue() == Global.DIRECTOR_SIPRP)
{
gridActual.setRendered(false);
tableRowGroup2.setEmptyDataMsg("Sem registos");
tableRowGroup3.setEmptyDataMsg("Sem registos");
}
if(u.getTipo().intValue() != Global.DIRECTOR_SIPRP)
{
getSessionBean1().setDisableMenuUtilizadores(true);
tableRowGroup1.setEmptyDataMsg("Sem registos");
tableRowGroup2.setEmptyDataMsg("Sem registos");
tableRowGroup3.setEmptyDataMsg("Sem registos");
}
initialize();
}
catch(Exception ex1)
{
ex1.printStackTrace();
}
}
catch(Exception ex1)
catch(Exception ex)
{
ex1.printStackTrace();
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
u = getSessionBean1().getCurrentUser();
if(u.getTipo().intValue() == Global.DIRECTOR_SIPRP)
{
gridActual.setRendered(false);
tableRowGroup2.setEmptyDataMsg("Sem registos");
tableRowGroup3.setEmptyDataMsg("Sem registos");
ex.printStackTrace();
}
}
if(u.getTipo().intValue() != Global.DIRECTOR_SIPRP)
{
getSessionBean1().setDisableMenuUtilizadores(true);
tableRowGroup1.setEmptyDataMsg("Sem registos");
tableRowGroup2.setEmptyDataMsg("Sem registos");
tableRowGroup3.setEmptyDataMsg("Sem registos");
}
initialize();
}
/**

@ -91,7 +91,11 @@ public class PlanosActuacao {
try
{
PlanoActuacao p = createPlano(relatorio);
enviarMail(p);
if(p != null)
{
enviarMail(p);
}
//showPlano(p);
}
catch(Exception ex)
@ -131,13 +135,29 @@ public class PlanosActuacao {
p.setData_relatorio(relatorio.getData());
p = rdp.getFullPlano(p, relatorio.getId());
p.setId(pdp.createPlano(p));
if(p.getAreas() != null)
{
createAreas(p.getId(), p.getAreas());
if(p.getAreas().size() > 0)
{
p.setId(pdp.createPlano(p));
System.out.println("CREATE PLANO - PLANO ID : " + p.getId().toString());
if(p.getAreas() != null)
{
createAreas(p.getId(), p.getAreas());
}
}
else
{
p = null;
}
}
else
{
p = null;
}
System.out.println("CREATE PLANO - PLANO ID : " + p.getId().toString());
return p;
}

@ -91,6 +91,13 @@
<to-view-id>/ListaPlanos.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/EditarPlano.jsp</from-view-id>
<navigation-case>
<from-outcome>lista_planos</from-outcome>
<to-view-id>/ListaPlanos.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>Dummy</managed-bean-name>
<managed-bean-class>planosactuacao.Dummy</managed-bean-class>

Loading…
Cancel
Save