diff --git a/trunk/GestaoSHST/src/com/evolute/siprp/client/panels/apps/AnaliseAcidentesTrabalho/actual/ActualPanel.ui.xml b/trunk/GestaoSHST/src/com/evolute/siprp/client/panels/apps/AnaliseAcidentesTrabalho/actual/ActualPanel.ui.xml index 74d7d74e..8f9c3b1b 100644 --- a/trunk/GestaoSHST/src/com/evolute/siprp/client/panels/apps/AnaliseAcidentesTrabalho/actual/ActualPanel.ui.xml +++ b/trunk/GestaoSHST/src/com/evolute/siprp/client/panels/apps/AnaliseAcidentesTrabalho/actual/ActualPanel.ui.xml @@ -26,6 +26,8 @@ width: 816px; margin-top: 10px; margin-bottom: 15px; + background-color: #FFFFFF; + border: 1px solid #000000; } diff --git a/trunk/GestaoSHST/src/com/evolute/siprp/client/panels/apps/AnaliseAcidentesTrabalho/actual/ActualTable.java b/trunk/GestaoSHST/src/com/evolute/siprp/client/panels/apps/AnaliseAcidentesTrabalho/actual/ActualTable.java index e7ea4db1..bb87140b 100644 --- a/trunk/GestaoSHST/src/com/evolute/siprp/client/panels/apps/AnaliseAcidentesTrabalho/actual/ActualTable.java +++ b/trunk/GestaoSHST/src/com/evolute/siprp/client/panels/apps/AnaliseAcidentesTrabalho/actual/ActualTable.java @@ -41,6 +41,8 @@ public class ActualTable extends FlexTable cellFormatter.setStyleName( 0, 4, "lblBold" ); cellFormatter.setStyleName( 0, 5, "lblBold" ); + this.setText( 1, 0, "loading ..." ); + this.getFlexCellFormatter().setColSpan( 1, 0, 6 ); this.actualService.getActualTableData( PageNavigation.getProvider().getUserLogged(), new AsyncCallback< Vector< ActualTableRow > >() { @Override @@ -62,20 +64,21 @@ public class ActualTable extends FlexTable if ( tableRows == null || tableRows.size() == 0 ) { this.setText( 1, 0, "No items found." ); - this.getFlexCellFormatter().setColSpan( 1, 0, 6 ); } else { - for ( int rowNumber = 1, columnNumber = 0; rowNumber < tableRows.size(); rowNumber++, columnNumber = 0 ) + this.getFlexCellFormatter().setColSpan( 1, 0, 0 ); + + for ( int rowNumber = 0, columnNumber = 0; rowNumber < tableRows.size(); rowNumber++, columnNumber = 0 ) { ActualTableRow row = tableRows.get( rowNumber ); - this.setText( rowNumber, columnNumber++, D_F.format( row.getDataAcidente() ) ); - this.setText( rowNumber, columnNumber++, D_F.format( row.getDataAbertura() ) ); - this.setText( rowNumber, columnNumber++, row.getNrAcidente() ); - this.setText( rowNumber, columnNumber++, row.getPOR() ); - this.setText( rowNumber, columnNumber++, row.getNomeAcidentado() ); - this.setText( rowNumber, columnNumber++, row.getFase() ); + this.setText( (rowNumber+1), columnNumber++, D_F.format( row.getDataAcidente() ) ); + this.setText( (rowNumber+1), columnNumber++, D_F.format( row.getDataAbertura() ) ); + this.setText( (rowNumber+1), columnNumber++, row.getNrAcidente() ); + this.setText( (rowNumber+1), columnNumber++, row.getPOR() ); + this.setText( (rowNumber+1), columnNumber++, row.getNomeAcidentado() ); + this.setText( (rowNumber+1), columnNumber++, String.valueOf( row.getFase() ) ); } } } diff --git a/trunk/GestaoSHST/src/com/evolute/siprp/client/vo/ActualTableRow.java b/trunk/GestaoSHST/src/com/evolute/siprp/client/vo/ActualTableRow.java index 25145195..220da872 100644 --- a/trunk/GestaoSHST/src/com/evolute/siprp/client/vo/ActualTableRow.java +++ b/trunk/GestaoSHST/src/com/evolute/siprp/client/vo/ActualTableRow.java @@ -7,11 +7,13 @@ public class ActualTableRow implements Serializable { private static final long serialVersionUID = -6271564752485792179L; + private Integer id; private Date dataAcidente; private Date dataAbertura; private String nrAcidente; private String POR; private String nomeAcidentado; + private Integer estado; private String fase; @@ -21,6 +23,14 @@ public class ActualTableRow implements Serializable } + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + public Date getDataAcidente() { return dataAcidente; } @@ -61,10 +71,18 @@ public class ActualTableRow implements Serializable this.nomeAcidentado = nomeAcidentado; } + public Integer getEstado() { + return estado; + } + + public void setEstado(Integer estado) { + this.estado = estado; + } + public String getFase() { return fase; } - + public void setFase(String fase) { this.fase = fase; } diff --git a/trunk/GestaoSHST/src/com/evolute/siprp/client/vo/Utilizador.java b/trunk/GestaoSHST/src/com/evolute/siprp/client/vo/Utilizador.java index 5b964104..a4e9282b 100644 --- a/trunk/GestaoSHST/src/com/evolute/siprp/client/vo/Utilizador.java +++ b/trunk/GestaoSHST/src/com/evolute/siprp/client/vo/Utilizador.java @@ -16,6 +16,8 @@ public class Utilizador implements Serializable private Boolean primeiro_login = null; private Date data_password = null; + private Integer estabelecimento_id = null; + private Boolean responsavel_loja = null; public Utilizador() { @@ -77,5 +79,21 @@ public class Utilizador implements Serializable public void setData_password(Date data_password) { this.data_password = data_password; } + + public Boolean getResponsavel_loja() { + return responsavel_loja; + } + + public void setResponsavel_loja(Boolean responsavel_loja) { + this.responsavel_loja = responsavel_loja; + } + + public Integer getEstabelecimento_id() { + return estabelecimento_id; + } + + public void setEstabelecimento_id(Integer estabelecimento_id) { + this.estabelecimento_id = estabelecimento_id; + } } diff --git a/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/AnaliseAcidentesTrabalho/AnaliseAcidentesTrabalhoLogic.java b/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/AnaliseAcidentesTrabalho/AnaliseAcidentesTrabalhoLogic.java index a426f29c..47858129 100644 --- a/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/AnaliseAcidentesTrabalho/AnaliseAcidentesTrabalhoLogic.java +++ b/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/AnaliseAcidentesTrabalho/AnaliseAcidentesTrabalhoLogic.java @@ -1,5 +1,6 @@ package com.evolute.siprp.server.logic.AnaliseAcidentesTrabalho; +import java.util.Date; import java.util.Vector; import com.evolute.siprp.client.panels.apps.AnaliseAcidentesTrabalho.actual.ActualTableService; @@ -33,15 +34,28 @@ public class AnaliseAcidentesTrabalhoLogic implements ActualTableService try { - Virtual2DArray array = actualProvider.getAnalisesActuais(); + Virtual2DArray array = actualProvider.getAnalisesActuais( userLogged ); result = new Vector< ActualTableRow >(); for ( int i = 0; i < array.columnLength(); i++ ) { - //TODO: ... + Integer anaID = ( Integer ) array.get( i, 0 ); + Date dataAcidente = ( Date ) array.get( i, 1 ); + Date dataAbertura = ( Date ) array.get( i, 2 ); + String analiseNr = ( String ) array.get( i, 3 ); + String nrPOR = ( String ) array.get( i, 4 ); + String nomeTrabalhador = ( String ) array.get( i, 5 ); + Integer estado = ( Integer ) array.get( i, 6 ); ActualTableRow row = new ActualTableRow(); - //TODO: ... + row.setId( anaID ); + row.setDataAcidente( dataAcidente ); + row.setDataAbertura( dataAbertura ); + row.setNrAcidente( analiseNr ); + row.setPOR( nrPOR ); + row.setNomeAcidentado( nomeTrabalhador ); + row.setEstado( estado ); + row.setFase( actualProvider.getFase( estado ) ); result.add( row ); } diff --git a/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/AnaliseAcidentesTrabalho/actual/ActualTableDataProvider.java b/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/AnaliseAcidentesTrabalho/actual/ActualTableDataProvider.java index bc1fd244..34ef5f69 100644 --- a/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/AnaliseAcidentesTrabalho/actual/ActualTableDataProvider.java +++ b/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/AnaliseAcidentesTrabalho/actual/ActualTableDataProvider.java @@ -1,12 +1,18 @@ package com.evolute.siprp.server.logic.AnaliseAcidentesTrabalho.actual; +import com.evolute.siprp.client.panels.utils.AppConstants; +import com.evolute.siprp.client.panels.utils.permissoes.RolesConstants; +import com.evolute.siprp.client.vo.Utilizador; import com.evolute.siprp.server.db.InitDB; +import com.evolute.siprp.server.db.data.siprp.AcidentadosData; +import com.evolute.siprp.server.db.data.siprp.AnalisesAcidentesData; import com.evolute.utils.Singleton; import com.evolute.utils.arrays.Virtual2DArray; import com.evolute.utils.db.DBManager; import com.evolute.utils.db.Executer; import com.evolute.utils.jdo.JDOProvider; import com.evolute.utils.sql.Expression; +import com.evolute.utils.sql.Field; import com.evolute.utils.sql.Select; import com.evolute.utils.sql.Select2; @@ -38,78 +44,184 @@ public class ActualTableDataProvider } - //TODO: ... - public Virtual2DArray getAnalisesActuais() throws Exception + /** + * + * @param userLogged + * @return analises_acidentes.id, analises_acidentes.data_acidente, analises_acidentes.data_inicio_processo, + * analises_acidentes.analise_nr, acidentados.numero_mecanografico, acidentados.nome, analises_acidentes.estado + * @throws Exception + */ + public Virtual2DArray getAnalisesActuais( Utilizador userLogged ) throws Exception { Virtual2DArray result = null; + Integer userType = userLogged.getTipo_utilizador(); + if ( userType.intValue() == RolesConstants.TIPO_SEGURANCA ) + { + result = getAnalisesActuaisSeguranca( userLogged.getEstabelecimento_id(), userLogged.getResponsavel_loja() ); + } + else if ( userType.intValue() == RolesConstants.TIPO_RECURSOS_HUMANOS ) + { + result = getAnalisesActuaisRH( userLogged.getEstabelecimento_id(), userLogged.getResponsavel_loja() ); + } + else if ( userType.intValue() == RolesConstants.TIPO_HIGIENE_SEGURANCA ) + { + result = getAnalisesActuaisHS(); + } + + return result; + } + + private Virtual2DArray getAnalisesActuaisSeguranca( Integer estabelecimento_id, Boolean responsavel_loja ) + throws Exception + { + Expression whereExpression = new Field( AnalisesAcidentesData.ESTADO_FULL ).isEqual( AppConstants.ESTADO_SEG ).or( + new Field( AnalisesAcidentesData.AVERIGUACAO_POSTERIOR_FULL ).isEqual( "y" ).and( + new Field( AnalisesAcidentesData.AVERIGUACAO_OBS_FULL ).isEqual( "" ) + ) + ); + if ( responsavel_loja ) + { + whereExpression = whereExpression.or( + new Field( AnalisesAcidentesData.ESTADO_FULL ).isEqual( AppConstants.ESTADO_ASSINATURA_SEG ) + ); + } Select query = new Select2( - new String[] {}, - new Integer[] {}, - new Expression[] {}, - new String[] {}, + new String[] { AnalisesAcidentesData.TABLENAME, AcidentadosData.TABLENAME }, + new Integer[] { Select2.JOIN_INNER }, + new Expression[] { + new Field( AnalisesAcidentesData.ACIDENTADO_ID_FULL ).isEqual( new Field( AcidentadosData.ID_FULL ) ) + }, + new String[] { + AnalisesAcidentesData.ID_FULL, AnalisesAcidentesData.DATA_ACIDENTE_FULL, AnalisesAcidentesData.DATA_INICIO_PROCESSO_FULL, + AnalisesAcidentesData.ANALISE_NR_FULL, AcidentadosData.NUMERO_MECANOGRAFICO_FULL, AcidentadosData.NOME_FULL, + AnalisesAcidentesData.ESTADO_FULL + }, + new Field( AnalisesAcidentesData.APAGADA_FULL ).isEqual( "n" ).and( + new Field( AnalisesAcidentesData.ESTABELECIMENTO_ID_FULL ).isEqual( estabelecimento_id ).and( + whereExpression + ) + ), + new String[] { AnalisesAcidentesData.ANALISE_NR_FULL }, null, null, + null + ); + System.out.println( "\n" + query.toString() ); + + return EXECUTER.executeQuery( query ); + } + + private Virtual2DArray getAnalisesActuaisRH( Integer estabelecimento_id, Boolean responsavel_loja ) + throws Exception + { + Expression whereExpression = new Field( AnalisesAcidentesData.ESTADO_FULL ).isEqual( AppConstants.ESTADO_RH1 ).or( + new Field( AnalisesAcidentesData.ESTADO_FULL ).isEqual( AppConstants.ESTADO_RH2 ) + ); + if ( responsavel_loja ) + { + whereExpression = whereExpression.or( + new Field( AnalisesAcidentesData.ESTADO_FULL ).isEqual( AppConstants.ESTADO_ASSINATURA_RH ) + ); + } + + Select query = new Select2( + new String[] { AnalisesAcidentesData.TABLENAME, AcidentadosData.TABLENAME }, + new Integer[] { Select2.JOIN_INNER }, + new Expression[] { + new Field( AnalisesAcidentesData.ACIDENTADO_ID_FULL ).isEqual( new Field( AcidentadosData.ID_FULL ) ) + }, + new String[] { + AnalisesAcidentesData.ID_FULL, AnalisesAcidentesData.DATA_ACIDENTE_FULL, AnalisesAcidentesData.DATA_INICIO_PROCESSO_FULL, + AnalisesAcidentesData.ANALISE_NR_FULL, AcidentadosData.NUMERO_MECANOGRAFICO_FULL, AcidentadosData.NOME_FULL, + AnalisesAcidentesData.ESTADO_FULL + }, + new Field( AnalisesAcidentesData.APAGADA_FULL ).isEqual( "n" ).and( + new Field( AnalisesAcidentesData.ESTABELECIMENTO_ID_FULL ).isEqual( estabelecimento_id ).and( + whereExpression + ) + ), + new String[] { AnalisesAcidentesData.ANALISE_NR_FULL }, null, null, null ); - result = EXECUTER.executeQuery( query ); + System.out.println( "\n" + query.toString() ); - return result; + return EXECUTER.executeQuery( query ); } - /* Seguranca */ - /* - responsabel_loja = 'y' - SELECT * - FROM analises_acidentes - WHERE - ( estado = Global.ESTADO_SEG OR (averiguacao_posterior = 'y' AND averiguacao_obs = '') OR estado = Global.ESTADO_ASSINATURA_SEG ) - AND estabelecimento_id = estabelecimento_id - AND apagada = 'n' - ORDER BY analise_nr - responsabel_loja = 'n' - SELECT * - FROM analises_acidentes - WHERE - ( estado = Global.ESTADO_SEG OR (averiguacao_posterior = 'y' AND averiguacao_obs = '') ) - AND estabelecimento_id = estabelecimento_id - AND apagada = 'n' - ORDER BY analise_nr - */ + private Virtual2DArray getAnalisesActuaisHS() + throws Exception + { + Select query = new Select2( + new String[] { AnalisesAcidentesData.TABLENAME, AcidentadosData.TABLENAME }, + new Integer[] { Select2.JOIN_INNER }, + new Expression[] { + new Field( AnalisesAcidentesData.ACIDENTADO_ID_FULL ).isEqual( new Field( AcidentadosData.ID_FULL ) ) + }, + new String[] { + AnalisesAcidentesData.ID_FULL, AnalisesAcidentesData.DATA_ACIDENTE_FULL, AnalisesAcidentesData.DATA_INICIO_PROCESSO_FULL, + AnalisesAcidentesData.ANALISE_NR_FULL, AcidentadosData.NUMERO_MECANOGRAFICO_FULL, AcidentadosData.NOME_FULL, + AnalisesAcidentesData.ESTADO_FULL + }, + new Field( AnalisesAcidentesData.APAGADA_FULL ).isEqual( "n" ).and( + new Field( AnalisesAcidentesData.ESTADO_FULL ).isEqual( AppConstants.ESTADO_HS ).or( + new Field( AnalisesAcidentesData.ESTADO_FULL ).isEqual( AppConstants.ESTADO_FECHAR ).or( + new Field( AnalisesAcidentesData.ESTADO_FULL ).isEqual( AppConstants.ESTADO_CONSOLIDACAO ) + ) + ) + ), + new String[] { AnalisesAcidentesData.ANALISE_NR_FULL }, + null, + null, + null + ); + System.out.println( "\n" + query.toString() ); + + return EXECUTER.executeQuery( query ); + } - - /* RH */ - /* - responsabel_loja = 'y' - SELECT * - FROM analises_acidentes - WHERE - ( estado = Global.ESTADO_RH1 OR estado = Global.ESTADO_RH2 OR estado = Global.ESTADO_ASSINATURA_RH ) - AND estabelecimento_id = estabelecimento_id - AND apagada = 'n' - ORDER BY analise_nr - responsavel_loja = 'n' - SELECT * - FROM analises_acidentes - WHERE - ( estado = Global.ESTADO_RH1 OR estado = Global.ESTADO_RH2 ) - AND estabelecimento_id = estabelecimento_id - AND apagada = 'n' - ORDER BY analise_nr - */ - - - /* HS */ - /* - SELECT * - FROM analises_acidentes - WHERE - ( estado = Global.ESTADO_HS OR estado = Global.ESTADO_FECHAR OR estado = Global.ESTADO_CONSOLIDACAO ) - AND apagada = 'n' - ORDER BY analise_nr - */ + public String getFase( int estado ) + { + String fase = null; + + if ( estado == AppConstants.ESTADO_SEG ) + { + fase = "FASE 1 - SEG - ABERTURA"; + } + else if ( estado == AppConstants.ESTADO_RH1 ) + { + fase = "FASE 2 - RH - ACOMPANHAMENTO"; + } + else if ( estado == AppConstants.ESTADO_HS ) + { + fase = "FASE 3 - SIPRP - RECOMENDA\u00C7\u00D5ES"; + } + else if ( estado == AppConstants.ESTADO_RH2 ) + { + fase = "FASE 4 - RH - MEDIDAS + LES\u00C3O"; + } + else if ( estado == AppConstants.ESTADO_CONSOLIDACAO ) + { + fase = "FASE 5 - SIPRP - CONSOLIDA\u00C7\u00C3O"; + } + else if ( estado == AppConstants.ESTADO_ASSINATURA_SEG ) + { + fase = "FASE 6 - SEG - VERIFICA\u00C7\u00C3O SEG."; + } + else if ( estado == AppConstants.ESTADO_ASSINATURA_RH ) + { + fase = "FASE 7 - RH - VERIFICA\u00C7\u00C3O RH"; + } + else if ( estado == AppConstants.ESTADO_FECHAR ) + { + fase = "FASE 8 - SIPRP - CONCLUS\u00C3O"; + } + + return fase; + } + } diff --git a/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/login/LoginDataProvider.java b/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/login/LoginDataProvider.java index bf97136c..f5260079 100644 --- a/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/login/LoginDataProvider.java +++ b/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/login/LoginDataProvider.java @@ -59,6 +59,8 @@ public class LoginDataProvider user.setData_password( usersData.getData_password() ); user.setPrimeiro_login( usersData.getPrimeiro_login().equals( "y" ) ); user.setTipo_utilizador( usersData.getTipo() ); + user.setResponsavel_loja( usersData.getResponsavel_loja().equals( "y" ) ); + user.setEstabelecimento_id( usersData.getEstabelecimento_id() ); } return user; @@ -82,7 +84,7 @@ public class LoginDataProvider new String[] { UtilizadoresData.ID_FULL, UtilizadoresData.LOGIN_FULL, UtilizadoresData.EMAIL_FULL, UtilizadoresData.TIPO_FULL, UtilizadoresData.NOME_FULL, UtilizadoresData.PRIMEIRO_LOGIN_FULL, - UtilizadoresData.DATA_PASSWORD_FULL + UtilizadoresData.DATA_PASSWORD_FULL, UtilizadoresData.RESPONSAVEL_LOJA_FULL, UtilizadoresData.ESTABELECIMENTO_ID_FULL }, new Field( UtilizadoresData.LOGIN_FULL ).isEqual( username ).and( new Field( UtilizadoresData.PASSWORD_FULL ).isEqual( password ) diff --git a/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/login/LoginLogic.java b/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/login/LoginLogic.java index 9d4ab397..f0775f61 100644 --- a/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/login/LoginLogic.java +++ b/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/login/LoginLogic.java @@ -42,6 +42,8 @@ public class LoginLogic implements LoginService rUser.setNome( ( String ) users.get( 0, 4 ) ); rUser.setPrimeiro_login( (( String ) users.get( 0, 5 )).equals( "y" ) ); rUser.setData_password( ( Date ) users.get( 0, 6 ) ); + rUser.setResponsavel_loja( (( String ) users.get( 0, 7 )).equals( "y" ) ); + rUser.setEstabelecimento_id( ( Integer ) users.get( 0, 8 ) ); } } catch ( Exception e )