double numDataCadastrada = 0;
int numDatasExtendidas = 0;
PontoCriticoDao pontoCriticoDao = new PontoCriticoDao( null );
List<HistoricoPtcH> listHistPtc = null;
HistoricoPtcH historicoAnterior = null;
List<PontoCriticoPtc> pontosCriticos =
pontoCriticoDao.listarItensIncluidosAntesDaDataBase( itemEstrutura,
Data.addDias( 1, dataBase ) );
if ( ( pontosCriticos != null ) && ( pontosCriticos.size( ) > 0 ) )
{
numDataCadastrada = getTotalPontosCriticos( pontosCriticos, dataBase );
}
if ( numDataCadastrada == 0 )
{
return numDataCadastrada;
}
for ( PontoCriticoPtc pontoCritico : pontosCriticos )
{
listHistPtc =
pontoCriticoDao.listarHistorico( pontoCritico,
Data.addDias( 1, dataBase ) );
historicoAnterior = null;
Set<Date> datasLimites = null;
// N�o apresentou modifica��o no hist�rico
if ( listHistPtc.size( ) == 0 )
{
continue;
}
datasLimites = new HashSet<Date>( listHistPtc.size( ) );
for ( HistoricoPtcH historico : listHistPtc )
{
// Se a �ltima manuten��o for antes da dataBase � para considerar a situa��o atual do item
if ( ( pontoCritico.getDataUltManutencaoPtc( ) != null ) &&
( Data.compareAnoMesDia( pontoCritico.getDataUltManutencaoPtc( ),
dataBase ) <= 0 ) )
{
if ( estaExcluido( pontoCritico ) )
{
break;
}
// Verifica se os valores s�o Nulos
else if ( (
( pontoCritico.getDataLimitePtc( ) != null ) && ( historico != null ) &&
( historico.getDataLimitePtc( ) != null )
)// Verifica se a data Limite atual � maior do que a apresentada no historico
&&
(
Data.compareAnoMesDia(
pontoCritico.getDataLimitePtc( ),
historico.getDataLimitePtc( ) ) > 0
) )
{
numDatasExtendidas++;
break; // p�ra o loop de hist�rico
} else if ( estaExcluido( pontoCritico ) )
{
break;
}
}
if ( ( historico != null ) && ( historicoAnterior != null ) )
{
if ( ( historico.getDataLimitePtc( ) != null ) &&
( historicoAnterior.getDataLimitePtc( ) != null ) &&
( ! estaExcluido( historico ) ) &&
(
Data.compareAnoMesDia(
historico.getDataLimitePtc( ),
historicoAnterior.getDataLimitePtc( ) ) > 0
) )
{
numDatasExtendidas++;
break;