From 3048c6338a8e1c9701e35f3c3ffcfc0a6c73c83a Mon Sep 17 00:00:00 2001 From: Diogo Neves Date: Tue, 15 Dec 2009 16:34:41 +0000 Subject: [PATCH] git-svn-id: https://svn.coded.pt/svn/SIPRP@1130 bb69d46d-e84e-40c8-a05a-06db0d633741 --- .../AnaliseAcidentesTrabalhoLogic.java | 98 +++++++++-- .../actual/ActualTableDataProvider.java | 35 +--- .../SeguimentoTableDataProvider.java | 165 +++++++++++++++++- 3 files changed, 249 insertions(+), 49 deletions(-) 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 349299f8..d30ed7af 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 @@ -5,6 +5,7 @@ import java.util.Vector; import com.evolute.siprp.client.panels.apps.AnaliseAcidentesTrabalho.AnaliseAcidentesTrabalhoService; import com.evolute.siprp.client.panels.utils.AppConstants; +import com.evolute.siprp.client.panels.utils.permissoes.RolesConstants; import com.evolute.siprp.client.vo.ActualTableRow; import com.evolute.siprp.client.vo.Utilizador; import com.evolute.siprp.server.logic.AnaliseAcidentesTrabalho.actual.ActualTableDataProvider; @@ -80,9 +81,88 @@ public class AnaliseAcidentesTrabalhoLogic implements AnaliseAcidentesTrabalhoSe try { - Virtual2DArray array = actualProvider.getAnalisesActuais( userLogged ); - result = new Vector< ActualTableRow >(); + int userType = userLogged.getTipo_utilizador().intValue(); + Virtual2DArray array = null; + + if ( userType == RolesConstants.TIPO_SEGURANCA ) + { + array = actualProvider.getAnalisesActuaisSeguranca( userLogged.getEstabelecimento_id(), userLogged.getResponsavel_loja() ); + } + else if ( userType == RolesConstants.TIPO_RECURSOS_HUMANOS ) + { + array = actualProvider.getAnalisesActuaisRH( userLogged.getEstabelecimento_id(), userLogged.getResponsavel_loja() ); + } + else if ( userType == RolesConstants.TIPO_HIGIENE_SEGURANCA ) + { + array = actualProvider.getAnalisesActuaisHS(); + } + result = fillVector( array ); + } + catch ( Exception e ) + { + e.printStackTrace(); + } + + return result; + } + + + @Override + public Vector< ActualTableRow > getSeguimentoTableData( Utilizador userLogged ) + { + Vector< ActualTableRow > result = null; + + try + { + int userType = userLogged.getTipo_utilizador().intValue(); + Virtual2DArray array = null; + + if ( userType == RolesConstants.TIPO_DIRECTOR_GERAL_RECURSOS_HUMANOS + || userType == RolesConstants.TIPO_DIRECTOR_SIPRP ) + { + array = seguimentoProvider.getAnalisesSeguimento_DirGeralRH(); + } + else if ( userType == RolesConstants.TIPO_GESTOR ) + { + if ( userLogged.getEstabelecimento_id() == null ) + { + array = seguimentoProvider.getAnalisesSeguimento_DirGeralRH(); + } + else + { + array = seguimentoProvider.getAnalisesSeguimentoByEstabelecimentoID( userLogged.getEstabelecimento_id() ); + } + } + else if ( userType == RolesConstants.TIPO_HIGIENE_SEGURANCA ) + { + array = seguimentoProvider.getAnalisesSeguimento_HS(); + } + + result = fillVector( array ); + } + catch ( Exception e ) + { + e.printStackTrace(); + } + + return result; + } + + + /** + * fills vector with 'actual' or 'seguimento' data ... + * + * @param array + * @return + */ + private Vector< ActualTableRow > fillVector( Virtual2DArray array ) + { + Vector< ActualTableRow > result = null; + + if ( array != null ) + { + result = new Vector< ActualTableRow >(); for ( int i = 0; i < array.columnLength(); i++ ) { Integer anaID = ( Integer ) array.get( i, 0 ); @@ -106,20 +186,6 @@ public class AnaliseAcidentesTrabalhoLogic implements AnaliseAcidentesTrabalhoSe result.add( row ); } } - catch ( Exception e ) - { - e.printStackTrace(); - } - - return result; - } - - @Override - public Vector< ActualTableRow > getSeguimentoTableData( Utilizador userLogged ) - { - Vector< ActualTableRow > result = null; - - return result; } 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 66a8b725..aa406c3c 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,8 +1,6 @@ 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; @@ -43,35 +41,8 @@ public class ActualTableDataProvider } - /** - * - * @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 ) + public Virtual2DArray getAnalisesActuaisSeguranca( Integer estabelecimento_id, Boolean responsavel_loja ) throws Exception { Expression whereExpression = new Field( AnalisesAcidentesData.ESTADO_FULL ).isEqual( AppConstants.ESTADO_SEG ).or( @@ -111,7 +82,7 @@ public class ActualTableDataProvider return EXECUTER.executeQuery( query ); } - private Virtual2DArray getAnalisesActuaisRH( Integer estabelecimento_id, Boolean responsavel_loja ) + public Virtual2DArray getAnalisesActuaisRH( Integer estabelecimento_id, Boolean responsavel_loja ) throws Exception { Expression whereExpression = new Field( AnalisesAcidentesData.ESTADO_FULL ).isEqual( AppConstants.ESTADO_RH1 ).or( @@ -150,7 +121,7 @@ public class ActualTableDataProvider return EXECUTER.executeQuery( query ); } - private Virtual2DArray getAnalisesActuaisHS() + public Virtual2DArray getAnalisesActuaisHS() throws Exception { Select query = new Select2( diff --git a/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/AnaliseAcidentesTrabalho/seguimento/SeguimentoTableDataProvider.java b/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/AnaliseAcidentesTrabalho/seguimento/SeguimentoTableDataProvider.java index 7cfdffbf..feee4e4d 100644 --- a/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/AnaliseAcidentesTrabalho/seguimento/SeguimentoTableDataProvider.java +++ b/trunk/GestaoSHST/src/com/evolute/siprp/server/logic/AnaliseAcidentesTrabalho/seguimento/SeguimentoTableDataProvider.java @@ -1,11 +1,18 @@ package com.evolute.siprp.server.logic.AnaliseAcidentesTrabalho.seguimento; +import com.evolute.siprp.client.panels.utils.AppConstants; import com.evolute.siprp.server.db.InitDB; -import com.evolute.siprp.server.logic.AnaliseAcidentesTrabalho.actual.ActualTableDataProvider; +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; public class SeguimentoTableDataProvider { @@ -35,4 +42,160 @@ public class SeguimentoTableDataProvider } + /** + * director geral RH e director siprp + * + * @return + * @throws Exception + */ + public Virtual2DArray getAnalisesSeguimento_DirGeralRH() 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.ESTADO_FULL ).isLess( AppConstants.ESTADO_CONCLUIDO ).and( + new Field( AnalisesAcidentesData.APAGADA_FULL ).isEqual( "n" ) + ), + new String[] { AnalisesAcidentesData.ANALISE_NR_FULL }, + null, + null, + null + ); + + return EXECUTER.executeQuery( query ); + } + + public Virtual2DArray getAnalisesSeguimentoByEstabelecimentoID( Integer estabelecimento_id ) 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.ESTADO_FULL ).isLess( AppConstants.ESTADO_CONCLUIDO ).and( + new Field( AnalisesAcidentesData.APAGADA_FULL ).isEqual( "n" ).and( + new Field( AnalisesAcidentesData.ESTABELECIMENTO_ID_FULL ).isEqual( estabelecimento_id ) + ) + ), + new String[] { AnalisesAcidentesData.ANALISE_NR_FULL }, + null, + null, + null + ); + + return EXECUTER.executeQuery( query ); + } + + public Virtual2DArray getAnalisesSeguimento_HS() throws Exception + { + /* + SELECT * + FROM analises_acidentes + WHERE + (estado < Global.ESTADO_HS OR (estado > Global.ESTADO_HS AND estado < Global.ESTADO_CONSOLIDACAO ) + OR (estado > Global.ESTADO_CONSOLIDACAO AND estado < Global.ESTADO_FECHAR )) + AND apagada = 'n' + ORDER BY analise_nr + */ + + 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 ).isLess( AppConstants.ESTADO_HS ).or( + new Field( AnalisesAcidentesData.ESTADO_FULL ).isGreater( AppConstants.ESTADO_HS ).and( + new Field( AnalisesAcidentesData.ESTADO_FULL ).isLess( AppConstants.ESTADO_CONSOLIDACAO ) + ) + ).or( + new Field( AnalisesAcidentesData.ESTADO_FULL ).isGreater( AppConstants.ESTADO_CONSOLIDACAO ).and( + new Field( AnalisesAcidentesData.ESTADO_FULL ).isLess( AppConstants.ESTADO_FECHAR ) + ) + ) + ), + new String[] { AnalisesAcidentesData.ANALISE_NR_FULL }, + null, + null, + null + ); + System.out.println( "\n" + query.toString() ); + + return EXECUTER.executeQuery( query ); + } + +// public Virtual2DArray getAnalisesSeguimento_Medico( Integer estabelecimento_id ) throws Exception +// { +// /* +// SELECT * +// FROM analises_acidentes +// WHERE +// estado < 5 OR (estado = 6 AND estado_assinatura <> 2) +// OR (estado = 6 AND estado_assinatura = 2 AND ass_med = 'y') +// OR (estado > 6 AND estado < 9) +// AND estabelecimento_id = estabelecimento_id +// AND apagada = 'n' +// ORDER BY analise_nr +// */ +// +// 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( +// new Field( AnalisesAcidentesData.ESTADO_FULL ).isLess( 5 ).or( +// new Field( AnalisesAcidentesData.ESTADO_FULL ).isEqual( 6 ).and( +// new Field( AnalisesAcidentesData.ESTADO_ASSINATURA_FULL ).isDifferent( 2 ) +// ) +// ).or( +// new Field( AnalisesAcidentesData.ESTADO_FULL ).isEqual( 6 ).and( +// new Field( AnalisesAcidentesData.ESTADO_ASSINATURA_FULL ).isEqual( 2 ).and( +// new Field( AnalisesAcidentesData.ASS_MED_FULL ).isEqual( "y" ) +// ) +// ) +// ).or( +// new Field( AnalisesAcidentesData.ESTADO_FULL ).isGreater( 6 ).and( +// new Field( AnalisesAcidentesData.ESTADO_FULL ).isLess( 9 ) +// ) +// ) +// ) +// ), +// new String[] { AnalisesAcidentesData.ANALISE_NR_FULL }, +// null, +// null, +// null +// ); +// System.out.println( "\n" + query.toString() ); +// +// return EXECUTER.executeQuery( query ); +// } + }