/* * * Copyright (c) 2013 - 2014 INT - National Institute of Technology & COPPE - Alberto Luiz Coimbra Institute - Graduate School and Research in Engineering. * See the file license.txt for copyright permission. * */ package carga; import java.util.List; import modelo.CapacRec; import modelo.PerioPM; import modelo.Recurso; import service.CapacRecAppService; import service.PerioPMAppService; import service.RecursoAppService; import service.controleTransacao.FabricaDeAppService; import service.exception.AplicacaoException; /** * * Sobre a Carga: * � uma Carga do sistema, portanto deve herdar de CargaBase e * implementar o m�todo executar(). * Nesse m�todo executar � que � chamado os outros m�todos que s�o * as et�pas dessa carga. * Portanto se � necessario rodar um m�todo depois do outro, eles devem ser chamados * na ordem correta. Ex: * incluiHP() vem antes de inicializaHP(), portanto no m�todo executar() eles devem ser chamados nessa ordem. * * Terminado de executar todas as etapas � preciso retornar true. * Se houver algum problema(exce��o) na execu��o de um das etapas, essa exce��o deve ser lancada * * Essa Carga: * Atualiza CapacRec do periodo 10(Capacidade diaria) para o mesmo valor do * periodo anterior, para cada recurso. * * @author felipe.arruda * */ public class CargaEstudoAtualizaCapacRec extends CargaBase{ private static CapacRecAppService capacRecService; private static RecursoAppService recursoService; private static PerioPMAppService perioPMService; private static List<Recurso> recursos; private static PerioPM penultimoPeriodo; private static PerioPM ultimoPeriodo ; public CargaEstudoAtualizaCapacRec() throws AplicacaoException { try { capacRecService = FabricaDeAppService .getAppService(CapacRecAppService.class); recursoService = FabricaDeAppService .getAppService(RecursoAppService.class); perioPMService = FabricaDeAppService .getAppService(PerioPMAppService.class); } catch (Exception e) { e.printStackTrace(); } recursos = recursoService.recuperaListaDeRecursos(); penultimoPeriodo = perioPMService .recuperaPerioPMPorPeriodoPM(9); ultimoPeriodo = perioPMService.recuperaPerioPMPorPeriodoPM(10); } /** * altera a Producao Diaria Do Recurso Do Periodo 10 */ @Override public boolean executar() throws AplicacaoException { this.alteraProducaoDiariaDoRecursoDoPeriodo10(); return true; } /** * prepara a lista de CapacRecs do penultimo e do ultimo periodo, para * cada recurso * depois altera o capacRec do ultimo para que seu valor de Capacidade * Diaria fique * igual ao do penultimo. * @throws AplicacaoException */ public void alteraProducaoDiariaDoRecursoDoPeriodo10() throws AplicacaoException{ for (Recurso recurso : recursos) { CapacRec capacRecAnterior = capacRecService .recuperaCapacRecPorRecursoEPerioPM(recurso, penultimoPeriodo); CapacRec capacRecCorrente = capacRecService .recuperaCapacRecPorRecursoEPerioPM(recurso, ultimoPeriodo); // altera o valor do ultimo para ficar igual ao do penultimo capacRecCorrente.setCapacDiaria(capacRecAnterior.getCapacDiaria()); // salva no banco capacRecService.altera(capacRecCorrente); } } }