22/12/2008

git-svn-id: https://svn.coded.pt/svn/SIPRP@876 bb69d46d-e84e-40c8-a05a-06db0d633741
lxbfYeaa
L Luís = 17 years ago
parent 8eaa109df9
commit aa5d7ffce0

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

@ -13,6 +13,7 @@ import java.util.List;
*/ */
public class Area { public class Area {
private Integer id; private Integer id;
private Integer area_id; //from relatorios
private Integer plano_id; private Integer plano_id;
private String descricao; private String descricao;
private List<Risco> riscos; private List<Risco> riscos;
@ -48,4 +49,12 @@ public class Area {
public void setPlano_id(Integer plano_id) { public void setPlano_id(Integer plano_id) {
this.plano_id = 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 { public class Medida {
private Integer id; private Integer id;
private Integer medida_id; //from relatorios
private Integer valor_id; private Integer valor_id;
private Integer risco_id; private Integer risco_id;
private String descricao; private String descricao;
@ -67,4 +68,12 @@ public class Medida {
public void setRisco_id(Integer risco_id) { public void setRisco_id(Integer risco_id) {
this.risco_id = 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 { public class PostoTrabalho {
private Integer id; private Integer id;
private Integer posto_id; //from relatorios
private Integer medida_id; private Integer medida_id;
private String descricao; private String descricao;
private String activo; private String activo;
@ -46,4 +47,12 @@ public class PostoTrabalho {
public void setMedida_id(Integer medida_id) { public void setMedida_id(Integer medida_id) {
this.medida_id = 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(""); 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(); Statement st = createStatement();
String sql = ""; String sql = "";
@ -260,8 +282,9 @@ public class PlanosDataProvider extends GenericDataProvider{
{ {
Statement st = createStatement(); Statement st = createStatement();
Integer newId = getMaxTableId("plano_areas"); 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 += newId + ", ";
sql += a.getArea_id() + ", ";
sql += a.getPlano_id() + ", '"; sql += a.getPlano_id() + ", '";
sql += a.getDescricao() + "' "; sql += a.getDescricao() + "' ";
sql += ")"; sql += ")";
@ -307,8 +330,9 @@ public class PlanosDataProvider extends GenericDataProvider{
{ {
Statement st = createStatement(); Statement st = createStatement();
Integer newId = getMaxTableId("plano_medidas"); 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 += newId + ", ";
sql += m.getMedida_id() + ", ";
sql += m.getRisco_id() + ", '"; sql += m.getRisco_id() + ", '";
sql += m.getDescricao() + "' "; sql += m.getDescricao() + "' ";
sql += ")"; sql += ")";
@ -322,8 +346,9 @@ public class PlanosDataProvider extends GenericDataProvider{
{ {
Statement st = createStatement(); Statement st = createStatement();
Integer newId = getMaxTableId("plano_postos_trabalho"); 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 += newId + ", ";
sql += p.getPosto_id() + ", ";
sql += p.getMedida_id() + ", '"; sql += p.getMedida_id() + ", '";
sql += p.getDescricao() + "' "; sql += p.getDescricao() + "' ";
sql += ")"; sql += ")";

@ -67,19 +67,24 @@ public class RelatoriosDataProvider extends GenericDataProvider {
{ {
Area a = new Area(); Area a = new Area();
a.setId(new Integer( rs.getInt("area_id") )); a.setId(new Integer( rs.getInt("area_id") ));
a.setDescricao(Utils.unicodeToHTML(rs.getString("descricao"))); a.setArea_id(a.getId());
try if(existemMedidasByArea(a.getId()))
{ {
a.setRiscos(getRiscosByArea(a)); a.setDescricao(Utils.unicodeToHTML(rs.getString("descricao")));
} try
catch(Exception ex) {
{ a.setRiscos(getRiscosByArea(a));
System.out.println("ERRO RISCOS BY AREA !!!!"); }
ex.printStackTrace(); catch(Exception ex)
a.setRiscos(null); {
System.out.println("ERRO RISCOS BY AREA !!!!");
ex.printStackTrace();
a.setRiscos(null);
}
areas.add(a);
} }
areas.add(a);
}while(rs.next()); }while(rs.next());
plano.setAreas(areas); plano.setAreas(areas);
} }
@ -108,13 +113,17 @@ public class RelatoriosDataProvider extends GenericDataProvider {
{ {
Risco r = new Risco(); Risco r = new Risco();
r.setId(new Integer( rs.getInt("id") )); r.setId(new Integer( rs.getInt("id") ));
r.setDescricao(Utils.unicodeToHTML(rs.getString("descricao"))); if(existemMedidasByRisco(r.getId()))
r.setValores(getValoresByRisco(r, a)); {
//Integer valor = getValorByRisco(r, a); r.setDescricao(Utils.unicodeToHTML(rs.getString("descricao")));
//r.setValor(valor); r.setValores(getValoresByRisco(r, a));
r.setRisco_id(new Integer( rs.getInt("id") )); //Integer valor = getValorByRisco(r, a);
r.setMedidas(getMedidasByRisco( r, a)); //r.setValor(valor);
riscos.add(r); r.setRisco_id(new Integer( rs.getInt("id") ));
r.setMedidas(getMedidasByRisco( r, a));
riscos.add(r);
}
}while(rs.next()); }while(rs.next());
} }
return riscos; return riscos;
@ -247,9 +256,10 @@ public class RelatoriosDataProvider extends GenericDataProvider {
//int valor = rs.getInt("valor"); //int valor = rs.getInt("valor");
//m.setValor(new Integer(valor)); //m.setValor(new Integer(valor));
m.setId(new Integer( rs.getInt("medida_id") )); m.setId(new Integer( rs.getInt("medida_id") ));
m.setMedida_id(m.getId());
m.setDescricao(Utils.unicodeToHTML(rs.getString("descricao"))); m.setDescricao(Utils.unicodeToHTML(rs.getString("descricao")));
//m.setPostos(getPostosByMedidaAndValor(m, v, a)); //m.setPostos(getPostosByMedidaAndValor(m, v, a));
m.setPostos(getPostosByMedida(m, a)); m.setPostos(getPostosByMedida(r, m, a));
medidas.add(m); medidas.add(m);
}while(rs.next()); }while(rs.next());
} }
@ -288,7 +298,7 @@ public class RelatoriosDataProvider extends GenericDataProvider {
// return postos; // 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(); Statement st = dblocal.createStatement();
String sql = "select subquery.posto_id, valor, descricao from "; 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_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_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 += "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(); //sql += "where valor = " + v.getValor();
System.out.println("POSTOS BY MEDIDA SQL : " + sql); System.out.println("POSTOS BY MEDIDA SQL : " + sql);
ResultSet rs = st.executeQuery(sql); ResultSet rs = st.executeQuery(sql);
@ -313,6 +323,7 @@ public class RelatoriosDataProvider extends GenericDataProvider {
{ {
PostoTrabalho p = new PostoTrabalho(); PostoTrabalho p = new PostoTrabalho();
p.setId(new Integer( rs.getInt("posto_id") )); p.setId(new Integer( rs.getInt("posto_id") ));
p.setPosto_id(p.getId());
p.setDescricao(Utils.unicodeToHTML(rs.getString("descricao"))); p.setDescricao(Utils.unicodeToHTML(rs.getString("descricao")));
postos.add(p); postos.add(p);
}while(rs.next()); }while(rs.next());
@ -320,6 +331,60 @@ public class RelatoriosDataProvider extends GenericDataProvider {
return postos; 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 public String getEmpresaNome(Integer empresa_id) throws Exception
{ {
Statement st = dblocal.createStatement(); Statement st = dblocal.createStatement();

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

@ -191,7 +191,7 @@ public class Header extends AbstractFragmentBean {
public String lnkPlanosActuacao1_action() { public String lnkPlanosActuacao1_action() {
// 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.
return null; return "lista_planos";
} }
public String lnkGerirUtilizadores1_action() { public String lnkGerirUtilizadores1_action() {

@ -165,49 +165,58 @@ public class ListaPlanos extends AbstractPageBean {
@Override @Override
public void prerender() { public void prerender() {
//UIComponent emptyCol = tableRowGroup1.getEmptyDataText(); //UIComponent emptyCol = tableRowGroup1.getEmptyDataText();
System.out.println("LISTA PLANOS - PRERENDER");
FacesContext fc = getFacesContext(); FacesContext fc = getFacesContext();
String user_id = JSFUtils.getRequestParameter(fc, "user"); String user_id = JSFUtils.getRequestParameter(fc, "user");
System.out.println("LISTA PLANOS - USER ID : " + user_id);
Utilizador u = null; Utilizador u = null;
try if(user_id != null)
{ {
Integer userId = new Integer(Integer.parseInt(user_id));
try try
{ {
UtilizadoresDataProvider udp = new UtilizadoresDataProvider(); Integer userId = new Integer(Integer.parseInt(user_id));
udp.checkConnection();
u = udp.getUtilizador(userId); try
getSessionBean1().setCurrentUser(u); {
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(); ex.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");
} }
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 try
{ {
PlanoActuacao p = createPlano(relatorio); PlanoActuacao p = createPlano(relatorio);
enviarMail(p); if(p != null)
{
enviarMail(p);
}
//showPlano(p); //showPlano(p);
} }
catch(Exception ex) catch(Exception ex)
@ -131,13 +135,29 @@ public class PlanosActuacao {
p.setData_relatorio(relatorio.getData()); p.setData_relatorio(relatorio.getData());
p = rdp.getFullPlano(p, relatorio.getId()); p = rdp.getFullPlano(p, relatorio.getId());
p.setId(pdp.createPlano(p));
if(p.getAreas() != null) 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; return p;
} }

@ -91,6 +91,13 @@
<to-view-id>/ListaPlanos.jsp</to-view-id> <to-view-id>/ListaPlanos.jsp</to-view-id>
</navigation-case> </navigation-case>
</navigation-rule> </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>
<managed-bean-name>Dummy</managed-bean-name> <managed-bean-name>Dummy</managed-bean-name>
<managed-bean-class>planosactuacao.Dummy</managed-bean-class> <managed-bean-class>planosactuacao.Dummy</managed-bean-class>

Loading…
Cancel
Save