diff --git a/trunk/AnaliseAcidentesTrabalho/nbproject/navigation.NavData b/trunk/AnaliseAcidentesTrabalho/nbproject/navigation.NavData index e4acdba4..73a9c770 100644 --- a/trunk/AnaliseAcidentesTrabalho/nbproject/navigation.NavData +++ b/trunk/AnaliseAcidentesTrabalho/nbproject/navigation.NavData @@ -6,24 +6,24 @@ - + - + - + - + diff --git a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/AnaliseAcidenteTrabalho.java b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/AnaliseAcidenteTrabalho.java index 391b4987..37cd04c5 100644 --- a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/AnaliseAcidenteTrabalho.java +++ b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/AnaliseAcidenteTrabalho.java @@ -13754,33 +13754,27 @@ public class AnaliseAcidenteTrabalho extends AbstractPageBean { return null; } - public String lnkAnalisesAcidente_action() { - // TODO: Replace with your code -// savePageState(); -// getSessionBean1().setNavFrom("AnaliseAcidenteTrabalho"); -// getSessionBean1().setModoEdicaoUtilizador("edit"); -// return "user"; - getSessionBean1().setIeBug(true); - ServletContext theApplicationsServletContext = - (ServletContext) this.getExternalContext().getContext(); -// String imageFileFolderTmp = theApplicationsServletContext.getRealPath(Global.IMAGE_FOLDER + "/tmp" + getSessionBean1().getCurrentUser().getLogin()); + public String lnkAnalisesAcidente_action() + { + getSessionBean1().setIeBug( true ); + ServletContext theApplicationsServletContext = ( ServletContext ) this.getExternalContext().getContext(); + String imageFileFolderTmp = Global.IMAGE_FOLDER + "/tmp" + getSessionBean1().getCurrentUser().getLogin(); File ftmp = new File(imageFileFolderTmp); if( ftmp.exists() ) { File files[] = ftmp.listFiles(); - - for(int i=0;i searchProperties = getFormFieldValues(); - List< EstatisticaProcessoBean > listEstatisticas = new LinkedList< EstatisticaProcessoBean >(); - try - { - EstatisticasDataProvider edp = EstatisticasDataProvider.getInstance(); - listEstatisticas = edp.getEstatisticas( searchProperties ); - } - catch ( Exception e ) - { - ErrorLogger.logException( e ); - } + listEstatisticas = new LinkedList< EstatisticaProcessoBean >(); + try + { + EstatisticasDataProvider edp = EstatisticasDataProvider.getInstance(); + listEstatisticas = edp.getEstatisticas( searchProperties ); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } setListEstatisticas( listEstatisticas ); } @@ -697,8 +724,19 @@ public class EstatisticasProcesso extends AbstractPageBean Date dataOcorrencia = ( Date ) searchProperties.get( EstatisticasConstants.KEY_DATA_OCORRENCIA ); String horaOcorrencia = ( String ) searchProperties.get( EstatisticasConstants.KEY_HORA_OCORRENCIA ); String horasTrabalhadas = ( String ) searchProperties.get( EstatisticasConstants.KEY_HORAS_TRABALHADAS ); - String departamento = ( String ) searchProperties.get( EstatisticasConstants.KEY_DEPARTAMENTO ); - String seccao = ( String ) searchProperties.get( EstatisticasConstants.KEY_SECCAO ); +// String departamento = ( String ) searchProperties.get( EstatisticasConstants.KEY_DEPARTAMENTO ); + Integer seccaoID = ( Integer ) searchProperties.get( EstatisticasConstants.KEY_SECCAO ); + String seccao = null; + try + { + SeccoesData seccaoData = EstatisticasDataProvider.getInstance().loadSeccaoByID( seccaoID ); + seccao = seccaoData == null ? null : seccaoData.getDescricao(); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + Integer causas = ( Integer ) searchProperties.get( EstatisticasConstants.KEY_CAUSAS_ACIDENTE ); String turno = ( String ) searchProperties.get( EstatisticasConstants.KEY_TURNO_TRABALHO ); Boolean formacao_shst = ( Boolean ) searchProperties.get( EstatisticasConstants.KEY_FORMACAO_SHST ); @@ -759,13 +797,13 @@ public class EstatisticasProcesso extends AbstractPageBean columnValue.setCellValue( horasTrabalhadas ); row++; - keyName = EstatisticasConstants.KEY_NAMES[ row ]; - currentRow = getRow( sheet, row ); - columnLabel = getCell( currentRow, 0 ); - columnLabel.setCellValue( keyName ); - columnValue = getCell( currentRow, 1 ); - columnValue.setCellValue( departamento ); - row++; +// keyName = EstatisticasConstants.KEY_NAMES[ row ]; +// currentRow = getRow( sheet, row ); +// columnLabel = getCell( currentRow, 0 ); +// columnLabel.setCellValue( keyName ); +// columnValue = getCell( currentRow, 1 ); +// columnValue.setCellValue( departamento ); +// row++; keyName = EstatisticasConstants.KEY_NAMES[ row ]; currentRow = getRow( sheet, row ); diff --git a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/ViewAnaliseAcidenteTrabalho.java b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/ViewAnaliseAcidenteTrabalho.java index a45c2403..69a9fcf3 100644 --- a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/ViewAnaliseAcidenteTrabalho.java +++ b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/ViewAnaliseAcidenteTrabalho.java @@ -4475,12 +4475,8 @@ public class ViewAnaliseAcidenteTrabalho extends AbstractPageBean { } - public String lnkAnalisesAcidente_action() { - // TODO: Replace with your code - -// getSessionBean1().setNavFrom("ViewAnaliseAcidenteTrabalho"); -// getSessionBean1().setModoEdicaoUtilizador("edit"); -// return "user"; + public String lnkAnalisesAcidente_action() + { Integer tipo = getSessionBean1().getCurrentUser().getTipo(); switch(tipo.intValue()) @@ -4535,10 +4531,8 @@ public class ViewAnaliseAcidenteTrabalho extends AbstractPageBean { // { // return "form_gestor"; // } - - - return null; + return null; } public String lnkNewUser_action() { diff --git a/trunk/AnaliseAcidentesTrabalho/src/java/db/EstatisticasConstants.java b/trunk/AnaliseAcidentesTrabalho/src/java/db/EstatisticasConstants.java index 9c7acbb7..25244279 100644 --- a/trunk/AnaliseAcidentesTrabalho/src/java/db/EstatisticasConstants.java +++ b/trunk/AnaliseAcidentesTrabalho/src/java/db/EstatisticasConstants.java @@ -13,7 +13,7 @@ public interface EstatisticasConstants { public static final String[] KEY_NAMES = new String[] { "POR", "Nome", "Ano Ocorrência", "Data Ocorrência", "Hora Ocorrência", "Horas Trabalhadas no Turno", - "Departamento", "Secção", "Causas do Acidente", "Turno de Trabalho", "Formação SHST" + /*"Departamento", */"Secção", "Causas do Acidente", "Turno de Trabalho", "Formação SHST" //TODO: falta os 2 ultimos }; @@ -25,8 +25,9 @@ public interface EstatisticasConstants public static final String KEY_HORA_OCORRENCIA = "analises_acidentes.hora_acidente"; public static final String KEY_HORAS_TRABALHADAS = "analises_acidentes.horas_turno"; - public static final String KEY_DEPARTAMENTO = "departamentos.descricao"; - public static final String KEY_SECCAO = "seccoes.descricao"; +// public static final String KEY_DEPARTAMENTO = "departamentos.descricao"; + public static final String KEY_SECCAO = "analises_acidentes.seccao_id"; + public static final String KEY_CAUSAS_ACIDENTE = "analises_acidentes.causas"; public static final String KEY_TURNO_TRABALHO = "acidentados.turno"; diff --git a/trunk/AnaliseAcidentesTrabalho/src/java/db/providers/EstatisticasDataProvider.java b/trunk/AnaliseAcidentesTrabalho/src/java/db/providers/EstatisticasDataProvider.java index c7828636..3f68084c 100644 --- a/trunk/AnaliseAcidentesTrabalho/src/java/db/providers/EstatisticasDataProvider.java +++ b/trunk/AnaliseAcidentesTrabalho/src/java/db/providers/EstatisticasDataProvider.java @@ -11,12 +11,11 @@ import com.evolute.utils.arrays.Virtual2DArray; import com.evolute.utils.error.ErrorLogger; import com.evolute.utils.sql.Expression; import com.evolute.utils.sql.Field; +import com.evolute.utils.sql.Select; import com.evolute.utils.sql.Select2; import com.sun.rave.web.ui.model.Option; -import db.data.siprp.outer.AnalisesAcidentesData; import db.data.siprp.outer.CausasData; -import java.sql.ResultSet; -import java.sql.Statement; +import db.data.siprp.outer.SeccoesData; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; @@ -67,8 +66,8 @@ public class EstatisticasDataProvider extends GenericDataProvider Date dataOcorrencia = ( Date ) searchProperties.get( EstatisticasConstants.KEY_DATA_OCORRENCIA ); String horaOcorrencia = ( String ) searchProperties.get( EstatisticasConstants.KEY_HORA_OCORRENCIA ); String horasTrabalhadas = ( String ) searchProperties.get( EstatisticasConstants.KEY_HORAS_TRABALHADAS ); - String departamento = ( String ) searchProperties.get( EstatisticasConstants.KEY_DEPARTAMENTO ); - String seccao = ( String ) searchProperties.get( EstatisticasConstants.KEY_SECCAO ); +// String departamento = ( String ) searchProperties.get( EstatisticasConstants.KEY_DEPARTAMENTO ); + Integer seccaoID = ( Integer ) searchProperties.get( EstatisticasConstants.KEY_SECCAO ); Integer causas = ( Integer ) searchProperties.get( EstatisticasConstants.KEY_CAUSAS_ACIDENTE ); String turno = ( String ) searchProperties.get( EstatisticasConstants.KEY_TURNO_TRABALHO ); Boolean formacao_shst = ( Boolean ) searchProperties.get( EstatisticasConstants.KEY_FORMACAO_SHST ); @@ -84,17 +83,11 @@ public class EstatisticasDataProvider extends GenericDataProvider tableNames += ", acidentados"; joinConditions += " analises_acidentes.acidentado_id = acidentados.id "; } - if ( departamento != null ) - { - tableNames += ", departamentos"; - joinConditions += ( "".equals( joinConditions ) ? "" : " AND " ) + " analises_acidentes.departamento_id = departamentos.id "; - } - if ( seccao != null ) - { - tableNames += ", seccoes"; - joinConditions += ( "".equals( joinConditions ) ? "" : " AND " ) + " analises_acidentes.seccao_id = seccoes.id "; - } - +// if ( departamento != null ) +// { +// tableNames += ", departamentos"; +// joinConditions += ( "".equals( joinConditions ) ? "" : " AND " ) + " analises_acidentes.departamento_id = departamentos.id "; +// } if ( por != null ) { @@ -155,19 +148,24 @@ public class EstatisticasDataProvider extends GenericDataProvider { whereConditions += " AND " + EstatisticasConstants.KEY_CAUSAS_ACIDENTE + " = " + causas + " "; } - if ( departamento != null ) - { - departamento = departamento.replaceAll( " ", "%" ); - whereConditions += " AND " + EstatisticasConstants.KEY_DEPARTAMENTO + " ILIKE '%" + departamento + "%' "; - } - if ( seccao != null ) +// if ( departamento != null ) +// { +// departamento = departamento.replaceAll( " ", "%" ); +// whereConditions += " AND " + EstatisticasConstants.KEY_DEPARTAMENTO + " ILIKE '%" + departamento + "%' "; +// } + if ( seccaoID != null ) { - seccao = seccao.replaceAll( " ", "%" ); - whereConditions += " AND " + EstatisticasConstants.KEY_SECCAO + " ILIKE '%" + seccao + "%' "; + whereConditions += " AND " + EstatisticasConstants.KEY_SECCAO + " = " + seccaoID + " "; } if ( formacao_shst != null ) { - whereConditions += " AND " + EstatisticasConstants.KEY_FORMACAO_SHST + " = '" + (formacao_shst ? "t" : "f") + "' "; + /** + * opcoes possiveis : 'y', 'n', 't' ( AnaliseAcidentesTrabalho.java ) + * 'y' -> if ( yes selected ) + * 'n' -> if ( ! yes selected ) && ( no selected ) + * 't' -> else + */ + whereConditions += " AND " + EstatisticasConstants.KEY_FORMACAO_SHST + " = '" + ( formacao_shst ? "y" : "n" ) + "' "; } @@ -192,53 +190,46 @@ public class EstatisticasDataProvider extends GenericDataProvider private List< EstatisticaProcessoBean > getEstatisticasForSQL( String sql ) throws Exception { -// System.out.println( "\nSQL -> " + sql ); + System.out.println( "\nEstatisticasQuery : " + sql + "\n" ); + List< EstatisticaProcessoBean > stats = new LinkedList< EstatisticaProcessoBean >(); + AnalisesDataProvider adp = AnalisesDataProvider.getInstance(); - Statement st = createStatement(); - ResultSet rs = st.executeQuery( sql ); - -// AnalisesDataProvider adp = new AnalisesDataProvider(); - AnalisesDataProvider adp = AnalisesDataProvider.getInstance(); - -// System.out.println( "\nListing ..." ); - while ( rs.next() ) + Virtual2DArray array = getExecuter().executeQuery( new Select( sql ) ); + if ( array != null ) { - Integer estado = rs.getInt( "estado" ); - Long count = rs.getLong( "count" ); - - String fase = adp.getFase( estado ); - -// System.out.println( "\tEstado : " + estado + " => " + fase + " : " + count ); - - if ( fase != null ) + for ( int i = 0; i < array.columnLength(); i++ ) { - EstatisticaProcessoBean bean = new EstatisticaProcessoBean(); - bean.setEstado( estado ); - bean.setFase( fase ); - bean.setCount( count ); + Integer estado = array.get( i, 0 ); + Long count = array.get( i, 1 ); + String fase = adp.getFase( estado ); - stats.add( bean ); + if ( fase != null ) + { + EstatisticaProcessoBean bean = new EstatisticaProcessoBean(); + bean.setEstado( estado ); + bean.setCount( count ); + bean.setFase( fase ); + stats.add( bean ); + } } } -// System.out.println( "Listing DONE." ); - return stats; } public com.sun.rave.web.ui.model.Option[] getSeccoesList( ) throws Exception { com.sun.rave.web.ui.model.Option[] options = null; - Select2 query = new Select2( - new String[] { AnalisesAcidentesData.TABLENAME }, + new String[] { SeccoesData.TABLENAME }, new Integer[] { }, new Expression[] { }, - new String[] { "DISTINCT( " + AnalisesAcidentesData.SECCAO_FULL + " )" }, - new Field( AnalisesAcidentesData.APAGADA_FULL ).isEqual( "n" ).and( new Field( AnalisesAcidentesData.SECCAO_FULL ).isDifferent( null ) ), - new String[] { AnalisesAcidentesData.SECCAO_FULL }, - null, null, null + new String[] { SeccoesData.ID_FULL, SeccoesData.DESCRICAO_FULL }, + new Field( SeccoesData.ACTIVO_FULL ).isEqual( "y" ).and( new Field( SeccoesData.DESCRICAO_FULL ).isDifferent( null ) ), + new String[] { SeccoesData.DESCRICAO_FULL }, + null, null, null ); + Virtual2DArray array = getExecuter().executeQuery( query ); if ( array != null ) { @@ -246,13 +237,20 @@ public class EstatisticasDataProvider extends GenericDataProvider options[ 0 ] = new Option( "", "" ); for ( int i = 0; i < array.columnLength(); i++ ) { - String seccao = array.get( i, 0 ); - options[ (i+1) ] = new Option( seccao, seccao ); + Integer seccaoID = array.get( i, 0 ); + String seccao = array.get( i, 1 ); + + options[ (i+1) ] = new Option( seccaoID, seccao ); } } return options; } + public SeccoesData loadSeccaoByID( Integer seccaoID ) throws Exception + { + return getProvider().load( SeccoesData.class, seccaoID, SeccoesData.ID ); + } + public com.sun.rave.web.ui.model.Option[] getCausasAcidente( ) throws Exception { com.sun.rave.web.ui.model.Option[] options = null; diff --git a/trunk/AnaliseAcidentesTrabalho/web/EstatisticasProcesso.jsp b/trunk/AnaliseAcidentesTrabalho/web/EstatisticasProcesso.jsp index 0f2a451a..de5e86db 100644 --- a/trunk/AnaliseAcidentesTrabalho/web/EstatisticasProcesso.jsp +++ b/trunk/AnaliseAcidentesTrabalho/web/EstatisticasProcesso.jsp @@ -45,6 +45,8 @@ + + @@ -94,9 +96,11 @@ + + @@ -112,6 +116,8 @@ + +