From 7c26aa59b8acabbaf47b82582daadfa225f8035a Mon Sep 17 00:00:00 2001 From: Diogo Neves Date: Wed, 14 Jul 2010 16:36:42 +0000 Subject: [PATCH] git-svn-id: https://svn.coded.pt/svn/SIPRP@1300 bb69d46d-e84e-40c8-a05a-06db0d633741 --- trunk/SIPRPSoft/src/siprp/ORMInitializer.java | 3 + .../providers/MedicinaDataProvider.java | 209 +++++++++++ .../providers/PlanoActuacaoDataProvider.java | 351 ++++++++++++++++++ 3 files changed, 563 insertions(+) create mode 100644 trunk/SIPRPSoft/src/siprp/database/cayenne/providers/MedicinaDataProvider.java create mode 100644 trunk/SIPRPSoft/src/siprp/database/cayenne/providers/PlanoActuacaoDataProvider.java diff --git a/trunk/SIPRPSoft/src/siprp/ORMInitializer.java b/trunk/SIPRPSoft/src/siprp/ORMInitializer.java index 8bae9da6..334afb1a 100644 --- a/trunk/SIPRPSoft/src/siprp/ORMInitializer.java +++ b/trunk/SIPRPSoft/src/siprp/ORMInitializer.java @@ -74,8 +74,11 @@ public class ORMInitializer conn.setPassword( password ); ProviderRegistry.registerDefaultConnection( conn ); ProviderInterface provider = ProviderRegistry.getDefaultProvider( conn ); + + //FIXME : remover pelo menos o JDO ... (daqui e do resto do codigo) Singleton.setInstance( Singleton.DEFAULT_OBJECT_PROVIDER, provider ); Singleton.setInstance( Singleton.DEFAULT_JDO_PROVIDER, provider ); + Singleton.setInstance( Singleton.DEFAULT_EVO_DATA_PROVIDER, provider ); } diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/providers/MedicinaDataProvider.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/providers/MedicinaDataProvider.java new file mode 100644 index 00000000..ef375371 --- /dev/null +++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/providers/MedicinaDataProvider.java @@ -0,0 +1,209 @@ +package siprp.database.cayenne.providers; + +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import siprp.MedicinaConstants; +import siprp.ProcessoConstants; +import siprp.data.outer.EmpresasData; +import siprp.data.outer.ExamesData; +import siprp.data.outer.LembretesTiposData; +import siprp.data.outer.PrestadoresData; +import siprp.data.outer.PrtGruposProtocoloData; +import siprp.data.outer.TrabalhadoresConsultasDatasData; +import siprp.data.outer.TrabalhadoresData; +import siprp.data.outer.TrabalhadoresEcdData; +import siprp.data.outer.TrabalhadoresEcdsDatasData; +import siprp.data.outer.TrabalhadoresProcessoData; +import siprp.database.cayenne.objects.Prestadores; + +import com.evolute.entity.ProviderInterface; +import com.evolute.utils.Singleton; +import com.evolute.utils.dataedition.persistence.Persistent; +import com.evolute.utils.db.DBManager; +import com.evolute.utils.db.Executer; +import com.evolute.utils.error.ErrorLogger; + +public class MedicinaDataProvider +{ + private static MedicinaDataProvider INSTANCE = null; + + private ProviderInterface< Persistent< ? >, Exception > ENTITY_PROVIDER; + private Executer executer; + + private MedicinaDataProvider() throws Exception + { + DBManager manager = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER ); + executer = manager.getSharedExecuter( this ); + ENTITY_PROVIDER = ( ProviderInterface< Persistent< ? >, Exception > ) Singleton.getInstance( Singleton.DEFAULT_EVO_DATA_PROVIDER ); + } + + public static synchronized MedicinaDataProvider getInstance() throws Exception + { + if ( INSTANCE == null ) + { + INSTANCE = new MedicinaDataProvider(); + } + return INSTANCE; + } + + public TrabalhadoresData getTrabalhadorByID( Integer id ) + { + TrabalhadoresData result = null; + try + { + result = ENTITY_PROVIDER.load( TrabalhadoresData.class, id ); + } + catch (Exception e) + { + ErrorLogger.logException( e ); + } + return result; + } + + public TrabalhadoresConsultasDatasData getConsultaMarcacaoByID( Integer id ) + { + TrabalhadoresConsultasDatasData result = null; + try + { + result = ENTITY_PROVIDER.load( TrabalhadoresConsultasDatasData.class, id ); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public ExamesData getExameForExameID( Integer currentFichaExameID ) + { + ExamesData result = null; + try + { + result = ENTITY_PROVIDER.load( ExamesData.class, currentFichaExameID ); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public LembretesTiposData getTipoLembretesCustomizavel() + { + LembretesTiposData result = null; + try + { + result = ENTITY_PROVIDER.load( LembretesTiposData.class, 1 ); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public List< EmpresasData > getAllEmpresas() + { + List< EmpresasData > result = null; + try + { + result = ENTITY_PROVIDER.listLoad( EmpresasData.class, + new Object[] { "y" }, + new String[] { EmpresasData.INACTIVO }, + new String[] { EmpresasData.DESIGNACAO_SOCIAL_PLAIN } ); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public List< PrestadoresData > getAllPrestadores() + { + List< PrestadoresData > result = null; + try + { + result = ENTITY_PROVIDER.listLoad( PrestadoresData.class, + new Object[] { "y" }, new String[] { PrestadoresData.ACTIVO }, + new String[] { PrestadoresData.NOME } ); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public List< PrtGruposProtocoloData > getAllPrtGruposProtocolo() + { + List< PrtGruposProtocoloData > result = null; + try + { + result = ENTITY_PROVIDER.listLoad( PrtGruposProtocoloData.class, + new String[] { PrtGruposProtocoloData.DESCRICAO_PLAIN } ); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public void fecharProcesso( TrabalhadoresProcessoData currentProcesso ) + { + try + { + currentProcesso.setEstado( ProcessoConstants.PROCESSO_FECHADO_CODE ); + currentProcesso.save(); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + } + + + //FIXME : substituir por PrestadoresData.prestadorNulo -> fazer alteracoes aqui + public PrestadoresData getDefaultPrestador() + { + PrestadoresData prestadorNulo = new PrestadoresData(); + prestadorNulo.setNome( "SIPRP" ); + return prestadorNulo; + } + + public Collection< TrabalhadoresEcdData > getPendingExamesForAnalisador( Prestadores currentAnalisador ) + { + Map< TrabalhadoresEcdData, TrabalhadoresEcdData > resultMap = new HashMap< TrabalhadoresEcdData, TrabalhadoresEcdData >(); + try + { + List< TrabalhadoresEcdData > all = ENTITY_PROVIDER.listLoad( TrabalhadoresEcdData.class, + new Object[] { null }, new String[] { TrabalhadoresEcdData.DATA_RECEPCAO }, null ); + for ( TrabalhadoresEcdData ecd : all ) + { + TrabalhadoresEcdsDatasData data = ecd.toTrabalhadores_ecds_datas_id(); + + if ( new Integer( MedicinaConstants.ESTADO_REALIZADO ).equals( data.getEstado() ) ) + { + if ( currentAnalisador.equals( ecd.toAnalisador_id() ) ) + { + resultMap.put( ecd ,ecd ); + } + else if ( Prestadores.prestadorNulo.equals( currentAnalisador ) && ecd.toAnalisador_id() == null ) + { + resultMap.put( ecd, ecd ); + } + } + } + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return resultMap.values(); + } + +} diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/providers/PlanoActuacaoDataProvider.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/providers/PlanoActuacaoDataProvider.java new file mode 100644 index 00000000..398cec38 --- /dev/null +++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/providers/PlanoActuacaoDataProvider.java @@ -0,0 +1,351 @@ +package siprp.database.cayenne.providers; + +import java.util.ArrayList; +import java.util.Date; +import java.util.LinkedList; +import java.util.List; + +import siprp.data.outer.EmailPlanoDeActuacaoData; +import siprp.data.outer.EstabelecimentosData; +import siprp.data.outer.HsEmailEstabelecimentoData; +import siprp.data.outer.HsEquipamentoData; +import siprp.data.outer.HsLegislacaoCategoriaData; +import siprp.data.outer.HsLegislacaoData; +import siprp.data.outer.HsNormalizacaoData; +import siprp.data.outer.HsPostoData; +import siprp.data.outer.HsPostoRiscoData; +import siprp.data.outer.HsRelatorioData; +import siprp.data.outer.HsRelatorioRiscoData; +import siprp.data.outer.HsRelatorioRiscoValorQualitativoData; +import siprp.data.outer.HsRiscoData; +import siprp.data.outer.HsRiscoTemaData; +import siprp.data.outer.MarcacoesEstabelecimentoData; + +import com.evolute.entity.ProviderInterface; +import com.evolute.utils.Singleton; +import com.evolute.utils.arrays.Virtual2DArray; +import com.evolute.utils.dataedition.persistence.Persistent; +import com.evolute.utils.db.DBManager; +import com.evolute.utils.db.Executer; +import com.evolute.utils.error.ErrorLogger; +import com.evolute.utils.sql.Expression; +import com.evolute.utils.sql.Field; +import com.evolute.utils.sql.Select2; + +public class PlanoActuacaoDataProvider +{ + private static PlanoActuacaoDataProvider INSTANCE = null; + + private ProviderInterface< Persistent< ? >, Exception > ENTITY_PROVIDER; + private Executer executer; + + private static final Integer ID_COMPANHIA_HIPERMERCADOS = 32; + + private PlanoActuacaoDataProvider() throws Exception + { + DBManager manager = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER ); + executer = manager.getSharedExecuter( this ); + ENTITY_PROVIDER = ( ProviderInterface< Persistent< ? >, Exception > ) Singleton.getInstance( Singleton.DEFAULT_EVO_DATA_PROVIDER ); + } + + public static synchronized PlanoActuacaoDataProvider getInstance() throws Exception + { + if ( INSTANCE == null ) + { + INSTANCE = new PlanoActuacaoDataProvider(); + } + return INSTANCE; + } + + + public EstabelecimentosData getEstabelecimentoByID( Integer id ) + { + EstabelecimentosData result = null; + try + { + result = ENTITY_PROVIDER.load( EstabelecimentosData.class, id ); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public void addEmailToEstabelecimento( String email, EstabelecimentosData estabelecimento ) + { + try + { + EmailPlanoDeActuacaoData emailObject = new EmailPlanoDeActuacaoData(); + emailObject.setDescription( email ); + emailObject.setToEstabelecimento_id( estabelecimento ); + emailObject.save(); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + } + + public List< HsRiscoTemaData > getAllRiscoTemas() + { + List< HsRiscoTemaData > result = null; + try + { + result = ENTITY_PROVIDER.listLoad( HsRiscoTemaData.class, + new Object[] { null }, new String[] { HsRiscoTemaData.DELETED_DATE }, + new String[] { HsRiscoTemaData.DESCRIPTION } ); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public HsRelatorioData criarRelatorioForVisita( MarcacoesEstabelecimentoData visita ) + { + HsRelatorioData result = null; + try + { + if( visita != null ) + { + result = new HsRelatorioData(); + result.setToMarcacao_id( visita ); + result.setData( new Date() ); + result.save(); + } + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public HsPostoRiscoData createValoresFor( HsRiscoData risco, HsPostoData posto ) + { + HsPostoRiscoData result = null; + try + { + if( risco != null && posto != null ) + { + result = new HsPostoRiscoData(); + result.setToPosto_id( posto ); + result.setToRisco_id( risco ); + result.setIs_plano_actuacao( "n" ); + result.save(); + } + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public List< HsRelatorioRiscoValorQualitativoData > getAllValoresQualitativos() + { + List< HsRelatorioRiscoValorQualitativoData > result = null; + try + { + result = ENTITY_PROVIDER.listLoad( HsRelatorioRiscoValorQualitativoData.class ); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + /** + * Get + * @param dates + * @param estabelecimentoID + * @return + */ + public List< HsRelatorioData > getRelatoriosNotIn( List< Date > dates, Integer estabelecimentoID ) + { + List< HsRelatorioData > result = new LinkedList< HsRelatorioData >(); + dates = dates != null ? dates : new LinkedList< Date >(); + try + { + Expression where = new Field( HsRelatorioData.IS_SUBMETIDO ).isDifferent( null ).and( + new Field( HsRelatorioData.DELETED_DATE ).isEqual( null ) + ); + List< HsRelatorioData > all = ENTITY_PROVIDER.listLoad( HsRelatorioData.class, where, null, null ); + + for( HsRelatorioData relatorio : all ) + { + MarcacoesEstabelecimentoData visita = relatorio.toMarcacao_id(); + if( visita != null ) + { + if ( visita.toEstabelecimento_id() != null && visita.toEstabelecimento_id().toEmpresa_id().getId().equals( ID_COMPANHIA_HIPERMERCADOS ) ) + { + if( estabelecimentoID == null || estabelecimentoID != null && estabelecimentoID.equals( visita.getEstabelecimento_id() ) ) + { + Date dateVisita = visita.getData(); + if( dateVisita != null && !dates.contains( dateVisita ) ) + { + result.add( relatorio ); + } + } + } + } + } + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public List< HsRelatorioData > getRelatoriosNotIn( List< Integer > knownEstabelecimentosIDs ) + { + List< HsRelatorioData > result = new LinkedList< HsRelatorioData >(); + knownEstabelecimentosIDs = knownEstabelecimentosIDs != null ? knownEstabelecimentosIDs : new LinkedList< Integer >(); + + try + { + Expression where = new Field( HsRelatorioData.IS_SUBMETIDO ).isDifferent( null ).and( + new Field( HsRelatorioData.DELETED_DATE ).isEqual( null ) + ); + List< HsRelatorioData > all = ENTITY_PROVIDER.listLoad( HsRelatorioData.class, where, null, null ); + + for( HsRelatorioData relatorio : all ) + { + MarcacoesEstabelecimentoData visita = relatorio.toMarcacao_id(); + if( visita != null ) + { + if( visita.toEstabelecimento_id() != null && visita.toEstabelecimento_id().toEmpresa_id().getId().equals( ID_COMPANHIA_HIPERMERCADOS ) ) + { + Integer estabelecimentoID = visita.toEstabelecimento_id().getId(); + if( ! knownEstabelecimentosIDs.contains( estabelecimentoID ) ) + { + result.add( relatorio ); + } + } + } + } + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public List< HsLegislacaoData > getAllLegislacaoGeral() + { + List< HsLegislacaoData > result = null; + try + { + result = ENTITY_PROVIDER.listLoad( HsLegislacaoData.class, + new Object[] { null, null }, new String[] { HsLegislacaoData.DELETED_DATE, HsLegislacaoData.CATEGORIA_ID }, + new String[] { HsLegislacaoData.DESCRIPTION } ); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public List< HsLegislacaoCategoriaData > getAllLegislacaoCategorias() + { + List< HsLegislacaoCategoriaData > result = null; + try + { + result = ENTITY_PROVIDER.listLoad( HsLegislacaoCategoriaData.class, + new Object[] { null }, new String[] { HsLegislacaoCategoriaData.DELETED_DATE }, + new String[] { HsLegislacaoCategoriaData.DESCRIPTION } ); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public List< HsNormalizacaoData > getNormalizacao( boolean portuguesa ) + { + List< HsNormalizacaoData > result = null; + try + { + result = ENTITY_PROVIDER.listLoad( HsNormalizacaoData.class, + new Object[] { null, portuguesa }, new String[] { HsNormalizacaoData.DELETED_DATE, HsNormalizacaoData.PORTUGUESA }, + new String[] {} ); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public List< HsEquipamentoData > getAllEquipamentos() + { + List< HsEquipamentoData > result = null; + try + { + result = ENTITY_PROVIDER.listLoad( HsEquipamentoData.class, + new Object[] { null }, new String[] { HsEquipamentoData.DELETED_DATE }, + new String[] { HsEquipamentoData.TIPO } ); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public List< HsEmailEstabelecimentoData > getEmailsForEstabelecimento( EstabelecimentosData estabelecimento ) + { + List< HsEmailEstabelecimentoData > result = null; + try + { + result = ENTITY_PROVIDER.listLoad( HsEmailEstabelecimentoData.class, + new Object[] { estabelecimento.getId() }, new String[] { HsEmailEstabelecimentoData.ESTABELECIMENTO_ID }, + null ); + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public List< HsRiscoData > findHsRiscosFor( HsRelatorioRiscoData relatorioRisco ) + { + List< HsRiscoData > result = null; + try + { + Select2 query = new Select2( + new String[] { HsRiscoData.TABLENAME }, + new Integer[] { }, + new Expression[] { }, + new String[] { HsRiscoData.ID_FULL }, + new Field( HsRiscoData.DESCRIPTION_FULL ).isILike( relatorioRisco.getDescription() ), + null, null, null, null + ); + Virtual2DArray array = executer.executeQuery( query ); + result = new ArrayList< HsRiscoData >(); + for ( int i = 0; i < array.columnLength(); i++ ) + { + Integer id = array.get( i, 0 ); + result.add( loadHsRiscoDataByID( id ) ); + } + } + catch ( Exception e ) + { + ErrorLogger.logException( e ); + } + return result; + } + + public HsRiscoData loadHsRiscoDataByID( Integer id ) throws Exception + { + return ENTITY_PROVIDER.load( HsRiscoData.class, id ); + } +}