relatório

mail@pastecode.io avatar
unknown
java
2 years ago
15 kB
5
Indexable
Never
@SuppressWarnings("deprecation")
	public void planilhaResumo(HttpServletRequest request, HttpServletResponse response) throws ParseException {
		Transacao transacao = new Transacao(AplicacaoUtil.getNomeConexao());
		
		// Define o caminho do arquivo template
		File filePlanilhaSemanal = new File(AplicacaoUtil.getServletContext().getRealPath("modelo" + File.separator + "Planilha Ciclos modelo.xls"));
		
		Integer ano = Integer.parseInt(request.getParameter("ano"));
		
		List<Long> idsMunicipio = new ArrayList<Long>();
		
		NQuadraVisitada nQuadraVisitada = new NQuadraVisitada();
		nQuadraVisitada.setTransacao(transacao);
		NMunicipio nMunicipio = new NMunicipio();
		nMunicipio.setTransacao(transacao);
		NUsuarioMunicipio nUsuariosMunicipio = new NUsuarioMunicipio();
		nUsuariosMunicipio.setTransacao(transacao);
		
		try {
			transacao.abrirTransacao();
			
			// Busca somente os municipios que o usuario logado pode ver
			if (!AutenticacaoUtil.getPermissaoConsulta("acessoTodosMunicipios")) {
				//listaMunicipios = nMunicipio.consultarMunicipiosEstado("GO");
				List<UsuarioMunicipio> registros = nUsuariosMunicipio.listar(AplicacaoUtil.getSigla(), null, Long.parseLong(AutenticacaoUtil.getAutenticacao().getIdUsuario()));
				if (registros != null) {
					for (int i = 0; i < registros.size(); i++) {
						Municipio municipio = new Municipio();
						municipio = registros.get(i).getMunicipio();
						idsMunicipio.add(municipio.getId());
					}
				}
			}
			
			InputStream entrada = new FileInputStream(filePlanilhaSemanal);
			HSSFWorkbook arquivo = new HSSFWorkbook(entrada);
			HSSFSheet planilha = arquivo.getSheet("PLANILHA CONSOLIDADA CICLOS");
			
			HSSFCellStyle cellStyle = arquivo.createCellStyle();
			cellStyle.setDataFormat(arquivo.createDataFormat().getFormat("0.00%"));
			
			int linha = 0;
			int coluna = 0;
			
//			planilha.createRow(linha);
//			planilha.getRow(linha).createCell(coluna).setCellValue("COD. IBGE");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("MUNICÍPIO");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Marque com um \"X\" somente quando o município NÃO for infestado pelo Aedes aegypti");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Nº de imóveis RG (última atualização): (número de imóveis elegíveis para as ações de controle vetorial da dengue)");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Data da última atualização do RG");
//			coluna++;
//			
//			planilha.getRow(linha).createCell(coluna).setCellValue("Ciclo 1");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Data Início");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Data Final");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Número de Imóveis visitados: (Todos os imóveis visitados incluindo pendências)");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Número de imóveis trabalhados: (imóveis vistoriados, excluir pendências)");
//			coluna++;
//			
//			planilha.getRow(linha).createCell(coluna).setCellValue("Ciclo 2");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Data Início");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Data Final");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Número de Imóveis visitados: (Todos os imóveis visitados incluindo pendências)");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Número de imóveis trabalhados: (imóveis vistoriados, excluir pendências)");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Ciclo 3");
//			coluna++;
//			
//			planilha.getRow(linha).createCell(coluna).setCellValue("Data Início");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Data Final");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Número de Imóveis visitados: (Todos os imóveis visitados incluindo pendências)");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Número de imóveis trabalhados: (imóveis vistoriados, excluir pendências)");
//			coluna++;
//			
//			planilha.getRow(linha).createCell(coluna).setCellValue("Ciclo 4");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Data Início");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Data Final");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Número de Imóveis visitados: (Todos os imóveis visitados incluindo pendências)");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Número de imóveis trabalhados: (imóveis vistoriados, excluir pendências)");
//			coluna++;
//			
//			planilha.getRow(linha).createCell(coluna).setCellValue("Ciclo 5");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Data Início");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Data Final");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Número de Imóveis visitados: (Todos os imóveis visitados incluindo pendências)");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Número de imóveis trabalhados: (imóveis vistoriados, excluir pendências)");
//			coluna++;
//			
//			planilha.getRow(linha).createCell(coluna).setCellValue("Ciclo 6");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Data Início");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Data Final");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Número de Imóveis visitados: (Todos os imóveis visitados incluindo pendências)");
//			coluna++;
//			planilha.getRow(linha).createCell(coluna).setCellValue("Número de imóveis trabalhados: (imóveis vistoriados, excluir pendências)");
			
			// MONTANDO REGISTRO
			List<Map<String, Object>> listaTotais = nQuadraVisitada.getQuantidadesImoveisDataAlteracao(ano);
			for (Map<String, Object> totalImoveisMunicipio : listaTotais) {
				linha++;
				coluna = 0;
				
				planilha.createRow(linha);
				planilha.getRow(linha).createCell(coluna).setCellValue((totalImoveisMunicipio.get("codibge") != null) ? (String)totalImoveisMunicipio.get("codibge") : "");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue((totalImoveisMunicipio.get("nome") != null) ? (String)totalImoveisMunicipio.get("nome") : "");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue("");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue((totalImoveisMunicipio.get("totalImoveis") != null) ? (Double)totalImoveisMunicipio.get("totalImoveis") : 0);
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue((totalImoveisMunicipio.get("dataAlteracao") != null) ? DataUtil.formatar((Date) totalImoveisMunicipio.get("dataAlteracao"), "dd/MM/yyyy") : "");
			}
			
			//MONTANDO PRIMEIRO CICLO
			List<Map<String, Object>> listaPrimeiroCiclo = nQuadraVisitada.getPrimeiroCiclo(ano);
			linha = 0;
			for (Map<String, Object> totalPrimeiroCiclo : listaPrimeiroCiclo) {
				linha++;
				coluna = 5;
				
				planilha.getRow(linha).createCell(coluna).setCellValue("1º CICLO");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue(totalPrimeiroCiclo.get("dataInicioPrimeiroCiclo") != null ? DataUtil.formatar((Date) totalPrimeiroCiclo.get("dataInicioPrimeiroCiclo"), "dd/MM/yyyy") : "");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue(totalPrimeiroCiclo.get("dataFinalPrimeiroCiclo") != null ? DataUtil.formatar((Date) totalPrimeiroCiclo.get("dataFinalPrimeiroCiclo"), "dd/MM/yyyy") : "");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue((totalPrimeiroCiclo.get("qtdeVisitadosPrimeiroCiclo") != null) ? (Double)totalPrimeiroCiclo.get("qtdeVisitadosPrimeiroCiclo") : 0);
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue((totalPrimeiroCiclo.get("qtdeTrabalhadosPrimeiroCiclo") != null) ? (Double)totalPrimeiroCiclo.get("qtdeTrabalhadosPrimeiroCiclo") : 0);
			}
			
			//MONTANDO SEGUNDO CICLO
			List<Map<String, Object>> listaSegundoCiclo = nQuadraVisitada.getSegundoCiclo(ano);
			linha = 0;
			for (Map<String, Object> totalSegundoCiclo : listaSegundoCiclo) {
				linha++;
				coluna = 10;
				
				planilha.getRow(linha).createCell(coluna).setCellValue("2º CICLO");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue(totalSegundoCiclo.get("dataInicioSegundoCiclo") != null ? DataUtil.formatar((Date) totalSegundoCiclo.get("dataInicioSegundoCiclo"), "dd/MM/yyyy") : "");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue(totalSegundoCiclo.get("dataFinalSegundoCiclo") != null ? DataUtil.formatar((Date) totalSegundoCiclo.get("dataFinalSegundoCiclo"), "dd/MM/yyyy") : "");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue((totalSegundoCiclo.get("qtdeVisitadosSegundoCiclo") != null) ? (Double)totalSegundoCiclo.get("qtdeVisitadosSegundoCiclo") : 0);
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue((totalSegundoCiclo.get("qtdeTrabalhadosSegundoCiclo") != null) ? (Double)totalSegundoCiclo.get("qtdeTrabalhadosSegundoCiclo") : 0);
			}
			
			//MONTANDO TERCEIRO CICLO
			List<Map<String, Object>> listaTerceiroCiclo = nQuadraVisitada.getTerceiroCiclo(ano);
			linha = 0;
			for (Map<String, Object> totalTerceiroCiclo : listaTerceiroCiclo) {
				linha++;
				coluna = 15;
				
				planilha.getRow(linha).createCell(coluna).setCellValue("3º CICLO");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue(totalTerceiroCiclo.get("dataInicioTerceiroCiclo") != null ? DataUtil.formatar((Date) totalTerceiroCiclo.get("dataInicioTerceiroCiclo"), "dd/MM/yyyy") : "");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue(totalTerceiroCiclo.get("dataFinalTerceiroCiclo") != null ? DataUtil.formatar((Date) totalTerceiroCiclo.get("dataFinalTerceiroCiclo"), "dd/MM/yyyy") : "");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue((totalTerceiroCiclo.get("qtdeVisitadosTerceiroCiclo") != null) ? (Double)totalTerceiroCiclo.get("qtdeVisitadosTerceiroCiclo") : 0);
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue((totalTerceiroCiclo.get("qtdeTrabalhadosTerceiroCiclo") != null) ? (Double)totalTerceiroCiclo.get("qtdeTrabalhadosTerceiroCiclo") : 0);
			}
			
			//MONTANDO QUARTO CICLO
			List<Map<String, Object>> listaQuartoCiclo = nQuadraVisitada.getQuartoCiclo(ano);
			linha = 0;
			for (Map<String, Object> totalQuartoCiclo : listaQuartoCiclo) {
				linha++;
				coluna = 20;
				
				planilha.getRow(linha).createCell(coluna).setCellValue("4º CICLO");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue(totalQuartoCiclo.get("dataInicioQuartoCiclo") != null ? DataUtil.formatar((Date) totalQuartoCiclo.get("dataInicioQuartoCiclo"), "dd/MM/yyyy") : "");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue(totalQuartoCiclo.get("dataFinalQuartoCiclo") != null ? DataUtil.formatar((Date) totalQuartoCiclo.get("dataFinalQuartoCiclo"), "dd/MM/yyyy") : "");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue((totalQuartoCiclo.get("qtdeVisitadosQuartoCiclo") != null) ? (Double)totalQuartoCiclo.get("qtdeVisitadosQuartoCiclo") : 0);
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue((totalQuartoCiclo.get("qtdeTrabalhadosQuartoCiclo") != null) ? (Double)totalQuartoCiclo.get("qtdeTrabalhadosQuartoCiclo") : 0);
			}
			
			//MONTANDO QUINTO CICLO
			List<Map<String, Object>> listaQuintoCiclo = nQuadraVisitada.getQuintoCiclo(ano);
			linha = 0;
			for (Map<String, Object> totalQuintoCiclo : listaQuintoCiclo) {
				linha++;
				coluna = 25;
				
				planilha.getRow(linha).createCell(coluna).setCellValue("5º CICLO");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue(totalQuintoCiclo.get("dataInicioQuintoCiclo") != null ? DataUtil.formatar((Date) totalQuintoCiclo.get("dataInicioQuintoCiclo"), "dd/MM/yyyy") : "");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue(totalQuintoCiclo.get("dataFinalQuintoCiclo") != null ? DataUtil.formatar((Date) totalQuintoCiclo.get("dataFinalQuintoCiclo"), "dd/MM/yyyy") : "");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue((totalQuintoCiclo.get("qtdeVisitadosQuintoCiclo") != null) ? (Double)totalQuintoCiclo.get("qtdeVisitadosQuintoCiclo") : 0);
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue((totalQuintoCiclo.get("qtdeTrabalhadosQuintoCiclo") != null) ? (Double)totalQuintoCiclo.get("qtdeTrabalhadosQuintoCiclo") : 0);
			}
			
			//MONTANDO SEXTO CICLO
			List<Map<String, Object>> listaSextoCiclo = nQuadraVisitada.getSextoCiclo(ano);
			linha = 0;
			for (Map<String, Object> totalSextoCiclo : listaSextoCiclo) {
				linha++;
				coluna = 30;
				
				planilha.getRow(linha).createCell(coluna).setCellValue("6º CICLO");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue(totalSextoCiclo.get("dataInicioSextoCiclo") != null ? DataUtil.formatar((Date) totalSextoCiclo.get("dataInicioSextoCiclo"), "dd/MM/yyyy") : "");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue(totalSextoCiclo.get("dataFinalSextoCiclo") != null ? DataUtil.formatar((Date) totalSextoCiclo.get("dataFinalSextoCiclo"), "dd/MM/yyyy") : "");
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue((totalSextoCiclo.get("qtdeVisitadosSextoCiclo") != null) ? (Double)totalSextoCiclo.get("qtdeVisitadosSextoCiclo") : 0);
				coluna++;
				planilha.getRow(linha).createCell(coluna).setCellValue((totalSextoCiclo.get("qtdeTrabalhadosSextoCiclo") != null) ? (Double)totalSextoCiclo.get("qtdeTrabalhadosSextoCiclo") : 0);
			}
			
			String fileName = "PlanilhaCiclos - " + ano + ".xls";
			response.setContentType("application/excel");
			response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
			// grava no stream de saída atachado
			try ( ServletOutputStream out = response.getOutputStream() ){
				arquivo.write(out);
			} catch (IOException e) {
				e.printStackTrace();
			}
			
			transacao.fecharTransacao();
		} catch (TransacaoException | ConsultarException e) {
			e.printStackTrace();
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} finally {
			TransacaoUtil.cancelarTransacaoSeAberta(transacao);
		}
	}