Boa tarde pessoal!
Estou desenvolvendo uma aplicação que agenda manutenção de aparelhos eletrodomésticos,
e eu gravo a data inicial (do sistema) e a data da próxima manutenção. Já tenho um método que calcula a diferença das datas e armazena o resultado em um campo “periodicidade” .
Preciso que quando acessar a página da lista de manutenções o sistema que mostre quantos dias faltam para chegar data da próxima manutenção.
NA BEAN :
public List<GsManutencaoPreventiva> getListarManutencaoPendentesAndamentos() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
List<GsManutencaoPreventiva> gmps= gsManutencaoPreventivaFacade.getManutencaoPendenteAndamento();
int i = 0;
for (GsManutencaoPreventiva ptBem : gsManutencaoPreventivaFacade.getManutencaoPendenteAndamento()) {
try {
Date dataManutencao1 = df.parse(df.format(ptBem.getDataManutencao()));
Date dataManutencaoProxima = df.parse(df.format(ptBem.getDataProximaManutencao()));
long dias = (dataManutencaoProxima.getTime() - dataManutencao1.getTime()) / (1000*60*60*24);
ptBem.setPeriodicidade((int)dias);
gmps.set(i, ptBem);
i++;
} catch (ParseException ex) {
Logger.getLogger(ManutencaoPreventivaBean.class.getName()).log(Level.SEVERE, null, ex);
}
}
return gmps;
}
E na pagina eu mostro o resultado num datatable do jsf :
<p:dataTable rendered="#{manutencaoPreventivaBean.tabListar}" id="tabela" var="preventiva" value="#{manutencaoPreventivaBean.listarManutencaoPendentes}" paginatorAlwaysVisible="false"
paginator="true" paginatorPosition="bottom" rows="5" emptyMessage="Não há registros!"
rowStyleClass="#{preventiva.idEstadoGsEstado.descricaoEstado eq 'Pendente'? 'laranja': preventiva.idEstadoGsEstado.descricaoEstado eq 'Concluido' ? 'normal' : null}">
<f:facet name="header">
<label style="font-size:140% ">Visualização dos Registros - Manutencao Preventiva</label>
</f:facet>
<p:column headerText="Data de Manutencao" style="text-align:center" >
<h:outputText value="#{preventiva.dataManutencao}" >
<f:convertDateTime pattern="dd-MM-yyyy" timeZone="GMT+1"/>
</h:outputText>
</p:column>
<p:column headerText="Data da Proxima Manutencao" style="text-align:center" >
<h:outputText value="#{preventiva.dataProximaManutencao}" >
<f:convertDateTime pattern="dd-MM-yyyy" timeZone="GMT+1"/>
</h:outputText>
</p:column>
<p:column headerText="Estado" style="text-align:center" >
<h:outputText value="#{preventiva.idEstadoGsEstado.descricaoEstado}"/>
</p:column>
<p:column headerText="Equipamento" style="text-align:center" >
<h:outputText value="#{preventiva.idBem.descricaobem}" />
</p:column>
<p:column headerText="Fornecedor" style="text-align:center" >
<h:outputText value="#{preventiva.idDocumento.descricaodocumento}" />
</p:column>
<p:column headerText="Tempo de Expiracao" style="text-align:center" >
<h:outputText value="#{preventiva.periodicidade}" />
</p:column>
<p:column headerText="Alterar" style="width: 100px;">
<p:commandButton style="margin-left:30%;" icon="ui-icon-edit" update="@form" action="#{manutencaoPreventivaBean.alterar(preventiva)}">
<p:confirm header="Confirmação" message="Desejas realmente alterar a manutencao agendada para a data #{preventiva.dataManutencao} ?" icon="ui-icon-warning" />
</p:commandButton>
<p:confirmDialog global="true" showEffect="fade" hideEffect="fade" width="350">
<p:commandButton value="Sim" type="button" styleClass="ui-confirmdialog-yes GreenButton" icon="ui-icon-check" />
<p:commandButton value="Não" type="button" styleClass="ui-confirmdialog-no RedButton" icon="ui-icon-close" />
</p:confirmDialog>
</p:column>
</p:dataTable>
Desde já agradeço , toda ajuda é benvinda.