You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SIPRP/trunk/common/src/siprp/database/cayenne/providers/PlanoActuacaoDAO.java

310 lines
9.4 KiB

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;
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<HsRiscoTema> 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<HsRelatorioRiscoValorQualitativo> getAllValoresQualitativos()
{
SelectQuery query = new SelectQuery( HsRelatorioRiscoValorQualitativo.class );
return context.performQuery( query );
}
/**
* Get
* @param dates
* @param estabelecimentoID
* @return
*/
public List<HsRelatorio> getRelatoriosNotIn( List<Date> dates, Integer estabelecimentoID )
{
List<HsRelatorio> result = new LinkedList<HsRelatorio>();
if( dates != null )
{
SelectQuery query = new SelectQuery( HsRelatorio.class );
query.andQualifier( ExpressionFactory.noMatchExp( HsRelatorio.IS_SUBMETIDO_PROPERTY, null ) );
query.andQualifier( ExpressionFactory.matchExp( HsRelatorio.DELETED_DATE_PROPERTY, null ) );
List<HsRelatorio> all = context.performQuery( query );
for( HsRelatorio relatorio : all )
{
MarcacoesEstabelecimento visita = relatorio.getToHsMarcacoesEstabelecimento();
if( visita != null )
{
if( estabelecimentoID == null
||
estabelecimentoID != null && estabelecimentoID.equals( visita.getEstabelecimentoID() ) )
{
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<PostoDeTrabalhoEstabelecimento> rels, Estabelecimentos estabelecimento )
// {
// boolean result = false;
// for( PostoDeTrabalhoEstabelecimento rel : rels )
// {
// if( rel.getToEstabelecimentos().equals( estabelecimento ) )
// {
// result = true;
// break;
// }
// }
// return result;
// }
//
// private boolean containsLegislacao( List<LegislacaoEstabelecimento> 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<PostoDeTrabalho> result = new LinkedList<PostoDeTrabalho>();
// SelectQuery query = new SelectQuery( PostoDeTrabalho.class );
// List<PostoDeTrabalho> res = context.performQuery( query );
// if( res != null )
// {
// for( PostoDeTrabalho posto : res )
// {
// if( !containsPostoTrabalho( posto.getPostoDeTrabalhoEstabelecimentoArray() , estabelecimento ) )
// {
// result.add( posto );
// }
// }
// Collections.sort( result, new Comparator<PostoDeTrabalho>()
// {
// @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<Legislacao> result = new LinkedList<Legislacao>();
// SelectQuery query = new SelectQuery( Legislacao.class );
// query.andQualifier( ExpressionFactory.matchExp( Legislacao.TO_LEGISLACAO_PROPERTY, null ) );
// List<Legislacao> res = context.performQuery( query );
// if( res != null )
// {
// for( Legislacao legislacao : res )
// {
// if( !containsLegislacao( legislacao.getLegislacaoEstabelecimentoArray(), estabelecimento ) )
// {
// result.add( legislacao );
// }
// }
// Collections.sort( result, new Comparator<Legislacao>()
// {
// @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<RiscoMedida> 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<Medida> result = new LinkedList<Medida>();
// SelectQuery query = new SelectQuery( Medida.class );
// List<Medida> res = context.performQuery( query );
// if( res != null )
// {
// for( Medida medida : res )
// {
// if( !containsMedidas( medida.getRiscoMedidaArray(), risco ) )
// {
// result.add( medida );
// }
// }
// Collections.sort( result, new Comparator<Medida>()
// {
// @Override
// public int compare( Medida o1, Medida o2 )
// {
// return o1.getDescription().compareTo( o2.getDescription() );
// }
// });
// }
// return result.toArray( new Medida[ result.size() ] );
// }
//
// public List<Risco> getAllRiscos()
// {
// SelectQuery query = new SelectQuery(Risco.class);
// query.addOrdering( Risco.DESCRIPTION_PROPERTY, true );
// List<Risco> 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<Legislacao> 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 );
// }
}