/* * * 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 actions; import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedList; import java.util.List; import javax.faces.model.DataModel; import javax.faces.model.ListDataModel; import modelo.AnaliseMaquinaView; import modelo.AnaliseRecursoView; import modelo.AnaliseTecidoView; import modelo.CadPlan; import modelo.CapacDia; import modelo.CapacRec; import modelo.HP; import modelo.Modelo; import modelo.PerioPM; import modelo.PlPerMod; import modelo.PlanoModelo; import modelo.Recurso; import modelo.Tecido; import br.blog.arruda.plot.Plot; import org.jboss.util.NotImplementedException; import service.AvaliacaoAppService; import service.CadPlanAppService; import service.CapacDiaAppService; import service.CapacRecAppService; import service.HPAppService; import service.ModeloAppService; import service.PerioPMAppService; import service.PlPerModAppService; import service.PlanoModeloAppService; import service.RecursoAppService; import service.TecidoAppService; import service.controleTransacao.FabricaDeAppService; import service.exception.AplicacaoException; import DAO.exception.ObjetoNaoEncontradoException; public class AvaliacaoActions extends BaseActions implements Serializable { // Services private static HPAppService hpService; private static CadPlanAppService cadPlanService; private static TecidoAppService tecidoService; private static RecursoAppService recursoService; private static PlanoModeloAppService planoModeloService; private static PerioPMAppService perioPMService; private static CapacDiaAppService capacDiaService; private static AvaliacaoAppService avaliacaoService; private static CapacRecAppService capacRecAppService; // Paginas public final String PAGINA_LIST_CADPLAN_AVALIACAO = "listCadPlanAvaliacao"; public final String PAGINA_LIST_RECURSO = "listAvaliacaoRecurso"; public final String PAGINA_LIST_TECIDO = "listAvaliacaoTecido"; public final String PAGINA_LIST_PERIOPM_MAQUINA = "listPerioPMMaquina"; public final String PAGINA_LIST_PERIOPM_TECIDO = "listPerioPMTecido"; public final String PAGINA_LIST_PERIOPM_RECURSO = "listPerioPMRecurso"; public final String PAGINA_LIST_RESULTADOS_AVALIACAO = "list"; public final String PAGINA_GRAFICO_TECIDO = "graficoAvaliacaoTecido"; public final String PAGINA_GRAFICO_RECURSO = "graficoAvaliacaoRecurso"; public final String PAGINA_GRAFICO_MAQUINA = "graficoAvaliacaoMaquina"; // Componentes de Controle private DataModel listaCadPlan; private DataModel listaTecido; private DataModel listaRecurso; private DataModel listaPerioPM; private DataModel listaPlPerMods; private DataModel listaAnaliseMaquina; private DataModel listaAnaliseTecido; private DataModel listaAnaliseRecurso; // Variaveis de Tela private CadPlan cadPlanCorrente; private PerioPM perioPMCorrente; private Tecido tecidoCorrente; private Recurso recursoCorrente; private HP hpCorrente; private Plot plotTecido; private Plot plotRecurso; private Plot plotMaquina; private int pagina = 1; private int paginaTecido = 1; private int paginaRecurso = 1; private int paginaPerioPM = 1; private boolean renderizarResultados; private Double necessidadeTotalDoPeriodo = 0.0; private String opcaoAnaliseCapacidade; private List<CapacDia> capacDias; private List<PlPerMod> plPerMods; private List<PlPerMod> plPerModsDoPeriodo; // Opcoes de Redirecionamento final static String OPCAO_ANALISE_MAQUINA = "maquina"; final static String OPCAO_ANALISE_TECIDO = "tecido"; final static String OPCAO_ANALISE_RECURSO = "recurso"; //Opcoes de Impressoes de Relatorio private String opcaoRelatorioEscolhido = "tecido"; public AvaliacaoActions() throws Exception { try { hpService = FabricaDeAppService.getAppService(HPAppService.class); cadPlanService = FabricaDeAppService.getAppService(CadPlanAppService.class); tecidoService = FabricaDeAppService.getAppService(TecidoAppService.class); planoModeloService = FabricaDeAppService.getAppService(PlanoModeloAppService.class); perioPMService = FabricaDeAppService.getAppService(PerioPMAppService.class); capacDiaService = FabricaDeAppService.getAppService(CapacDiaAppService.class); recursoService = FabricaDeAppService.getAppService(RecursoAppService.class); avaliacaoService = FabricaDeAppService.getAppService(AvaliacaoAppService.class); capacRecAppService = FabricaDeAppService.getAppService(CapacRecAppService.class); } catch (Exception e) { e.printStackTrace(); } hpCorrente = new HP(); } public String analisarDisponibilidade(){ cadPlanCorrente = (CadPlan) listaCadPlan.getRowData(); try { cadPlanCorrente = cadPlanService.recuperaCadPlanComPlanosModelo(cadPlanCorrente.getCodPlan()); } catch (ObjetoNaoEncontradoException e) { } hpCorrente = hpService.recuperaListaDeHP().get(0); if (opcaoAnaliseCapacidade.equals(OPCAO_ANALISE_MAQUINA)){ return PAGINA_LIST_PERIOPM_MAQUINA; } else if (opcaoAnaliseCapacidade.equals(OPCAO_ANALISE_TECIDO)){ return PAGINA_LIST_TECIDO; } else { return PAGINA_LIST_RECURSO; } } public String analisarDisponibilidadeTecido(){ tecidoCorrente = (Tecido) listaTecido.getRowData(); return PAGINA_LIST_PERIOPM_TECIDO; } public String analisarDisponibilidadeRecurso(){ recursoCorrente = (Recurso) listaRecurso.getRowData(); return PAGINA_LIST_PERIOPM_RECURSO; } /** * Este m�todo � utilizado para atualizar os principais atributos inerentes � opera��o de An�lise de M�quina * cada vez que o usuario deseja exibir uma nova listagem de resultados, para outros Periodos. */ public void resetarAtributos(){ necessidadeTotalDoPeriodo = null; listaPlPerMods = null; listaAnaliseMaquina = null; listaAnaliseTecido = null; listaAnaliseRecurso = null; renderizarResultados = false; plPerModsDoPeriodo = null; } /** * @author bruno.oliveira * <br /> * M�todo que futuramente ser� implementado para o c�lculo de rateio das avalia��es de m�quina, tecido e recurso * <br /> * Atualmente o m�todo aciona uma mensagem de aviso ao us�rio que o informa da n�o implementa��o do m�todo.<br /> * O retorno � null, pois o mesmo m�todo � chamado por m�quina, tecido e recurso, impossibilitando o retorno de * de uma p�gina especif�ca. O retorno null faz com que a p�gina se mantenha. * @return null */ public String calcularRateio(){ error("erro.FUNCAO_NAO_IMPLEMENTADA"); // Usamos return null para manter a p�gina inalterada, o motivo se deve ao fato de que o m�todo // � chamador por tecido, m�quina e recurso, o que impossibilita o retorno a uma p�gina espec�fica. return null; } /** * Gera os relatorios Pdfs para Analise de maquina, tecido e recurso * dependendo do valor da variavel global opcaoRelatorioEscolhido. * * @return */ public String geraRelatorioPdf(){ if(this.opcaoRelatorioEscolhido.equals(OPCAO_ANALISE_MAQUINA)){ try { avaliacaoService.gerarRelatorioAvaliacaoMaquina(cadPlanCorrente, plPerMods); } catch (AplicacaoException e) { error(e.getMessage()); } } else if(this.opcaoRelatorioEscolhido.equals(OPCAO_ANALISE_TECIDO)){ try { avaliacaoService.gerarRelatorioAvaliacaoTecido(cadPlanCorrente, plPerMods, tecidoCorrente); } catch (AplicacaoException e) { error(e.getMessage()); } } else if(this.opcaoRelatorioEscolhido.equals(OPCAO_ANALISE_RECURSO)){ try { avaliacaoService.gerarRelatorioAvaliacaoRecurso(cadPlanCorrente, plPerMods, recursoCorrente); } catch (AplicacaoException e) { error(e.getMessage()); } } return PAGINA_LIST_RESULTADOS_AVALIACAO; } /** * Prepara a lista de plPerMods de um determinado periodo para apresentar os * dados necessarios na tela de avaliacao de tecido. * * @return */ public String preparaListagemAvaliacaoTecido(){ perioPMCorrente = (PerioPM) listaPerioPM.getRowData(); plPerMods = new LinkedList<PlPerMod>(); necessidadeTotalDoPeriodo=0.0; try { for (PlanoModelo planoModelo : cadPlanCorrente.getPlanosModelo()) { planoModelo = planoModeloService.recuperarPlPerModsPorPlanoModelo(planoModelo); plPerMods.addAll(planoModelo.getPlPerMods()); } Collections.sort(plPerMods); // Lista ORDENADA de todos os PlPerMods relativos a um CadPlan espec�fico. } catch (ObjetoNaoEncontradoException e) { } // Rotina que calcula a produ��o defasada dos PlPerMods em um determinado Per�odo, para ANALISE DE TECIDO plPerModsDoPeriodo = avaliacaoService.defasarProducaoPlPerModsNoPeriodoAnaliseTecido(plPerMods, perioPMCorrente, tecidoCorrente); if (!plPerModsDoPeriodo.isEmpty()){ // A Necessidade Total do Periodo � a soma de todos os valores de 'consumoDiarioKg' dos PlPerMods for (PlPerMod plPerMod : plPerModsDoPeriodo) { necessidadeTotalDoPeriodo += plPerMod.getConsumoDiarioKg(); } // Com isso, cada um dos PlPerMods possui sua participa��o percentual na Necessidade Total do Per�odo for (PlPerMod plPerMod : plPerModsDoPeriodo) { plPerMod.setParticipacaoPercentual((plPerMod.getConsumoDiarioKg()/necessidadeTotalDoPeriodo)*100); } renderizarResultados = true; } else { // Caso em que a defasagem buscou valores em um per�odo em que n�o existe nenhum Modelo com Inicio de Produ��o planejado renderizarResultados = false; warn("avaliacao.MODELOS_NAO_ENCONTRADOS"); } listaPlPerMods = null; // Obrigando a listaPlPerMods a se atualizar return PAGINA_LIST_RESULTADOS_AVALIACAO; } /** * Prepara a lista de plPerMods de um determinado per�odo para apresentar os dados necess�rios * na tela de avalia��o de recurso. * (Alterado por: BBF/DMA) * * @return */ public String preparaListagemAvaliacaoRecurso(){ perioPMCorrente = (PerioPM) listaPerioPM.getRowData(); plPerMods = new LinkedList<PlPerMod>(); necessidadeTotalDoPeriodo=0.0; try { for (PlanoModelo planoModelo : cadPlanCorrente.getPlanosModelo()) { planoModelo = planoModeloService.recuperarPlPerModsPorPlanoModelo(planoModelo); plPerMods.addAll(planoModelo.getPlPerMods()); } Collections.sort(plPerMods); // Lista ORDENADA de todos os PlPerMods relativos a um CadPlan espec�fico. } catch (ObjetoNaoEncontradoException e) { } // Rotina que calcula a produ��o defasada dos PlPerMods em um determinado Per�odo, para ANALISE DE RECURSO plPerModsDoPeriodo = avaliacaoService.defasarProducaoPlPerModsNoPeriodoAnaliseRecurso(plPerMods, perioPMCorrente, recursoCorrente); if (!plPerModsDoPeriodo.isEmpty()){ // A Necessidade Total do Periodo � a soma de todos os valores de 'consumoDiario' dos PlPerMods for (PlPerMod plPerMod : plPerModsDoPeriodo) { necessidadeTotalDoPeriodo += plPerMod.getConsumoDiario(); } // Com isso, cada um dos PlPerMods possui sua participa��o percentual na Necessidade Total do Per�odo for (PlPerMod plPerMod : plPerModsDoPeriodo) { plPerMod.setParticipacaoPercentual((plPerMod.getConsumoDiario()/necessidadeTotalDoPeriodo)*100); } renderizarResultados = true; } else { // Caso em que a defasagem buscou valores em um per�odo em que n�o existe nenhum Modelo com Inicio de Produ��o planejado renderizarResultados = false; warn("avaliacao.MODELOS_NAO_ENCONTRADOS"); } listaPlPerMods = null; // Obrigando a listaPlPerMods a se atualizar return PAGINA_LIST_RESULTADOS_AVALIACAO; } public String preparaListagemAvaliacaoMaquina(){ perioPMCorrente = (PerioPM) listaPerioPM.getRowData(); plPerMods = new LinkedList<PlPerMod>(); capacDias = new ArrayList<CapacDia>(capacDiaService.recuperaListaDeCapacDias()); necessidadeTotalDoPeriodo=0.0; try { for (PlanoModelo planoModelo : cadPlanCorrente.getPlanosModelo()) { planoModelo = planoModeloService.recuperarPlPerModsPorPlanoModelo(planoModelo); plPerMods.addAll(planoModelo.getPlPerMods()); } Collections.sort(plPerMods); // Lista ORDENADA de todos os PlPerMods relativos a um CadPlan espec�fico. } catch (ObjetoNaoEncontradoException e) { } // Rotina que calcula a produ��o defasada dos PlPerMods em um determinado Per�odo, para ANALISE DE MAQUINA plPerModsDoPeriodo = avaliacaoService.defasarProducaoPlPerModsNoPeriodoAnaliseMaquina(plPerMods, perioPMCorrente); if (!plPerModsDoPeriodo.isEmpty()){ // A Necessidade Total do Periodo � a soma de todos as 'prodDiariaLoteMin' dos PlPerMods for (PlPerMod plPerMod : plPerModsDoPeriodo) { necessidadeTotalDoPeriodo += plPerMod.getProdDiariaLoteMin(); } // Com isso, cada um dos PlPerMods possui sua participa��o percentual na Necessidade Total do Per�odo for (PlPerMod plPerMod : plPerModsDoPeriodo) { plPerMod.setParticipacaoPercentual((plPerMod.getProdDiariaLoteMin()/necessidadeTotalDoPeriodo)*100); } renderizarResultados = true; } else { // Caso em que a defasagem buscou valores em um per�odo em que n�o existe nenhum Modelo com Inicio de Produ��o planejado renderizarResultados = false; warn("avaliacao.MODELOS_NAO_ENCONTRADOS"); } listaPlPerMods = null; // Obrigando a listaPlPerMods a se atualizar return PAGINA_LIST_RESULTADOS_AVALIACAO; } public String voltarPaginaListagemPerioPM(){ resetarAtributos(); if (opcaoAnaliseCapacidade.equals(OPCAO_ANALISE_MAQUINA)){ return PAGINA_LIST_PERIOPM_MAQUINA; } else if (opcaoAnaliseCapacidade.equals(OPCAO_ANALISE_TECIDO)){ return PAGINA_LIST_PERIOPM_TECIDO; } else { return PAGINA_LIST_PERIOPM_RECURSO; } } public String voltarPaginaListagemDeRecursoOuTecido(){ resetarAtributos(); if (opcaoAnaliseCapacidade.equals(OPCAO_ANALISE_TECIDO)){ return PAGINA_LIST_TECIDO; } else { return PAGINA_LIST_RECURSO; } } public String voltarPaginaListagemCadPlan(){ resetarAtributos(); return PAGINA_LIST_CADPLAN_AVALIACAO; } public List<AnaliseMaquinaView> calcularAnaliseMaquina(){ List<AnaliseMaquinaView> listAnaliseMaquina = new ArrayList<AnaliseMaquinaView>(1); AnaliseMaquinaView analiseMaquinaView = new AnaliseMaquinaView(); Double capacidade = capacDias.get(perioPMCorrente.getPeriodoPM() - 1).getCapacProdDiariaEmMin(); analiseMaquinaView.setNecessidadeTotal(necessidadeTotalDoPeriodo); analiseMaquinaView.setCapacidade(capacidade); analiseMaquinaView.setComprometimentoMinutos(capacidade-necessidadeTotalDoPeriodo); analiseMaquinaView.setComprometimentoPercentual((necessidadeTotalDoPeriodo*100)/capacidade); listAnaliseMaquina.add(analiseMaquinaView); return listAnaliseMaquina; } /** * Popula os campos calculados de Analise de tecido. * @return */ public List<AnaliseTecidoView> calcularAnaliseTecido(){ List<AnaliseTecidoView> listAnaliseTecido = new ArrayList<AnaliseTecidoView>(1); AnaliseTecidoView analiseTecidoView = new AnaliseTecidoView(); // Calculo similiar ao realizado em CapacTecView Double disponibilidadeMaxDiaria = (tecidoCorrente.getProducaoDiariaMaxUnidade2() * perioPMCorrente.getNumDiasUteisU2())/perioPMCorrente.getNumDiasUteisMatriz(); analiseTecidoView.setNecessidadeTotal(necessidadeTotalDoPeriodo); analiseTecidoView.setDisponibilidadeMaxDiaria(disponibilidadeMaxDiaria); analiseTecidoView.setComprometimentoKg(disponibilidadeMaxDiaria - necessidadeTotalDoPeriodo); analiseTecidoView.setComprometimentoPercentual((necessidadeTotalDoPeriodo*100)/disponibilidadeMaxDiaria); listAnaliseTecido.add(analiseTecidoView); return listAnaliseTecido; } public List<AnaliseRecursoView> calcularAnaliseRecurso(){ List<AnaliseRecursoView> listAnaliseRecurso = new ArrayList<AnaliseRecursoView>(1); AnaliseRecursoView analiseRecursoView = new AnaliseRecursoView(); CapacRec capacRec = null; try { capacRec = capacRecAppService.recuperaCapacRecPorRecursoEPerioPM(recursoCorrente, perioPMCorrente); } catch (AplicacaoException e) { } Double capacidadeDiaria = capacRec.getCapacDiaria(); Double custoTotal = 0.0; for (PlPerMod plPerMod : plPerModsDoPeriodo) { custoTotal += plPerMod.getCustoDiario(); } analiseRecursoView.setNecessidadeTotal(necessidadeTotalDoPeriodo); analiseRecursoView.setCapacidade(capacidadeDiaria); analiseRecursoView.setComprometimento(capacidadeDiaria - necessidadeTotalDoPeriodo); analiseRecursoView.setComprometimentoPercentual(necessidadeTotalDoPeriodo*100 / capacidadeDiaria); analiseRecursoView.setCustoTotal(custoTotal); listAnaliseRecurso.add(analiseRecursoView); return listAnaliseRecurso; } public String exibirGraficoTecido(){ try { plotTecido = avaliacaoService.gerarDadosGraficoAvaliacaoTecido(cadPlanCorrente, tecidoCorrente); } catch (AplicacaoException e) { error(e.getMessage()); return PAGINA_LIST_PERIOPM_TECIDO; } return PAGINA_GRAFICO_TECIDO; } public String exibirGraficoRecurso(){ try { plotRecurso = avaliacaoService.gerarDadosGraficoAvaliacaoRecurso(cadPlanCorrente, recursoCorrente); } catch (AplicacaoException e) { error(e.getMessage()); return PAGINA_LIST_PERIOPM_RECURSO; } return PAGINA_GRAFICO_RECURSO; } public String exibirGraficoMaquina(){ try { plotMaquina = avaliacaoService.gerarDadosGraficoAvaliacaoMaquina(cadPlanCorrente); } catch (AplicacaoException e) { error(e.getMessage()); return PAGINA_LIST_PERIOPM_MAQUINA; } return PAGINA_GRAFICO_MAQUINA; } // ================================== M�todos get() e set() ================================== // public DataModel getListaCadPlan() { if (listaCadPlan == null){ listaCadPlan = new ListDataModel(cadPlanService.recuperaListaDeCadPlanPorUsuario(sessaoUsuarioCorrente.getUsuarioLogado())); } return listaCadPlan; } public CadPlan getCadPlanCorrente() { return cadPlanCorrente; } public void setListaCadPlan(DataModel listaCadPlan) { this.listaCadPlan = listaCadPlan; } public void setCadPlanCorrente(CadPlan cadPlanCorrente) { this.cadPlanCorrente = cadPlanCorrente; } public void setPagina(int pagina) { this.pagina = pagina; } public int getPagina() { return pagina; } public void setListaPlPerMods(DataModel listaPlPerMods) { this.listaPlPerMods = listaPlPerMods; } public DataModel getListaPlPerMods() { if (listaPlPerMods == null){ listaPlPerMods = new ListDataModel(plPerModsDoPeriodo); } return listaPlPerMods; } public void setListaPerioPM(DataModel listaPerioPM) { this.listaPerioPM = listaPerioPM; } public DataModel getListaPerioPM() { if (listaPerioPM == null){ List<PerioPM> perioPMsPMP = perioPMService.recuperaIntervaloDePerioPMs (hpCorrente.getPerioPMInicPMP().getPeriodoPM(), hpCorrente.getPerioPMFinalPMP().getPeriodoPM()); listaPerioPM = new ListDataModel(perioPMsPMP); } return listaPerioPM; } public void setHpCorrente(HP hpCorrente) { this.hpCorrente = hpCorrente; } public HP getHpCorrente() { return hpCorrente; } public void setPlPerMods(List<PlPerMod> plPerMods) { this.plPerMods = plPerMods; } public List<PlPerMod> getPlPerMods() { return plPerMods; } public void setListaAnaliseMaquina(DataModel listaAnaliseMaquina) { this.listaAnaliseMaquina = listaAnaliseMaquina; } public void setCapacDias(List<CapacDia> capacDias) { this.capacDias = capacDias; } public List<CapacDia> getCapacDias() { return capacDias; } public DataModel getListaAnaliseMaquina() { if (listaAnaliseMaquina == null){ listaAnaliseMaquina = new ListDataModel(calcularAnaliseMaquina()); } return listaAnaliseMaquina; } public void setNecessidadeTotalDoPeriodo(Double necessidadeTotalDoPeriodo) { this.necessidadeTotalDoPeriodo = necessidadeTotalDoPeriodo; } public Double getNecessidadeTotalDoPeriodo() { if(necessidadeTotalDoPeriodo == null){ necessidadeTotalDoPeriodo =0.0; } return necessidadeTotalDoPeriodo; } public void setPlPerModsDoPeriodo(List<PlPerMod> plPerModsDoPeriodo) { this.plPerModsDoPeriodo = plPerModsDoPeriodo; } public List<PlPerMod> getPlPerModsDoPeriodo() { return plPerModsDoPeriodo; } public void setPerioPMCorrente(PerioPM perioPMCorrente) { this.perioPMCorrente = perioPMCorrente; } public PerioPM getPerioPMCorrente() { return perioPMCorrente; } public void setRenderizarResultados(boolean renderizarResultados) { this.renderizarResultados = renderizarResultados; } public boolean isRenderizarResultados() { return renderizarResultados; } public void setPaginaPerioPM(int paginaPerioPM) { this.paginaPerioPM = paginaPerioPM; } public int getPaginaPerioPM() { return paginaPerioPM; } public void setListaTecido(DataModel listaTecido) { this.listaTecido = listaTecido; } public DataModel getListaTecido() { if (listaTecido == null){ listaTecido = new ListDataModel(tecidoService.recuperaListaPaginadaDeTecidos()); } return listaTecido; } public void setListaRecurso(DataModel listaRecurso) { this.listaRecurso = listaRecurso; } public DataModel getListaRecurso() { if (listaRecurso == null){ listaRecurso = new ListDataModel(recursoService.recuperaListaPaginadaDeRecursos()); } return listaRecurso; } public void setTecidoCorrente(Tecido tecidoCorrente) { this.tecidoCorrente = tecidoCorrente; } public Tecido getTecidoCorrente() { return tecidoCorrente; } public void setRecursoCorrente(Recurso recursoCorrente) { this.recursoCorrente = recursoCorrente; } public Recurso getRecursoCorrente() { return recursoCorrente; } public void setPaginaTecido(int paginaTecido) { this.paginaTecido = paginaTecido; } public int getPaginaTecido() { return paginaTecido; } public void setPaginaRecurso(int paginaRecurso) { this.paginaRecurso = paginaRecurso; } public int getPaginaRecurso() { return paginaRecurso; } public void setOpcaoAnaliseCapacidade(String opcaoAnaliseCapacidade) { this.opcaoAnaliseCapacidade = opcaoAnaliseCapacidade; } public String getOpcaoAnaliseCapacidade() { return opcaoAnaliseCapacidade; } public void setListaAnaliseTecido(DataModel listaAnaliseTecido) { this.listaAnaliseTecido = listaAnaliseTecido; } public DataModel getListaAnaliseTecido() { if (listaAnaliseTecido == null){ listaAnaliseTecido = new ListDataModel(calcularAnaliseTecido()); } return listaAnaliseTecido; } public void setListaAnaliseRecurso(DataModel listaAnaliseRecurso) { this.listaAnaliseRecurso = listaAnaliseRecurso; } public DataModel getListaAnaliseRecurso() { if (listaAnaliseRecurso == null){ listaAnaliseRecurso = new ListDataModel(calcularAnaliseRecurso()); } return listaAnaliseRecurso; } public String getOpcaoRelatorioEscolhido() { return opcaoRelatorioEscolhido; } public void setOpcaoRelatorioEscolhido(String opcaoRelatorioEscolhido) { this.opcaoRelatorioEscolhido = opcaoRelatorioEscolhido; } public Plot getPlotTecido() { return plotTecido; } public void setPlotTecido(Plot plotTecido) { this.plotTecido = plotTecido; } public Plot getPlotRecurso() { return plotRecurso; } public void setPlotRecurso(Plot plotRecurso) { this.plotRecurso = plotRecurso; } public Plot getPlotMaquina() { return plotMaquina; } public void setPlotMaquina(Plot plotMaquina) { this.plotMaquina = plotMaquina; } }