List of usage examples for org.hibernate SQLQuery addScalar
SQLQuery<T> addScalar(String columnAlias, Type type);
From source file:eu.europa.ec.fisheries.uvms.spatial.service.dao.PostgresUtilsDao.java
License:Open Source License
@Override public MultiPoint generatePoints(String wkt, Integer numberOfPoints) { Query nativeQuery = em.createNativeQuery("SELECT ST_GeneratePoints(ST_GeomFromText(:wkt), :nbrPoints);"); nativeQuery.setParameter("wkt", wkt); nativeQuery.setParameter("nbrPoints", numberOfPoints); SQLQuery unwrap = nativeQuery.unwrap(SQLQuery.class); unwrap.addScalar("st_generatepoints", GeometryType.INSTANCE); Object singleResult = nativeQuery.getSingleResult(); Geometry geometry = (Geometry) singleResult; return (MultiPoint) geometry; }
From source file:gcom.atendimentopublico.RepositorioAtendimentoPublicoHBM.java
License:Open Source License
/** * [UC1177] Gerar Relatrio de Ordens de Servio por Situao * /*from w w w . j a v a 2s . c o m*/ * O segundo parmetro (boletimGerado) um booleano que * indica se para um dado grupo de cobrana e um ms referencia * foi gerado um boletim de medio. * * @author Diogo Peixoto * @date 09/06/2011 * * @param FiltrarRelatorioOSSituacaoHelper * @param boletimGerado * @return Collection<FiltrarRelatorioOSSituacaoHelper> * @throws ErroRepositorioException */ public Collection<Object[]> filtrarRelatorioOSSituacao(FiltrarRelatorioOSSituacaoHelper helper, boolean boletimGerado) throws ErroRepositorioException { Collection<Object[]> relatorios = new ArrayList<Object[]>(); /* * Esse mtodo pesquisa as ordens de servio por situao. O helper do parmetro * possui a situao da os com os seguintes valores: * * 1 Descontadas * 2 Encerradas * 3 Executadas * 4 Fiscalizadas * 5 Justificadas * 6 Penalizadas por Fiscalizao * 7 Penalizadas por Decurso de Prazo * 8 Todas * 9 Encerradas com Execuo * 10 Encerradas por Decurso de Prazo * 11 Pendentes * 12 Fiscalizadas Boletim No Gerado * 13 Todas Boletim No Gerado * */ Session session = HibernateUtil.getSession(); String consulta = ""; Map<String, Object> parameters = new HashMap<String, Object>(); StringBuilder sb = new StringBuilder(); StringBuilder sbParametrosOpcionais = new StringBuilder(); String clausulaWhere = ""; String groupBy = ""; String orderBy = ""; try { if (!helper.getSituacaoOS().equals("2") && !helper.getSituacaoOS().equals("4") && !helper.getSituacaoOS().equals("8") && !helper.getSituacaoOS().equals("13")) { sb.append(this.filtrarRelatorioOSSituacaoSelect(helper, boletimGerado, false, null)); sb.append("FROM atendimentopublico.ordem_servico orse "); } //Descontadas if (helper.getSituacaoOS().equals("1")) { sb.append(this.filtrarRelatorioOSSituacaoDescontadas()); parameters.put("situacaoOS", "DESCONTADAS"); //Executadas } else if (helper.getSituacaoOS().equals("3")) { sb.append(this.filtrarRelatorioOSSituacaoExecutadas()); parameters.put("situacaoOS", "EXECUTADAS"); //Justificadas } else if (helper.getSituacaoOS().equals("5")) { sb.append(this.filtrarRelatorioOSSituacaoJustificadas()); parameters.put("situacaoOS", "JUSTIFICADAS"); //Penalizadas por fiscalizao } else if (helper.getSituacaoOS().equals("6")) { sb.append(this.filtrarRelatorioOSSituacaoPenalizadaFiscalizacao()); parameters.put("situacaoOS", "PENALIZADAS POR FISCALIZAO"); //Penalizadas por Decurso de Prazo } else if (helper.getSituacaoOS().equals("7")) { sb.append(this.filtrarRelatorioOSSituacaoPenalizadaDecursoPrazo()); parameters.put("situacaoOS", "PENALIZADAS POR DECURSO DE PRAZO"); //Encerradas com Execuo } else if (helper.getSituacaoOS().equals("9")) { sb.append(this.filtrarRelatorioOSSituacaoBoletimNaoGerado()); clausulaWhere += " AND orse.orse_cdsituacao = 2 AND orse.amen_id != 32 AND encmt.amen_icexecucao = 1 "; parameters.put("situacaoOS", "ENCERRADAS COM EXECUO"); //Pendentes } else if (helper.getSituacaoOS().equals("11")) { sb.append(this.filtrarRelatorioOSSituacaoBoletimNaoGerado()); clausulaWhere += " AND orse.orse_cdsituacao = 1 "; parameters.put("situacaoOS", "PENDENTES"); //Fiscalizadas Boletim No Gerado } else if (helper.getSituacaoOS().equals("12")) { sb.append(this.filtrarRelatorioOSSituacaoBoletimNaoGerado()); sb.append( "INNER JOIN atendimentopublico.ordem_servico orseRef ON orseRef.orse_idreferencia = orse.orse_id "); parameters.put("situacaoOS", "FISCALIZADAS"); //Encerradas com decurso de prazo } else if (helper.getSituacaoOS().equals("10")) { sb.append(this.filtrarRelatorioOSSituacaoBoletimNaoGerado()); clausulaWhere += " AND orse.orse_cdsituacao = 2 AND orse.amen_id = 32 "; parameters.put("situacaoOS", "ENCERRADAS COM DECURSO DE PRAZO"); } if (helper.getOpcaoOSCobranca() != null && helper.getOpcaoOSCobranca().equalsIgnoreCase("naoCobradasAutomaticamente")) { sbParametrosOpcionais.append( "INNER JOIN atendimentopublico.fiscaliz_sit_serv_a_cob fiscACobrar ON orse.fzst_id = fiscACobrar.fzst_id "); clausulaWhere += " AND NOT EXISTS (SELECT dbtCo.imov_id "; clausulaWhere += "FROM faturamento.debito_a_cobrar dbtCo "; clausulaWhere += "WHERE dbtCo.imov_id = orse.imov_id AND dbtCo.dbtp_id = fiscACobrar.dbtp_id AND dbtCo.dbac_tmatudebito = orse.orse_tmencerramento) "; clausulaWhere += " AND NOT EXISTS (SELECT dbtHist.imov_id "; clausulaWhere += " FROM faturamento.deb_a_cobrar_hist dbtHist "; clausulaWhere += " WHERE dbtHist.imov_id = orse.imov_id AND dbtHist.dbtp_id = fiscACobrar.dbtp_id AND dbtHist.dahi_tmatudebito = orse.orse_tmencerramento) "; } if (helper.getServicoTipo() != null) { clausulaWhere += " AND orse.svtp_id = :servicoTipo "; parameters.put("servicoTipo", helper.getServicoTipo().getId()); } boolean existeLocalidade; existeLocalidade = (helper.getLocalidade() != null ? existeLocalidade = true : false); // Localidade if (existeLocalidade) { sbParametrosOpcionais.append("INNER JOIN cadastro.localidade loca ON loca.loca_id = imov.loca_id "); clausulaWhere += " AND loca.loca_id = :idLocalidade "; parameters.put("idLocalidade", helper.getLocalidade().getId()); } if (helper.getEloPolo() != null) { // Elo Polo if (!existeLocalidade) { sbParametrosOpcionais .append("INNER JOIN cadastro.localidade loca ON loca.loca_id = imov.loca_id "); existeLocalidade = true; } clausulaWhere += " AND loca.loca_cdelo = :idEloPolo "; parameters.put("idEloPolo", helper.getEloPolo().getId()); } // Gerncia Regional GerenciaRegional gerencia = helper.getGerenciaRegional(); if (gerencia != null) { if (existeLocalidade) { sbParametrosOpcionais .append("INNER JOIN cadastro.gerencia_regional ger ON ger.greg_id = loca.greg_id "); } else { sbParametrosOpcionais .append("INNER JOIN cadastro.localidade loca ON loca.loca_id = imov.loca_id "); sbParametrosOpcionais .append("INNER JOIN cadastro.gerencia_regional ger ON ger.greg_id = loca.greg_id "); existeLocalidade = true; } clausulaWhere += " AND ger.greg_id = :idGerencia "; parameters.put("idGerencia", gerencia.getId()); } // Unidade Negcio UnidadeNegocio unidade = helper.getUnidadeNegocio(); if (unidade != null) { if (existeLocalidade) { sbParametrosOpcionais .append("INNER JOIN cadastro.unidade_negocio uni ON uni.uneg_id = loca.uneg_id "); } else { sbParametrosOpcionais .append("INNER JOIN cadastro.localidade loca ON loca.loca_id = imov.loca_id "); sbParametrosOpcionais .append("INNER JOIN cadastro.unidade_negocio uni ON uni.uneg_id = loca.uneg_id "); } clausulaWhere += " AND uni.uneg_id = :idUnidade "; parameters.put("idUnidade", unidade.getId()); } // Setor Comercial if (helper.getSetorComercial() != null) { sbParametrosOpcionais .append("INNER JOIN cadastro.setor_comercial setor ON setor.stcm_id = imov.stcm_id "); clausulaWhere += " AND setor.stcm_id = :idSetor "; parameters.put("idSetor", helper.getSetorComercial().getId()); } // Quadra if (helper.getQuadra() != null) { sbParametrosOpcionais.append("INNER JOIN cadastro.quadra quadra ON quadra.qdra_id = imov.qdra_id "); clausulaWhere += " AND quadra.qdra_id = :idQuadra "; parameters.put("idQuadra", helper.getQuadra().getId()); } if (helper.getSituacaoOS().equals("2")) { if (helper.getOpcaoRelatorio().equals("1")) { sb.append("SELECT DISTINCT aux.numeroOS, "); sb.append("aux.matriculaImovel, "); sb.append("aux.tipoServico, "); sb.append("aux.dataEncerramento, "); sb.append("aux.naoCobrada, "); sb.append("aux.valorConsumoFraudado, "); sb.append("aux.valorMulta, "); sb.append("aux.motivoEncerramento, "); sb.append("aux.retornoFiscalizacao, "); sb.append("aux.parecerEncerramento, "); sb.append("aux.situacaoOS "); } else if (helper.getOpcaoRelatorio().equals("2")) { sb.append("SELECT DISTINCT aux.tipoServico, "); sb.append("aux.motivoEncerramento, "); sb.append("aux.retornoFiscalizacao, "); sb.append("aux.situacaoOS AS situacaoOS, "); sb.append("SUM(aux.quantidade) AS quantidade "); } sb.append("FROM ("); sb.append(this.filtrarRelatorioOSSituacaoSelect(helper, boletimGerado, true, null)); sb.append("FROM atendimentopublico.ordem_servico orse "); sb.append(this.filtrarRelatorioOSSituacaoExecutadas()); sb.append(sbParametrosOpcionais.toString()); if (!clausulaWhere.trim().equals("")) { sb.append(" WHERE "); clausulaWhere = clausulaWhere.replaceFirst("AND", ""); sb.append(clausulaWhere); } sb.append(" UNION ALL "); sb.append(this.filtrarRelatorioOSSituacaoSelect(helper, boletimGerado, true, null)); sb.append("FROM atendimentopublico.ordem_servico orse "); sb.append(this.filtrarRelatorioOSSituacaoJustificadas()); sb.append(sbParametrosOpcionais.toString()); if (!clausulaWhere.trim().equals("")) { sb.append(" WHERE "); clausulaWhere = clausulaWhere.replaceFirst("AND", ""); sb.append(clausulaWhere); } sb.append(") aux"); parameters.put("situacaoOS", "ENCERRADAS"); } else if (helper.getSituacaoOS().equals("4")) { sb.append(this.filtrarRelatorioOSSituacaoSelect(helper, boletimGerado, false, null)); sb.append("FROM atendimentopublico.ordem_servico orse "); sb.append(this.filtrarRelatorioOSSituacaoFiscalizadas(helper, boletimGerado, sbParametrosOpcionais.toString(), clausulaWhere)); parameters.put("situacaoOS", "FISCALIZADAS"); } else if (helper.getSituacaoOS().equals("8") || helper.getSituacaoOS().equals("13")) { sb.append(this.filtrarRelatorioOSSituacaoTodas(helper, boletimGerado, sbParametrosOpcionais.toString(), clausulaWhere)); } else { sb.append(sbParametrosOpcionais.toString()); } if (!clausulaWhere.equals("") && !helper.getSituacaoOS().equals("2") && !helper.getSituacaoOS().equals("4") && !helper.getSituacaoOS().equals("8") && !helper.getSituacaoOS().equals("13")) { /* * Este trecho do cdigo retira o primeiro AND da clusula where e adiciona espao em branco * na ltima comparao para no dar erro na query. * Ex: 'WHERE AND os.orse_id' => 'WHERE os.orse_id ' */ sb.append("WHERE "); clausulaWhere = clausulaWhere.trim(); clausulaWhere = clausulaWhere.replaceFirst("AND", ""); clausulaWhere += " "; sb.append(clausulaWhere); } //Caso seja o relatrio sinttico if (helper.getOpcaoRelatorio().equals("2") && !helper.getSituacaoOS().equals("8") && !helper.getSituacaoOS().equals("13")) { groupBy += " GROUP BY tipoServico, motivoEncerramento, retornoFiscalizacao, situacaoOS "; orderBy += " ORDER BY tipoServico, motivoEncerramento, retornoFiscalizacao "; if (!helper.getSituacaoOS().equals("2")) { sb.append(") temp"); } } sb.append(groupBy); sb.append(orderBy); consulta = sb.toString(); SQLQuery sqlQuery = session.createSQLQuery(consulta); sqlQuery.setInteger("amReferencia", helper.getDataReferencia()); sqlQuery.setInteger("cobrancaGrupoID", helper.getIdGrupoCobranca()); if (helper.getOpcaoRelatorio().equalsIgnoreCase("1")) { sqlQuery = sqlQuery.addScalar("numeroOS", Hibernate.INTEGER) .addScalar("matriculaImovel", Hibernate.INTEGER).addScalar("tipoServico", Hibernate.STRING) .addScalar("dataEncerramento", Hibernate.DATE).addScalar("naoCobrada", Hibernate.STRING) .addScalar("valorConsumoFraudado", Hibernate.BIG_DECIMAL) .addScalar("valorMulta", Hibernate.BIG_DECIMAL) .addScalar("motivoEncerramento", Hibernate.STRING) .addScalar("retornoFiscalizacao", Hibernate.STRING) .addScalar("parecerEncerramento", Hibernate.STRING) .addScalar("situacaoOS", Hibernate.STRING); } else { sqlQuery = sqlQuery.addScalar("tipoServico", Hibernate.STRING) .addScalar("motivoEncerramento", Hibernate.STRING) .addScalar("retornoFiscalizacao", Hibernate.STRING) .addScalar("situacaoOS", Hibernate.STRING).addScalar("quantidade", Hibernate.INTEGER); } //ITERA OS PARAMETROS E COLOCA // OS MESMOS NA QUERY Set<String> set = parameters.keySet(); Iterator<String> iterMap = set.iterator(); while (iterMap.hasNext()) { String key = iterMap.next(); sqlQuery.setParameter(key, parameters.get(key)); } relatorios = sqlQuery.list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return relatorios; }
From source file:gcom.atendimentopublico.RepositorioAtendimentoPublicoHBM.java
License:Open Source License
/** * [UC1178] Gerar Relatrio de Acompanhamento dos Boletins de Medio * /*from w w w. j a v a 2 s . c o m*/ * O segundo parmetro (relatorioDefinitivo) um booleano que * indica se o relatrio definitivo ou no, pois o resultado * da query diferente para os relatrios definitivos e os * no-definitivos * * @author Diogo Peixoto * @date 26/07/2011 * * @param FiltrarRelatorioAcompanhamentoBoletimMedicaoHelper * @param relatorioDefinitivo * @return Collection<Object[]> * @throws ErroRepositorioException */ public Collection<Object[]> filtrarRelatorioAcompanhamentoBoletimMedicao( FiltrarRelatorioAcompanhamentoBoletimMedicaoHelper filtro, boolean relatorioDefinitivo) throws ErroRepositorioException { Collection<Object[]> relatorios = new ArrayList<Object[]>(); Session session = HibernateUtil.getSession(); StringBuilder sb = new StringBuilder(); try { sb.append("SELECT itensServico.idItemServico, ");//0 - ID Item Servio sb.append("itensServico.descricaoServico, ");//1 - Descrio Item Servio sb.append("itensServico.quantidadeOrcada, ");//2 - Quantidade Orada sb.append("itensServico.valorUnitario, ");//3 - Valor Unitrio sb.append("sum(itensServico.quantidade) as quantidadeItem, ");//4 - Quantidade do Item sb.append("(itensServico.valorUnitario * sum(itensServico.quantidade)) as valorItem, ");//5 - Valor Item sb.append("itensServico.unidadeItem, ");//6 - Unidade do Item sb.append("itensServico.valorOrcado, ");//7 - Valor Orcado sb.append("sum(itensServico.valorMedidoPeriodo) AS valorMedidoPeriodo ");//8 - Valor medido no perodo sb.append("FROM (SELECT "); sb.append("itse.itse_id AS idItemServico, "); sb.append("itse.itse_dsitemservico AS descricaoServico, "); sb.append("itsc.itsc_qtorcadaitemservico AS quantidadeOrcada, "); sb.append("1 AS quantidade, "); sb.append("itsc.itsc_vlitemservcontr AS valorUnitario, "); sb.append("(CASE WHEN itse.itse_cdconstantecalculo IN (3, 7, 9, 11, 13, 4, 8, 10, 12, 14) THEN 'UND' "); sb.append("WHEN itse.itse_cdconstantecalculo IN (15, 16, 17) THEN 'M2' "); sb.append("ELSE '' END) AS unidadeItem, "); sb.append("itsc.itsc_vlorcadoitemservico AS valorOrcado, "); sb.append("cbex.cbex_vlservico AS valorMedidoPeriodo "); sb.append("FROM cobranca.cobr_boletim_exec cbex "); sb.append( "INNER JOIN cobranca.cobr_boletim_medicao cobm ON (cbex.cobm_id = cobm.cobm_id AND cobm.cobm_amreferencia = :amReferencia) "); sb.append( "INNER JOIN micromedicao.contrato_empresa_servico cese ON (cobm.cese_id = cese.cese_id AND cese.cese_id = :idContrato) "); sb.append("INNER JOIN atendimentopublico.ordem_servico orse ON (cbex.orse_id = orse.orse_id) "); sb.append( "INNER JOIN micromedicao.item_servico_contrato itsc ON (cese.cese_id = itsc.cese_id AND orse.svtp_id = itsc.svtp_id) "); sb.append("INNER JOIN micromedicao.item_servico itse ON (itsc.itse_id = itse.itse_id) "); sb.append( "LEFT OUTER JOIN atendimentopublico.ordem_servico_boletim orbo ON (cbex.orse_id = orbo.orse_id) "); sb.append("WHERE (itse.itse_cdconstantecalculo IN (2,6) AND orbo.orbo_icpavimento = 3) "); sb.append("OR (itse.itse_cdconstantecalculo IN (3,7,9,11,13) AND orbo.orbo_icpavimento = 2) "); sb.append("OR (itse.itse_cdconstantecalculo IN (4,8,10,12,14) AND orbo.orbo_icpavimento = 1) "); sb.append("OR (itse.itse_cdconstantecalculo IN (1,5) OR itse.itse_cdconstantecalculo > 14) "); sb.append("ORDER BY idItemServico) itensServico "); sb.append( "GROUP BY idItemServico, descricaoServico, quantidadeOrcada, valorUnitario, unidadeItem, valorOrcado "); sb.append("ORDER BY idItemServico "); SQLQuery sqlQuery = session.createSQLQuery(sb.toString()); sqlQuery = sqlQuery.addScalar("idItemServico", Hibernate.INTEGER) .addScalar("descricaoServico", Hibernate.STRING) .addScalar("quantidadeOrcada", Hibernate.BIG_DECIMAL) .addScalar("valorUnitario", Hibernate.BIG_DECIMAL) .addScalar("quantidadeItem", Hibernate.INTEGER).addScalar("valorItem", Hibernate.BIG_DECIMAL) .addScalar("unidadeItem", Hibernate.STRING).addScalar("valorOrcado", Hibernate.BIG_DECIMAL) .addScalar("valorMedidoPeriodo", Hibernate.BIG_DECIMAL); sqlQuery.setInteger("idContrato", filtro.getIdContratoEmpresaServico()); sqlQuery.setInteger("amReferencia", filtro.getMesAnoReferencia()); relatorios = sqlQuery.list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return relatorios; }
From source file:gcom.atendimentopublico.RepositorioAtendimentoPublicoHBM.java
License:Open Source License
/** * [UC1178] Gerar Relatrio de Acompanhamento dos Boletins de Medio * /* w w w .j a v a 2 s .c o m*/ * Mtodo que vai retornar as quantidades acumuladas e os valores acumulados * no perodo para gerao do relatrio de acompanhamento do boletim de medio. * * @author Diogo Peixoto * @date 01/08/2011 * * @param FiltrarRelatorioAcompanhamentoBoletimMedicaoHelper * @param relatorioDefinitivo * @return Collection<Object[]> * @throws ErroRepositorioException */ public Collection<Object[]> filtrarRelatorioAcompanhamentoBoletimMedicaoAcumuladas( FiltrarRelatorioAcompanhamentoBoletimMedicaoHelper filtro) throws ErroRepositorioException { Collection<Object[]> relatorios = new ArrayList<Object[]>(); Session session = HibernateUtil.getSession(); StringBuilder sb = new StringBuilder(); try { sb.append("SELECT itensServico.idItemServico, ");//0 - ID Item Servio sb.append("itensServico.descricaoServico, ");//1 - Descrio Item Servio sb.append("sum(itensServico.quantidade) as quantidadeAcumuladaPeriodo, ");//2 - Quantidade Acumulada Perodo sb.append("sum(itensServico.valorMedidoPeriodo) AS valorAcumuladoPeriodo ");//3 - Valor Acumulado Perodo sb.append("FROM (SELECT "); sb.append("itse.itse_id AS idItemServico, "); sb.append("itse.itse_dsitemservico AS descricaoServico, "); sb.append("1 AS quantidade, "); sb.append("cbex.cbex_vlservico AS valorMedidoPeriodo "); sb.append("FROM cobranca.cobr_boletim_exec cbex "); sb.append("INNER JOIN cobranca.cobr_boletim_medicao cobm ON (cbex.cobm_id = cobm.cobm_id) "); sb.append( "INNER JOIN micromedicao.contrato_empresa_servico cese ON (cobm.cese_id = cese.cese_id AND cese.cese_id = :idContrato) "); sb.append("INNER JOIN atendimentopublico.ordem_servico orse ON (cbex.orse_id = orse.orse_id) "); sb.append( "INNER JOIN micromedicao.item_servico_contrato itsc ON (cese.cese_id = itsc.cese_id AND orse.svtp_id = itsc.svtp_id) "); sb.append("INNER JOIN micromedicao.item_servico itse ON (itsc.itse_id = itse.itse_id) "); sb.append( "LEFT OUTER JOIN atendimentopublico.ordem_servico_boletim orbo ON (cbex.orse_id = orbo.orse_id) "); sb.append("WHERE (itse.itse_cdconstantecalculo IN (2,6) AND orbo.orbo_icpavimento = 3) "); sb.append("OR (itse.itse_cdconstantecalculo IN (3,7,9,11,13) AND orbo.orbo_icpavimento = 2) "); sb.append("OR (itse.itse_cdconstantecalculo IN (4,8,10,12,14) AND orbo.orbo_icpavimento = 1) "); sb.append("OR (itse.itse_cdconstantecalculo IN (1,5) OR itse.itse_cdconstantecalculo > 14) "); sb.append("ORDER BY idItemServico) itensServico "); sb.append("GROUP BY idItemServico, descricaoServico "); sb.append("ORDER BY idItemServico "); SQLQuery sqlQuery = session.createSQLQuery(sb.toString()); sqlQuery = sqlQuery.addScalar("idItemServico", Hibernate.INTEGER) .addScalar("descricaoServico", Hibernate.STRING) .addScalar("quantidadeAcumuladaPeriodo", Hibernate.INTEGER) .addScalar("valorAcumuladoPeriodo", Hibernate.BIG_DECIMAL); sqlQuery.setInteger("idContrato", filtro.getIdContratoEmpresaServico()); relatorios = sqlQuery.list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return relatorios; }
From source file:gcom.atendimentopublico.RepositorioAtendimentoPublicoHBM.java
License:Open Source License
private Collection<BigDecimal> filtrarRelatorioAcompanhamentoBoletimMedicaoPenalidadesOSFiscalizacao( FiltrarRelatorioAcompanhamentoBoletimMedicaoHelper filtro) throws ErroRepositorioException { Collection<Object[]> relatorios = new ArrayList<Object[]>(); Collection<BigDecimal> retorno = new ArrayList<BigDecimal>(); Session session = HibernateUtil.getSession(); StringBuilder sb = new StringBuilder(); try {/* w w w .j av a2 s .c o m*/ sb.append("SELECT "); sb.append("SUM((SELECT cbde.cbde_vldesconto "); sb.append("FROM atendimentopublico.ordem_servico orse "); sb.append("WHERE orse.orse_id = cbde.orse_id AND orse.amen_id = 32)) AS penalidadeOS, ");//0 - Penalidade OS sb.append("SUM((SELECT cbde.cbde_vldesconto "); sb.append("FROM atendimentopublico.ordem_servico orse "); sb.append("WHERE orse.orse_id = cbde.orse_id AND orse.amen_id != 32)) AS penalidadeFiscalizacao ");//0 - Penalidade Fiscalizao sb.append("FROM cobranca.COBR_BOLETIM_DESC cbde "); sb.append( "INNER JOIN cobranca.cobr_boletim_medicao cobm on (cbde.cobm_id = cobm.cobm_id and cobm.cobm_amreferencia = :amReferencia) "); sb.append( "INNER JOIN micromedicao.CONTRATO_EMPRESA_SERVICO cese on (cobm.cese_id = cese.cese_id and cese.cese_id = :idContrato) "); SQLQuery sqlQuery = session.createSQLQuery(sb.toString()); sqlQuery = sqlQuery.addScalar("penalidadeOS", Hibernate.BIG_DECIMAL).addScalar("penalidadeFiscalizacao", Hibernate.BIG_DECIMAL); sqlQuery.setInteger("idContrato", filtro.getIdContratoEmpresaServico()); sqlQuery.setInteger("amReferencia", filtro.getMesAnoReferencia()); relatorios = sqlQuery.list(); Object[] penalidades = relatorios.iterator().next(); BigDecimal penalidadeOS = new BigDecimal("0.00"); if (penalidades[0] != null) { penalidadeOS = (BigDecimal) penalidades[0]; } BigDecimal penalidadeFiscalizacao = new BigDecimal("0.00"); if (penalidades[1] != null) { penalidadeFiscalizacao = (BigDecimal) penalidades[1]; } retorno.add(penalidadeOS); retorno.add(penalidadeFiscalizacao); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; }
From source file:gcom.atendimentopublico.RepositorioAtendimentoPublicoHBM.java
License:Open Source License
private Collection<BigDecimal> filtrarRelatorioAcompanhamentoBoletimMedicaoPenalidadesCorteSupressaoNaoRealizacaoServico( FiltrarRelatorioAcompanhamentoBoletimMedicaoHelper filtro) throws ErroRepositorioException { Collection<Object[]> relatorios = new ArrayList<Object[]>(); Collection<BigDecimal> retorno = new ArrayList<BigDecimal>(); Session session = HibernateUtil.getSession(); StringBuilder sb = new StringBuilder(); try {/*from w w w .java 2 s . c o m*/ sb.append("SELECT "); sb.append("SUM((SELECT (cbex.cbex_vlservico) * 2 "); sb.append("FROM cobranca.motivo_nao_aceit_enc_os mnac "); sb.append( "WHERE caon.mnac_id = mnac.mnac_id and mnac.mnac_nnmultdesccortesupindev IS NOT NULL)) AS penalidadeCorteSupressao, "); sb.append("SUM((SELECT (cbex.cbex_vlservico) * 2 "); sb.append("FROM cobranca.motivo_nao_aceit_enc_os mnac "); sb.append( "WHERE caon.mnac_id = mnac.mnac_id and mnac.mnac_nnmultdescservnaoexec IS NOT NULL)) AS penalidadeNaoRealizacaoServico "); sb.append("FROM cobranca.cobr_boletim_exec cbex "); sb.append( "INNER JOIN cobranca.cobr_boletim_medicao cobm on (cbex.cobm_id = cobm.cobm_id and cobm.cobm_amreferencia = :amReferencia) "); sb.append( "INNER JOIN micromedicao.contrato_empresa_servico cese on (cobm.cese_id = cese.cese_id and cese.cese_id = :idContrato) "); sb.append("INNER JOIN cobranca.cob_ac_os_nao_aceitas caon on (cbex.orse_id = caon.orse_id) "); SQLQuery sqlQuery = session.createSQLQuery(sb.toString()); sqlQuery = sqlQuery.addScalar("penalidadeCorteSupressao", Hibernate.BIG_DECIMAL) .addScalar("penalidadeNaoRealizacaoServico", Hibernate.BIG_DECIMAL); sqlQuery.setInteger("idContrato", filtro.getIdContratoEmpresaServico()); sqlQuery.setInteger("amReferencia", filtro.getMesAnoReferencia()); relatorios = sqlQuery.list(); Object[] penalidades = relatorios.iterator().next(); BigDecimal penalidadeCorteSupressao = new BigDecimal("0.00"); if (penalidades[0] != null) { penalidadeCorteSupressao = (BigDecimal) penalidades[0]; } BigDecimal penalidadeNaoRealizacaoServicos = new BigDecimal("0.00"); if (penalidades[1] != null) { penalidadeNaoRealizacaoServicos = (BigDecimal) penalidades[1]; } retorno.add(penalidadeCorteSupressao); retorno.add(penalidadeNaoRealizacaoServicos); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; }
From source file:gcom.atendimentopublico.RepositorioAtendimentoPublicoHBM.java
License:Open Source License
/** * [UC1178] Gerar Relatrio de Acompanhamento dos Boletins de Medio * /*from w ww. ja v a 2 s.c o m*/ * @author Diogo Peixoto * @date 28/07/2011 * * @param FiltrarRelatorioAcompanhamentoBoletimMedicaoHelper * @param relatorioDefinitivo * @return Quantidade de OS Executadas para determinado boletim de medio * @throws ErroRepositorioException */ public Integer pesquisarQuantidadeOSExecutadas(FiltrarRelatorioAcompanhamentoBoletimMedicaoHelper filtro) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); StringBuilder sb = new StringBuilder(); Integer qtdeOSExecutadas = 0; try { sb.append("SELECT COUNT(execu.orse_id) AS quantidade "); sb.append("FROM cobranca.cobr_boletim_exec execu "); sb.append( "INNER JOIN cobranca.cobr_boletim_medicao med ON execu.cobm_id = med.cobm_id AND med.cobm_amreferencia = :amReferencia "); sb.append("AND med.cese_id = :idContrato "); String consulta = sb.toString(); SQLQuery sqlQuery = session.createSQLQuery(consulta); sqlQuery = sqlQuery.addScalar("quantidade", Hibernate.INTEGER); sqlQuery.setInteger("idContrato", filtro.getIdContratoEmpresaServico()); sqlQuery.setInteger("amReferencia", filtro.getMesAnoReferencia()); qtdeOSExecutadas = (Integer) sqlQuery.uniqueResult(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return qtdeOSExecutadas; }
From source file:gcom.atendimentopublico.RepositorioAtendimentoPublicoHBM.java
License:Open Source License
/** * [UC1178] Gerar Relatrio de Acompanhamento dos Boletins de Medio * //from w w w . j a v a2 s . c om * @author Diogo Peixoto * @date 28/07/2011 * * @param FiltrarRelatorioAcompanhamentoBoletimMedicaoHelper * @param relatorioDefinitivo * @return Quantidade de OS Penalizadas para determinado boletim de medio * @throws ErroRepositorioException */ public Integer pesquisarQuantidadeOSPenalizadas(FiltrarRelatorioAcompanhamentoBoletimMedicaoHelper filtro) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); StringBuilder sb = new StringBuilder(); Integer qtdeOSPenalizadas = 0; try { sb.append("SELECT COUNT(desco.orse_id) AS quantidade "); sb.append("FROM cobranca.cobr_boletim_desc desco "); sb.append( "INNER JOIN cobranca.cobr_boletim_medicao med ON med.cobm_id = desco.cobm_id AND med.cobm_amreferencia = :amReferencia "); sb.append("AND med.cese_id = :idContrato "); String consulta = sb.toString(); SQLQuery sqlQuery = session.createSQLQuery(consulta); sqlQuery = sqlQuery.addScalar("quantidade", Hibernate.INTEGER); sqlQuery.setInteger("idContrato", filtro.getIdContratoEmpresaServico()); sqlQuery.setInteger("amReferencia", filtro.getMesAnoReferencia()); qtdeOSPenalizadas = (Integer) sqlQuery.uniqueResult(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return qtdeOSPenalizadas; }
From source file:gcom.atendimentopublico.RepositorioAtendimentoPublicoHBM.java
License:Open Source License
/** * [UC1178] Gerar Relatrio de Acompanhamento dos Boletins de Medio * //from ww w. j a v a2 s .c o m * @author Diogo Peixoto * @date 01/08/2011 * * @param FiltrarRelatorioAcompanhamentoBoletimMedicaoHelper * @return Taxa de Sucesso do Boletim de Medio * * @throws ErroRepositorioException */ public BigDecimal pesquisarTaxaSucessoBoletimMedicao(FiltrarRelatorioAcompanhamentoBoletimMedicaoHelper filtro) throws ErroRepositorioException { Session session = HibernateUtil.getSession(); StringBuilder sb = new StringBuilder(); BigDecimal taxaSucesso = new BigDecimal("0.00"); try { sb.append("SELECT sum(cbsu.CBSU_VLTXSUCESSO) AS taxaSucesso "); sb.append("FROM cobranca.COBR_BOLETIM_SUCESSO cbsu "); sb.append( "INNER JOIN cobranca.cobr_boletim_medicao cobm on (cbsu.cobm_id = cobm.cobm_id and cobm.cobm_amreferencia = :amReferencia) "); sb.append( "INNER JOIN micromedicao.contrato_empresa_servico cese on (cobm.cese_id = cese.cese_id and cese.cese_id = :idContrato) "); String consulta = sb.toString(); SQLQuery sqlQuery = session.createSQLQuery(consulta); sqlQuery = sqlQuery.addScalar("taxaSucesso", Hibernate.BIG_DECIMAL); sqlQuery.setInteger("amReferencia", filtro.getMesAnoReferencia()); sqlQuery.setInteger("idContrato", filtro.getIdContratoEmpresaServico()); taxaSucesso = (BigDecimal) sqlQuery.uniqueResult(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return taxaSucesso; }
From source file:gcom.atendimentopublico.RepositorioAtendimentoPublicoHBM.java
License:Open Source License
public boolean gruposIniciaodsJaForamEncerrados(FiltrarRelatorioAcompanhamentoBoletimMedicaoHelper filtro) throws ErroRepositorioException { Session sessao = HibernateUtil.getSession(); boolean encerrado = true; StringBuilder sb = new StringBuilder(); sb.append("SELECT acao.caac_tmrealizacao AS dataRealizacao "); sb.append("FROM cobranca.cobranca_acao_ativ_crg acao "); sb.append("INNER JOIN cobranca.cobranca_acao_cronograma cron ON cron.cbcr_id = acao.cbcr_id "); sb.append(/*from w w w .j a v a 2s.c o m*/ "INNER JOIN cobranca.cobranca_grupo_crg_mes mes ON mes.cbcm_id = cron.cbcm_id AND mes.cbcm_amreferencia = :amReferencia "); sb.append("INNER JOIN cobranca.cobranca_grupo grupo ON grupo.cbgr_id = mes.cbgr_id "); sb.append( "INNER JOIN micromedicao.contrato_empresa_servico cont ON cont.cese_id = grupo.cese_id AND grupo.cese_id = :numeroContrato"); SQLQuery query = sessao.createSQLQuery(sb.toString()); query.setInteger("amReferencia", filtro.getMesAnoReferencia()); query.setInteger("numeroContrato", filtro.getIdContratoEmpresaServico()); query.addScalar("dataRealizacao", Hibernate.DATE); List<Date> retorno = (List<Date>) query.list(); /*Verifica se existe alguma data igual a NULL, se existe porque os grupos iniciados * no foram executados. */ for (Date date : retorno) { if (date == null) { encerrado = false; break; } } return encerrado; }