1 package ecar.servlet.relatorio.PPA;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.Iterator;
6 import java.util.List;
7 import java.util.Set;
8
9 import javax.servlet.http.HttpServletRequest;
10
11 import org.apache.log4j.Logger;
12
13 import ecar.dao.AcompRealFisicoDao;
14 import ecar.dao.ItemEstrtIndResulIettrDao;
15 import ecar.dao.ItemEstrtIndResultLocalIettirlDao;
16 import ecar.exception.ECARException;
17 import ecar.pojo.ItemEstrtIndResulIettr;
18 import ecar.pojo.ItemEstruturaIettPPA;
19 import ecar.servlet.relatorio.PPA.bean.ProdutoBean;
20 import ecar.servlet.relatorio.PPA.bean.comparator.LinhaAcaoComparatorSigla;
21
22 public class CarregaItensCompleto extends CarregaItens implements RelatorioParametro{
23
24
25
26
27
28 private Logger logger = Logger.getLogger(this.getClass());
29
30 private Boolean validarCriterio = Boolean.FALSE;
31
32 private final Long LOCAL_ITEM_CENTRO_EXPANDIDO = 422L;
33 private final Long LOCAL_ITEM_LESTE = 418L;
34 private final Long LOCAL_ITEM_NORTE = 420L;
35 private final Long LOCAL_ITEM_NOROESTE = 419L;
36 private final Long LOCAL_ITEM_OESTE = 421L;
37 private final Long LOCAL_ITEM_SUDOESTE = 423L;
38 private final Long LOCAL_ITEM_ESTADO = 407L;
39
40
41 private CalcularPrevisaoService calcularPrevisaoService = new CalcularPrevisaoService();
42
43 private ItemEstrtIndResulIettrDao indicadorMetaFisicaDao = null;
44 private CarregaItensCompleto(){}
45
46
47 public CarregaItensCompleto( HttpServletRequest paramRequest, Boolean paramValidarCriterio){
48 super(paramRequest);
49 this.validarCriterio = paramValidarCriterio;
50 }
51
52 public ArrayList<ItemEstruturaIettPPA> execute(ArrayList<String> programa, Long orgao, ArrayList<String> listaCriteriosCom, ArrayList<String> listaCriteriosSem) throws ECARException{
53
54 try{
55
56 final LinhaAcaoComparatorSigla comparadorSigla = new LinhaAcaoComparatorSigla();
57 this.getItensLinhaAcao();
58
59 if ( validarCriterio ){
60 ArrayList<ItemEstruturaIettPPA> list = new ArrayList<ItemEstruturaIettPPA>(itemDao.filtrarItensPorCriterio(itensLinhaAcao, listaCriteriosCom, listaCriteriosSem));
61 Collections.sort(list, comparadorSigla);
62 return list;
63 }else{
64 Collections.sort(itensLinhaAcao, comparadorSigla);
65 return itensLinhaAcao;
66 }
67
68 }catch (Exception e) {
69 e.printStackTrace(System.out);
70 logger.error(e);
71 throw new ECARException("Nao foi possivel filtrar itens por criterio na opcao completo");
72 }
73
74
75 }
76
77 public void initPrevisao(HttpServletRequest paramRequest ){
78 calcularPrevisaoService.setRequest(paramRequest);
79 calcularPrevisaoService.loadExerciciosValidos();
80 }
81
82 public ArrayList<ProdutoBean> generateProdutoPPA (Set produtos){
83
84 ArrayList<ProdutoBean> retorno = new ArrayList<ProdutoBean>();
85 ProdutoBean bean = null;
86 final ItemEstrtIndResultLocalIettirlDao indResultDao = new ItemEstrtIndResultLocalIettirlDao(request);
87 final AcompRealFisicoDao acompDao = new AcompRealFisicoDao(request);
88 indicadorMetaFisicaDao = new ItemEstrtIndResulIettrDao(request);
89
90
91 for (Iterator iter = produtos.iterator(); iter.hasNext();) {
92 ItemEstruturaIettPPA prod = (ItemEstruturaIettPPA) iter.next();
93
94 bean = new ProdutoBean();
95
96 if( prod.getIndAtivoIett()!=null && "S".equalsIgnoreCase( prod.getIndAtivoIett() ) ){
97
98
99
100
101
102
103
104 ArrayList<ItemEstrtIndResulIettr> indicadores = indicadorMetaFisicaDao.getIndicadoresMetaFisicaPPA( prod.getCodIett() );
105
106 bean.setDescricao( prod.getNomeIett() );
107
108 if ( indicadores !=null && (!indicadores.isEmpty()) ){
109
110
111 for (Iterator iterator = indicadores.iterator(); iterator
112 .hasNext();) {
113 ItemEstrtIndResulIettr ind = (ItemEstrtIndResulIettr) iterator.next();
114
115 if ( ind.getIndAtivoIettr()!=null && "S".equalsIgnoreCase(ind.getIndAtivoIettr())) {
116
117 bean.setProduto( ind.getNomeIettir() );
118 if ( ind.getIndAcumulavelIettr()!=null ){
119 if ( "N".equalsIgnoreCase( ind.getIndAcumulavelIettr() ) ){
120
121 List<Double> qtdePrevista = indResultDao.getListQtdePrevistaByLocal(ind.getCodIettir(),LOCAL_ITEM_CENTRO_EXPANDIDO);
122 Double qtdeCentroExpandido = acompDao.getSomaValoresArfs(ind, qtdePrevista );
123 bean.setCentroExpandido( qtdeCentroExpandido );
124
125 List<Double> qtdeLesteList = indResultDao.getListQtdePrevistaByLocal(ind.getCodIettir(),LOCAL_ITEM_LESTE);
126 Double qtdeLeste = acompDao.getSomaValoresArfs(ind, qtdeLesteList );
127 bean.setLeste( qtdeLeste );
128
129 List<Double> qtdeNorteList = indResultDao.getListQtdePrevistaByLocal(ind.getCodIettir(),LOCAL_ITEM_NORTE);
130 Double qtdeNorte = acompDao.getSomaValoresArfs(ind, qtdeNorteList );
131 bean.setNorte( qtdeNorte );
132
133 List<Double> qtdeNoroesteList = indResultDao.getListQtdePrevistaByLocal(ind.getCodIettir(),LOCAL_ITEM_NOROESTE);
134 Double qtdeNoroeste = acompDao.getSomaValoresArfs(ind, qtdeNoroesteList );
135 bean.setNoroeste( qtdeNoroeste );
136
137 List<Double> setOesteList = indResultDao.getListQtdePrevistaByLocal(ind.getCodIettir(),LOCAL_ITEM_OESTE);
138 Double qtdeOeste = acompDao.getSomaValoresArfs(ind, setOesteList );
139 bean.setOeste( qtdeOeste );
140
141 List<Double> setSudoesteList = indResultDao.getListQtdePrevistaByLocal(ind.getCodIettir(),LOCAL_ITEM_SUDOESTE);
142 Double qtdeSudoeste = acompDao.getSomaValoresArfs(ind, setSudoesteList );
143 bean.setSudoeste( qtdeSudoeste );
144
145 List<Double> qtdeEstadoList = indResultDao.getListQtdePrevistaByLocal(ind.getCodIettir(),LOCAL_ITEM_ESTADO);
146 Double qtdeEstado = acompDao.getSomaValoresArfs(ind, qtdeEstadoList );
147 bean.setEstado( qtdeEstado );
148
149 Double qtdeTotal = qtdeCentroExpandido + qtdeLeste + qtdeNorte + qtdeNoroeste + qtdeOeste + qtdeSudoeste + qtdeEstado;
150 bean.setTotal( qtdeTotal );
151
152 }else {
153
154 Double qtdeCentroExpandido = calcularPrevisaoService.calcularPrevisaoByLocal( ind.getCodIettir() , LOCAL_ITEM_CENTRO_EXPANDIDO );
155 bean.setCentroExpandido( qtdeCentroExpandido );
156
157 Double qtdeLeste = calcularPrevisaoService.calcularPrevisaoByLocal( ind.getCodIettir() , LOCAL_ITEM_LESTE );
158 bean.setLeste( qtdeLeste );
159
160 Double qtdeNorte = calcularPrevisaoService.calcularPrevisaoByLocal( ind.getCodIettir() , LOCAL_ITEM_NORTE );
161 bean.setNorte( qtdeNorte );
162
163 Double qtdeNoroeste = calcularPrevisaoService.calcularPrevisaoByLocal( ind.getCodIettir() , LOCAL_ITEM_NOROESTE );
164 bean.setNoroeste( qtdeNoroeste );
165
166 Double qtdeOeste = calcularPrevisaoService.calcularPrevisaoByLocal( ind.getCodIettir() , LOCAL_ITEM_OESTE );
167 bean.setOeste( qtdeOeste );
168
169 Double qtdeSudoeste = calcularPrevisaoService.calcularPrevisaoByLocal( ind.getCodIettir() , LOCAL_ITEM_SUDOESTE );
170 bean.setSudoeste( qtdeSudoeste );
171
172 Double qtdeEstado = calcularPrevisaoService.calcularPrevisaoByLocal( ind.getCodIettir() , LOCAL_ITEM_ESTADO );
173 bean.setEstado( qtdeEstado );
174
175 Double qtdeTotal = qtdeCentroExpandido + qtdeLeste + qtdeNorte + qtdeNoroeste + qtdeOeste + qtdeSudoeste + qtdeEstado;
176 bean.setTotal( qtdeTotal );
177
178 }
179 }else{
180
181 }
182
183 bean.setUnidMedida( ind.getUnidMedidaIettr() );
184
185 }
186
187 }
188
189 }else{
190 bean.setProduto( "" );
191 bean.setUnidMedida( "" );
192 bean.setTotal(0D);
193 bean.setEstado(0D);
194 bean.setLeste(0D);
195 bean.setOeste(0D);
196 bean.setSudoeste(0D);
197 bean.setNoroeste(0D);
198 bean.setLeste(0D);
199 bean.setCentroExpandido(0D);
200
201 }
202
203 retorno.add(bean);
204
205 }
206
207 }
208
209
210
211
212 return retorno;
213 }
214
215
216 public TipoPesquisaRelatorio getTipo() {
217 return validarCriterio?TipoPesquisaRelatorio.TIPO_2:TipoPesquisaRelatorio.TIPO_1;
218 }
219
220 }