package siprp.database.cayenne.providers; import java.util.Date; import java.util.LinkedList; import java.util.List; import org.apache.cayenne.DataObjectUtils; import org.apache.cayenne.exp.ExpressionFactory; import org.apache.cayenne.query.SelectQuery; import siprp.database.cayenne.objects.EmailPlanoDeActuacao; import siprp.database.cayenne.objects.Estabelecimentos; import siprp.database.cayenne.objects.HsPosto; import siprp.database.cayenne.objects.HsPostoRisco; import siprp.database.cayenne.objects.HsRelatorio; import siprp.database.cayenne.objects.HsRelatorioRiscoValorQualitativo; import siprp.database.cayenne.objects.HsRisco; import siprp.database.cayenne.objects.HsRiscoTema; import siprp.database.cayenne.objects.MarcacoesEstabelecimento; import siprp.medicina.presencas.actions.RealizouAction; public class PlanoActuacaoDAO extends MainDAO { public Estabelecimentos getEstabelecimentoByID( Integer id ) { return (Estabelecimentos) DataObjectUtils.objectForPK( context, Estabelecimentos.class, id ); } public void addEmailToEstabelecimento( String email, Estabelecimentos estabelecimento ) { EmailPlanoDeActuacao emailObject = (EmailPlanoDeActuacao) context.newObject( EmailPlanoDeActuacao.class ); emailObject.setDescription( email ); emailObject.setToEstabelecimentos( estabelecimento ); context.commitChanges(); } public List getAllRiscoTemas() { SelectQuery query = new SelectQuery( HsRiscoTema.class ); query.andQualifier( ExpressionFactory.matchExp( HsRiscoTema.DELETED_DATE_PROPERTY, null ) ); return context.performQuery( query ); } public HsRelatorio criarRelatorioForVisita( MarcacoesEstabelecimento visita ) { HsRelatorio result = null; if( visita != null ) { result = (HsRelatorio) context.newObject( HsRelatorio.class ); result.setToHsMarcacoesEstabelecimento( visita ); result.setData( new Date() ); context.commitChanges(); } return result; } public HsPostoRisco createValoresFor( HsRisco risco, HsPosto posto ) { HsPostoRisco result = null; if( risco != null && posto != null ) { result = (HsPostoRisco) context.newObject( HsPostoRisco.class ); result.setToHsPosto( posto ); result.setToHsRisco( risco ); result.setIsPlanoActuacao( "n" ); context.commitChanges(); } return result; } public List getAllValoresQualitativos() { SelectQuery query = new SelectQuery( HsRelatorioRiscoValorQualitativo.class ); return context.performQuery( query ); } public List getRelatoriosNotIn( List dates ) { List result = new LinkedList(); if( dates != null ) { SelectQuery query = new SelectQuery( HsRelatorio.class ); query.andQualifier( ExpressionFactory.noMatchExp( HsRelatorio.IS_SUBMETIDO_PROPERTY, null ) ); List all = context.performQuery( query ); for( HsRelatorio relatorio : all ) { MarcacoesEstabelecimento visita = relatorio.getToHsMarcacoesEstabelecimento(); if( visita != null ) { Date dateVisita = visita.getData(); if( dateVisita != null && !dates.contains( dateVisita ) ) { result.add( relatorio ); } } } } return result; } // public Legislacao createNovaLegislacao( Legislacao parent ) // { // Legislacao legislacaoObject = (Legislacao) context.newObject( Legislacao.class ); // legislacaoObject.setToLegislacao( parent ); // legislacaoObject.setDescription( "" ); // return legislacaoObject; // } // // public PostoDeTrabalho createPostoTrabalho( String postoTrabalho ) // { // PostoDeTrabalho postoTrabalhoObject = (PostoDeTrabalho) context.newObject( PostoDeTrabalho.class ); // postoTrabalhoObject.setDescription( postoTrabalho ); // context.commitChanges(); // return postoTrabalhoObject; // } // // public void addLegislacaoToEstabelecimento( Legislacao legislacao, Estabelecimentos estabelecimento ) // { // LegislacaoEstabelecimento rel = (LegislacaoEstabelecimento) context.newObject( LegislacaoEstabelecimento.class ); // rel.setToEstabelecimentos( estabelecimento ); // rel.setToLegislacao( legislacao ); // context.commitChanges(); // } // // public void addPostoTrabalhoToEstabelecimento( PostoDeTrabalho postoTrabalho, Estabelecimentos estabelecimento ) // { // PostoDeTrabalhoEstabelecimento rel = (PostoDeTrabalhoEstabelecimento) context.newObject( PostoDeTrabalhoEstabelecimento.class ); // rel.setToEstabelecimentos( estabelecimento ); // rel.setToPostoDeTrabalho( postoTrabalho ); // context.commitChanges(); // } // // private boolean containsPostoTrabalho( List rels, Estabelecimentos estabelecimento ) // { // boolean result = false; // for( PostoDeTrabalhoEstabelecimento rel : rels ) // { // if( rel.getToEstabelecimentos().equals( estabelecimento ) ) // { // result = true; // break; // } // } // return result; // } // // private boolean containsLegislacao( List rels, Estabelecimentos estabelecimento ) // { // boolean result = false; // for( LegislacaoEstabelecimento rel : rels ) // { // if( rel.getToEstabelecimentos().equals( estabelecimento ) ) // { // result = true; // break; // } // } // return result; // } // // public PostoDeTrabalho [] getAllPostosNotInEstabelecimento( Estabelecimentos estabelecimento ) // { // List result = new LinkedList(); // SelectQuery query = new SelectQuery( PostoDeTrabalho.class ); // List res = context.performQuery( query ); // if( res != null ) // { // for( PostoDeTrabalho posto : res ) // { // if( !containsPostoTrabalho( posto.getPostoDeTrabalhoEstabelecimentoArray() , estabelecimento ) ) // { // result.add( posto ); // } // } // Collections.sort( result, new Comparator() // { // @Override // public int compare( PostoDeTrabalho o1, PostoDeTrabalho o2 ) // { // return o1.getDescription().compareTo( o2.getDescription() ); // } // }); // } // return result.toArray( new PostoDeTrabalho[ result.size() ] ); // } // // public Legislacao [] getAllLegislacoesNotInEstabelecimento( Estabelecimentos estabelecimento ) // { // List result = new LinkedList(); // SelectQuery query = new SelectQuery( Legislacao.class ); // query.andQualifier( ExpressionFactory.matchExp( Legislacao.TO_LEGISLACAO_PROPERTY, null ) ); // List res = context.performQuery( query ); // if( res != null ) // { // for( Legislacao legislacao : res ) // { // if( !containsLegislacao( legislacao.getLegislacaoEstabelecimentoArray(), estabelecimento ) ) // { // result.add( legislacao ); // } // } // Collections.sort( result, new Comparator() // { // @Override // public int compare( Legislacao o1, Legislacao o2 ) // { // return o1.getDescription().compareTo( o2.getDescription() ); // } // }); // } // return result.toArray( new Legislacao[ result.size() ] ); // } // // public Medida createMedida( String medida ) // { // Medida medidaObject = (Medida) context.newObject( Medida.class ); // medidaObject.setDescription( medida ); // context.commitChanges(); // return medidaObject; // } // // private boolean containsMedidas( List rels, Risco risco ) // { // boolean result = false; // for( RiscoMedida rel : rels ) // { // if( rel.getToRisco().equals( risco ) ) // { // result = true; // break; // } // } // return result; // } // // public Medida[] getAllMedidasNotInRisco( Risco risco ) // { // List result = new LinkedList(); // SelectQuery query = new SelectQuery( Medida.class ); // List res = context.performQuery( query ); // if( res != null ) // { // for( Medida medida : res ) // { // if( !containsMedidas( medida.getRiscoMedidaArray(), risco ) ) // { // result.add( medida ); // } // } // Collections.sort( result, new Comparator() // { // @Override // public int compare( Medida o1, Medida o2 ) // { // return o1.getDescription().compareTo( o2.getDescription() ); // } // }); // } // return result.toArray( new Medida[ result.size() ] ); // } // // public List getAllRiscos() // { // SelectQuery query = new SelectQuery(Risco.class); // query.addOrdering( Risco.DESCRIPTION_PROPERTY, true ); // List result = context.performQuery( query ); // return result; // } // // public void addMedidaToRisco( Medida medida, Risco risco ) // { // RiscoMedida rel = (RiscoMedida) context.newObject( RiscoMedida.class ); // rel.setToMedida( medida ); // rel.setToRisco( risco ); // context.commitChanges(); // } // // public void createRisco( String risco, Integer valorInt ) // { // Risco riscoObject = (Risco) context.newObject( Risco.class ); // riscoObject.setDescription( risco ); // riscoObject.setValue( valorInt ); // context.commitChanges(); // } // // public List getAllLegislacoes( Legislacao parent ) // { // SelectQuery query = new SelectQuery( Legislacao.class ); // query.andQualifier( ExpressionFactory.matchExp( Legislacao.TO_LEGISLACAO_PROPERTY, parent ) ); // if( parent == null ) // { // query.addOrdering( Legislacao.DESCRIPTION_PROPERTY, true ); // } // return context.performQuery( query ); // } }