Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.sisrni.dao; import com.sisrni.dao.generic.GenericDao; import com.sisrni.model.PropuestaConvenio; import com.sisrni.model.TipoPropuestaConvenio; import com.sisrni.pojo.rpt.PojoConvenioEstado; import com.sisrni.pojo.rpt.PojoPropuestaConvenio; import com.sisrni.pojo.rpt.RptBitacoraEstadosPojo; import com.sisrni.pojo.rpt.RptConteoConveniosPorTipoPojo; import com.sisrni.pojo.rpt.RptConveniosPorAnioPojo; import java.math.BigInteger; import java.util.List; import org.hibernate.Query; import org.hibernate.transform.Transformers; import org.hibernate.type.BooleanType; import org.hibernate.type.DateType; import org.hibernate.type.IntegerType; import org.hibernate.type.StringType; import org.springframework.stereotype.Repository; /** * * @author Joao */ @Repository(value = "propuestaConvenioDao") public class PropuestaConvenioDao extends GenericDao<PropuestaConvenio, Integer> { public List<PropuestaConvenio> getPropuestaConvenioByTipoPropuesta( TipoPropuestaConvenio tipoPropuestaConvenio) { try { Query q = getSessionFactory().getCurrentSession().createQuery( "SELECT a FROM PropuestaConvenio a JOIN FETCH a.idTipoPropuestaConvenio tipo WHERE tipo.nombrePropuestaConvenio =:name"); q.setParameter("name", tipoPropuestaConvenio.getNombrePropuestaConvenio()); return q.list(); } catch (Exception e) { e.printStackTrace(); } return null; } public List<PropuestaConvenio> getConvenios() { try { String sql = "SELECT PRO.ID_PROPUESTA idPropuesta,NOMBRE_PROPUESTA nombrePropuesta,FINALIDAD_PROPUESTA finalidadPropuesta,VIGENCIA vigencia,ID_TIPO_PROPUESTA_CONVENIO\n" + "FROM PROPUESTA_CONVENIO PRO \n" + "INNER JOIN PROPUESTA_ESTADO P_ESTADO \n" + "ON PRO.ID_PROPUESTA=P_ESTADO.ID_PROPUESTA \n" + "INNER JOIN ESTADO \n" + "ON ESTADO.ID_ESTADO=P_ESTADO.ID_ESTADO\n" + "WHERE PRO.VIGENCIA IS NOT NULL\n" + "AND ESTADO.NOMBRE_ESTADO='FIRMADO'" + "AND PRO.ACTIVO IS TRUE"; Query q = getSessionFactory().getCurrentSession().createSQLQuery(sql) .addScalar("idPropuesta", new IntegerType()).addScalar("nombrePropuesta", new StringType()) .addScalar("finalidadPropuesta", new StringType()).addScalar("vigencia", new DateType()) //.addScalar("ID_TIPO_PROPUESTA_CONVENIO",new IntegerType()) .setResultTransformer(Transformers.aliasToBean(PropuestaConvenio.class)); return q.list(); } catch (Exception e) { e.printStackTrace(); } return null; } /** * listdo convenio marcos * * @return */ public List<PropuestaConvenio> getConveniosMarcos() { try { String sql = "SELECT PRO.ID_PROPUESTA idPropuesta,NOMBRE_PROPUESTA nombrePropuesta,FINALIDAD_PROPUESTA finalidadPropuesta,VIGENCIA vigencia,ID_TIPO_PROPUESTA_CONVENIO\n" + "FROM PROPUESTA_CONVENIO PRO \n" + "INNER JOIN PROPUESTA_ESTADO P_ESTADO \n" + "ON PRO.ID_PROPUESTA=P_ESTADO.ID_PROPUESTA \n" + "INNER JOIN ESTADO \n" + "ON ESTADO.ID_ESTADO=P_ESTADO.ID_ESTADO\n" + "WHERE PRO.VIGENCIA IS NOT NULL\n" + "AND ESTADO.NOMBRE_ESTADO='FIRMADO' " + "AND PRO.ID_TIPO_PROPUESTA_CONVENIO=2 " + "AND PRO.ACTIVO IS TRUE"; Query q = getSessionFactory().getCurrentSession().createSQLQuery(sql) .addScalar("idPropuesta", new IntegerType()).addScalar("nombrePropuesta", new StringType()) .addScalar("finalidadPropuesta", new StringType()).addScalar("vigencia", new DateType()) //.addScalar("ID_TIPO_PROPUESTA_CONVENIO",new IntegerType()) .setResultTransformer(Transformers.aliasToBean(PropuestaConvenio.class)); return q.list(); } catch (Exception e) { e.printStackTrace(); } return null; } /** * obtiene todos las propuestas convenios SQL sin id solicitante * * @return */ public List<PojoPropuestaConvenio> getAllPropuestaConvenioSQL() { String sql = "SELECT * FROM \n" + "(SELECT P_CONVENIO.NOMBRE_PROPUESTA,P_CONVENIO.FINALIDAD_PROPUESTA,\n" + "T_PRO_CONVE.NOMBRE_PROPUESTA_CONVENIO AS TIPO_CONVENIO,STA.NOMBRE_ESTADO,P_CONVENIO.VIGENCIA,\n" + "P_CONVENIO.ID_PROPUESTA,\n" + "P_ESTADO.ID_ESTADO,\n" + "P_CONVENIO.FECHA_INGRESO FECHA_INGRESO\n" + "FROM PROPUESTA_CONVENIO P_CONVENIO\n" + "INNER JOIN TIPO_PROPUESTA_CONVENIO T_PRO_CONVE\n" + "ON P_CONVENIO.ID_TIPO_PROPUESTA_CONVENIO = T_PRO_CONVE.ID_TIPO_PROPUESTA \n" + "INNER JOIN PROPUESTA_ESTADO P_ESTADO \n" + "ON P_CONVENIO.ID_PROPUESTA = P_ESTADO.ID_PROPUESTA\n" + "INNER JOIN ESTADO STA\n" + "ON P_ESTADO.ID_ESTADO=STA.ID_ESTADO\n" + "WHERE P_CONVENIO.VIGENCIA IS NULL\n" + "AND STA.NOMBRE_ESTADO <> 'FIRMADO' ORDER BY FECHA_INGRESO DESC ) TB_CONVENIO\n" + "\n" + "LEFT JOIN\n" + "\n" + "(SELECT TB_SOLICITANTE.SOLICITANTE,TB_INTERNO.INTERNO,TB_EXTERNO.EXTERNO,TB_SOLICITANTE.PROPUESTA ,TB_SOLICITANTE.ID_SOLICITANTE,TB_INTERNO.ID_REF_INTERNO,TB_EXTERNO.ID_REF_EXTERNO \n" + "FROM \n" + "(SELECT CONCAT(PRS.NOMBRE_PERSONA,' ',PRS.APELLIDO_PERSONA) AS SOLICITANTE,PRS_PROP.ID_PROPUESTA AS PROPUESTA,PRS.ID_PERSONA AS ID_SOLICITANTE\n" + "FROM PERSONA_PROPUESTA PRS_PROP \n" + "INNER JOIN PERSONA PRS\n" + "ON PRS_PROP.ID_PERSONA=PRS.ID_PERSONA\n" + "INNER JOIN TIPO_PERSONA TP_PRS\n" + "ON PRS_PROP.ID_TIPO_PERSONA=TP_PRS.ID_TIPO_PERSONA\n" + "WHERE TP_PRS.NOMBRE_TIPO_PERSONA='SOLICITANTE') TB_SOLICITANTE\n" + "LEFT JOIN\n" + "(SELECT CONCAT(PRS.NOMBRE_PERSONA,' ',PRS.APELLIDO_PERSONA) AS INTERNO,PRS_PROP.ID_PROPUESTA AS PROPUESTA, PRS.ID_PERSONA AS ID_REF_INTERNO\n" + "FROM PERSONA_PROPUESTA PRS_PROP \n" + "INNER JOIN PERSONA PRS\n" + "ON PRS_PROP.ID_PERSONA=PRS.ID_PERSONA\n" + "INNER JOIN TIPO_PERSONA TP_PRS\n" + "ON PRS_PROP.ID_TIPO_PERSONA=TP_PRS.ID_TIPO_PERSONA\n" + "WHERE TP_PRS.NOMBRE_TIPO_PERSONA='REFERENTE INTERNO') TB_INTERNO\n" + "ON TB_SOLICITANTE.PROPUESTA=TB_INTERNO.PROPUESTA\n" + "LEFT JOIN\n" + "(SELECT CONCAT(PRS.NOMBRE_PERSONA,' ',PRS.APELLIDO_PERSONA) AS EXTERNO,PRS_PROP.ID_PROPUESTA AS PROPUESTA,PRS.ID_PERSONA AS ID_REF_EXTERNO\n" + "FROM PERSONA_PROPUESTA PRS_PROP \n" + "INNER JOIN PERSONA PRS\n" + "ON PRS_PROP.ID_PERSONA=PRS.ID_PERSONA\n" + "INNER JOIN TIPO_PERSONA TP_PRS\n" + "ON PRS_PROP.ID_TIPO_PERSONA=TP_PRS.ID_TIPO_PERSONA\n" + "WHERE TP_PRS.NOMBRE_TIPO_PERSONA='REFERENTE EXTERNO') TB_EXTERNO\n" + "ON TB_SOLICITANTE.PROPUESTA=TB_EXTERNO.PROPUESTA) TB_PERSONAS\n" + "ON TB_CONVENIO.ID_PROPUESTA=TB_PERSONAS.PROPUESTA"; try { Query q = getSessionFactory().getCurrentSession().createSQLQuery(sql) .addScalar("NOMBRE_PROPUESTA", new StringType()) .addScalar("FINALIDAD_PROPUESTA", new StringType()).addScalar("TIPO_CONVENIO", new StringType()) .addScalar("NOMBRE_ESTADO", new StringType()).addScalar("ID_PROPUESTA", new IntegerType()) .addScalar("SOLICITANTE", new StringType()).addScalar("INTERNO", new StringType()) .addScalar("EXTERNO", new StringType()).addScalar("PROPUESTA", new IntegerType()) .addScalar("VIGENCIA", new StringType()).addScalar("ID_SOLICITANTE", new IntegerType()) .addScalar("ID_REF_INTERNO", new IntegerType()).addScalar("ID_REF_EXTERNO", new IntegerType()) .addScalar("ID_ESTADO", new IntegerType()).addScalar("FECHA_INGRESO", new DateType()) .setResultTransformer(Transformers.aliasToBean(PojoPropuestaConvenio.class)); return q.list(); } catch (Exception e) { e.printStackTrace(); } return null; } /** * obtiene todos las propuestas convenios SQL por id solicitante */ public List<PojoPropuestaConvenio> getAllPropuestaConvenioSQL(int idSolicitante) { String sql = "SELECT * FROM \n" + "(SELECT P_CONVENIO.NOMBRE_PROPUESTA,P_CONVENIO.FINALIDAD_PROPUESTA,\n" + "T_PRO_CONVE.NOMBRE_PROPUESTA_CONVENIO AS TIPO_CONVENIO,STA.NOMBRE_ESTADO,P_CONVENIO.VIGENCIA,\n" + "P_CONVENIO.ID_PROPUESTA,\n" + "P_ESTADO.ID_ESTADO,\n" + "P_CONVENIO.FECHA_INGRESO FECHA_INGRESO\n" + "FROM PROPUESTA_CONVENIO P_CONVENIO\n" + "INNER JOIN TIPO_PROPUESTA_CONVENIO T_PRO_CONVE\n" + "ON P_CONVENIO.ID_TIPO_PROPUESTA_CONVENIO = T_PRO_CONVE.ID_TIPO_PROPUESTA \n" + "INNER JOIN PROPUESTA_ESTADO P_ESTADO \n" + "ON P_CONVENIO.ID_PROPUESTA = P_ESTADO.ID_PROPUESTA\n" + "INNER JOIN ESTADO STA\n" + "ON P_ESTADO.ID_ESTADO=STA.ID_ESTADO\n" + "WHERE P_CONVENIO.VIGENCIA IS NULL\n" + "AND STA.NOMBRE_ESTADO <> 'FIRMADO' ORDER BY FECHA_INGRESO DESC ) TB_CONVENIO\n" + "\n" + "LEFT JOIN\n" + "\n" + "(SELECT TB_SOLICITANTE.SOLICITANTE,TB_INTERNO.INTERNO,TB_EXTERNO.EXTERNO,TB_SOLICITANTE.PROPUESTA ,TB_SOLICITANTE.ID_SOLICITANTE,TB_INTERNO.ID_REF_INTERNO,TB_EXTERNO.ID_REF_EXTERNO \n" + "FROM \n" + "(SELECT CONCAT(PRS.NOMBRE_PERSONA,' ',PRS.APELLIDO_PERSONA) AS SOLICITANTE,PRS_PROP.ID_PROPUESTA AS PROPUESTA,PRS.ID_PERSONA AS ID_SOLICITANTE\n" + "FROM PERSONA_PROPUESTA PRS_PROP \n" + "INNER JOIN PERSONA PRS\n" + "ON PRS_PROP.ID_PERSONA=PRS.ID_PERSONA\n" + "INNER JOIN TIPO_PERSONA TP_PRS\n" + "ON PRS_PROP.ID_TIPO_PERSONA=TP_PRS.ID_TIPO_PERSONA\n" + "WHERE TP_PRS.NOMBRE_TIPO_PERSONA='SOLICITANTE') TB_SOLICITANTE\n" + "LEFT JOIN\n" + "(SELECT CONCAT(PRS.NOMBRE_PERSONA,' ',PRS.APELLIDO_PERSONA) AS INTERNO,PRS_PROP.ID_PROPUESTA AS PROPUESTA, PRS.ID_PERSONA AS ID_REF_INTERNO\n" + "FROM PERSONA_PROPUESTA PRS_PROP \n" + "INNER JOIN PERSONA PRS\n" + "ON PRS_PROP.ID_PERSONA=PRS.ID_PERSONA\n" + "INNER JOIN TIPO_PERSONA TP_PRS\n" + "ON PRS_PROP.ID_TIPO_PERSONA=TP_PRS.ID_TIPO_PERSONA\n" + "WHERE TP_PRS.NOMBRE_TIPO_PERSONA='REFERENTE INTERNO') TB_INTERNO\n" + "ON TB_SOLICITANTE.PROPUESTA=TB_INTERNO.PROPUESTA\n" + "LEFT JOIN\n" + "(SELECT CONCAT(PRS.NOMBRE_PERSONA,' ',PRS.APELLIDO_PERSONA) AS EXTERNO,PRS_PROP.ID_PROPUESTA AS PROPUESTA,PRS.ID_PERSONA AS ID_REF_EXTERNO\n" + "FROM PERSONA_PROPUESTA PRS_PROP \n" + "INNER JOIN PERSONA PRS\n" + "ON PRS_PROP.ID_PERSONA=PRS.ID_PERSONA\n" + "INNER JOIN TIPO_PERSONA TP_PRS\n" + "ON PRS_PROP.ID_TIPO_PERSONA=TP_PRS.ID_TIPO_PERSONA\n" + "WHERE TP_PRS.NOMBRE_TIPO_PERSONA='REFERENTE EXTERNO') TB_EXTERNO\n" + "ON TB_SOLICITANTE.PROPUESTA=TB_EXTERNO.PROPUESTA) TB_PERSONAS\n" + "ON TB_CONVENIO.ID_PROPUESTA=TB_PERSONAS.PROPUESTA\n" + "WHERE ID_SOLICITANTE=" + idSolicitante; try { Query q = getSessionFactory().getCurrentSession().createSQLQuery(sql) .addScalar("NOMBRE_PROPUESTA", new StringType()) .addScalar("FINALIDAD_PROPUESTA", new StringType()).addScalar("TIPO_CONVENIO", new StringType()) .addScalar("NOMBRE_ESTADO", new StringType()).addScalar("ID_PROPUESTA", new IntegerType()) .addScalar("SOLICITANTE", new StringType()).addScalar("INTERNO", new StringType()) .addScalar("EXTERNO", new StringType()).addScalar("PROPUESTA", new IntegerType()) .addScalar("VIGENCIA", new StringType()).addScalar("ID_SOLICITANTE", new IntegerType()) .addScalar("ID_REF_INTERNO", new IntegerType()).addScalar("ID_REF_EXTERNO", new IntegerType()) .addScalar("ID_ESTADO", new IntegerType()).addScalar("FECHA_INGRESO", new DateType()) .setResultTransformer(Transformers.aliasToBean(PojoPropuestaConvenio.class)); return q.list(); } catch (Exception e) { e.printStackTrace(); } return null; } /** * Metodo para obtener todos los Convenios estado Firmados * * @return */ public List<PojoPropuestaConvenio> getAllConvenioSQL() { String sql = "SELECT * FROM \n" + "(SELECT P_CONVENIO.NOMBRE_PROPUESTA,P_CONVENIO.FINALIDAD_PROPUESTA,\n" + "T_PRO_CONVE.NOMBRE_PROPUESTA_CONVENIO AS TIPO_CONVENIO,STA.NOMBRE_ESTADO,P_CONVENIO.VIGENCIA,\n" + "P_CONVENIO.ID_PROPUESTA,\n" + "P_ESTADO.ID_ESTADO,P_CONVENIO.ACTIVO,\n" + "P_CONVENIO.FECHA_INGRESO FECHA_INGRESO\n" + "FROM PROPUESTA_CONVENIO P_CONVENIO\n" + "INNER JOIN TIPO_PROPUESTA_CONVENIO T_PRO_CONVE\n" + "ON P_CONVENIO.ID_TIPO_PROPUESTA_CONVENIO = T_PRO_CONVE.ID_TIPO_PROPUESTA \n" + "INNER JOIN PROPUESTA_ESTADO P_ESTADO \n" + "ON P_CONVENIO.ID_PROPUESTA = P_ESTADO.ID_PROPUESTA\n" + "INNER JOIN ESTADO STA\n" + "ON P_ESTADO.ID_ESTADO=STA.ID_ESTADO\n" + "WHERE P_CONVENIO.VIGENCIA IS NOT NULL\n" + "AND STA.NOMBRE_ESTADO = 'FIRMADO'" + "ORDER BY FECHA_INGRESO DESC ) TB_CONVENIO\n" + "\n" + "LEFT JOIN\n" + "\n" + "(SELECT TB_SOLICITANTE.SOLICITANTE,TB_INTERNO.INTERNO,TB_EXTERNO.EXTERNO,TB_SOLICITANTE.PROPUESTA ,TB_SOLICITANTE.ID_SOLICITANTE,TB_INTERNO.ID_REF_INTERNO,TB_EXTERNO.ID_REF_EXTERNO \n" + "FROM \n" + "(SELECT CONCAT(PRS.NOMBRE_PERSONA,' ',PRS.APELLIDO_PERSONA) AS SOLICITANTE,PRS_PROP.ID_PROPUESTA AS PROPUESTA,PRS.ID_PERSONA AS ID_SOLICITANTE\n" + "FROM PERSONA_PROPUESTA PRS_PROP \n" + "INNER JOIN PERSONA PRS\n" + "ON PRS_PROP.ID_PERSONA=PRS.ID_PERSONA\n" + "INNER JOIN TIPO_PERSONA TP_PRS\n" + "ON PRS_PROP.ID_TIPO_PERSONA=TP_PRS.ID_TIPO_PERSONA\n" + "WHERE TP_PRS.NOMBRE_TIPO_PERSONA='SOLICITANTE') TB_SOLICITANTE\n" + "LEFT JOIN\n" + "(SELECT CONCAT(PRS.NOMBRE_PERSONA,' ',PRS.APELLIDO_PERSONA) AS INTERNO,PRS_PROP.ID_PROPUESTA AS PROPUESTA, PRS.ID_PERSONA AS ID_REF_INTERNO\n" + "FROM PERSONA_PROPUESTA PRS_PROP \n" + "INNER JOIN PERSONA PRS\n" + "ON PRS_PROP.ID_PERSONA=PRS.ID_PERSONA\n" + "INNER JOIN TIPO_PERSONA TP_PRS\n" + "ON PRS_PROP.ID_TIPO_PERSONA=TP_PRS.ID_TIPO_PERSONA\n" + "WHERE TP_PRS.NOMBRE_TIPO_PERSONA='REFERENTE INTERNO') TB_INTERNO\n" + "ON TB_SOLICITANTE.PROPUESTA=TB_INTERNO.PROPUESTA\n" + "LEFT JOIN\n" + "(SELECT CONCAT(PRS.NOMBRE_PERSONA,' ',PRS.APELLIDO_PERSONA) AS EXTERNO,PRS_PROP.ID_PROPUESTA AS PROPUESTA,PRS.ID_PERSONA AS ID_REF_EXTERNO\n" + "FROM PERSONA_PROPUESTA PRS_PROP \n" + "INNER JOIN PERSONA PRS\n" + "ON PRS_PROP.ID_PERSONA=PRS.ID_PERSONA\n" + "INNER JOIN TIPO_PERSONA TP_PRS\n" + "ON PRS_PROP.ID_TIPO_PERSONA=TP_PRS.ID_TIPO_PERSONA\n" + "WHERE TP_PRS.NOMBRE_TIPO_PERSONA='REFERENTE EXTERNO') TB_EXTERNO\n" + "ON TB_SOLICITANTE.PROPUESTA=TB_EXTERNO.PROPUESTA) TB_PERSONAS\n" + "ON TB_CONVENIO.ID_PROPUESTA=TB_PERSONAS.PROPUESTA"; try { getSessionFactory().getCurrentSession().flush(); getSessionFactory().getCurrentSession().clear(); Query q = getSessionFactory().getCurrentSession().createSQLQuery(sql) .addScalar("NOMBRE_PROPUESTA", new StringType()) .addScalar("FINALIDAD_PROPUESTA", new StringType()).addScalar("TIPO_CONVENIO", new StringType()) .addScalar("NOMBRE_ESTADO", new StringType()).addScalar("ID_PROPUESTA", new IntegerType()) .addScalar("SOLICITANTE", new StringType()).addScalar("INTERNO", new StringType()) .addScalar("EXTERNO", new StringType()).addScalar("PROPUESTA", new IntegerType()) .addScalar("VIGENCIA", new DateType()).addScalar("ID_SOLICITANTE", new IntegerType()) .addScalar("ID_REF_INTERNO", new IntegerType()).addScalar("ID_REF_EXTERNO", new IntegerType()) .addScalar("ID_ESTADO", new IntegerType()).addScalar("FECHA_INGRESO", new DateType()) .addScalar("ACTIVO", new BooleanType()) .setResultTransformer(Transformers.aliasToBean(PojoPropuestaConvenio.class)); return q.list(); } catch (Exception e) { e.printStackTrace(); } return null; } public PojoPropuestaConvenio getAllPropuestaConvenioSQLByID(Integer id) { String sql = "SELECT * FROM \n" + "\n" + "(SELECT P_CONVENIO.NOMBRE_PROPUESTA,P_CONVENIO.FINALIDAD_PROPUESTA,\n" + "T_PRO_CONVE.NOMBRE_PROPUESTA_CONVENIO AS TIPO_CONVENIO,STA.NOMBRE_ESTADO,P_CONVENIO.VIGENCIA,\n" + "P_CONVENIO.ID_PROPUESTA,\n" + "P_ESTADO.ID_ESTADO,\n" + "P_CONVENIO.FECHA_INGRESO FECHA_INGRESO\n" + "FROM PROPUESTA_CONVENIO P_CONVENIO\n" + "INNER JOIN TIPO_PROPUESTA_CONVENIO T_PRO_CONVE\n" + "ON P_CONVENIO.ID_TIPO_PROPUESTA_CONVENIO = T_PRO_CONVE.ID_TIPO_PROPUESTA \n" + "INNER JOIN PROPUESTA_ESTADO P_ESTADO \n" + "ON P_CONVENIO.ID_PROPUESTA = P_ESTADO.ID_PROPUESTA\n" + "INNER JOIN ESTADO STA\n" + "ON P_ESTADO.ID_ESTADO=STA.ID_ESTADO) TB_CONVENIO\n" + "\n" + "LEFT JOIN\n" + "\n" + "(SELECT TB_SOLICITANTE.SOLICITANTE,TB_INTERNO.INTERNO,TB_EXTERNO.EXTERNO,TB_SOLICITANTE.PROPUESTA ,TB_SOLICITANTE.ID_SOLICITANTE,TB_INTERNO.ID_REF_INTERNO,TB_EXTERNO.ID_REF_EXTERNO FROM \n" + "(SELECT CONCAT(PRS.NOMBRE_PERSONA,' ',PRS.APELLIDO_PERSONA) AS SOLICITANTE,PRS_PROP.ID_PROPUESTA AS PROPUESTA,PRS.ID_PERSONA AS ID_SOLICITANTE\n" + "FROM PERSONA_PROPUESTA PRS_PROP \n" + "INNER JOIN PERSONA PRS\n" + "ON PRS_PROP.ID_PERSONA=PRS.ID_PERSONA\n" + "INNER JOIN TIPO_PERSONA TP_PRS\n" + "ON PRS_PROP.ID_TIPO_PERSONA=TP_PRS.ID_TIPO_PERSONA\n" + "WHERE TP_PRS.NOMBRE_TIPO_PERSONA='SOLICITANTE') TB_SOLICITANTE\n" + "LEFT JOIN\n" + "(SELECT CONCAT(PRS.NOMBRE_PERSONA,' ',PRS.APELLIDO_PERSONA) AS INTERNO,PRS_PROP.ID_PROPUESTA AS PROPUESTA, PRS.ID_PERSONA AS ID_REF_INTERNO\n" + "FROM PERSONA_PROPUESTA PRS_PROP \n" + "INNER JOIN PERSONA PRS\n" + "ON PRS_PROP.ID_PERSONA=PRS.ID_PERSONA\n" + "INNER JOIN TIPO_PERSONA TP_PRS\n" + "ON PRS_PROP.ID_TIPO_PERSONA=TP_PRS.ID_TIPO_PERSONA\n" + "WHERE TP_PRS.NOMBRE_TIPO_PERSONA='REFERENTE INTERNO') TB_INTERNO\n" + "ON TB_SOLICITANTE.PROPUESTA=TB_INTERNO.PROPUESTA\n" + "LEFT JOIN\n" + "(SELECT CONCAT(PRS.NOMBRE_PERSONA,' ',PRS.APELLIDO_PERSONA) AS EXTERNO,PRS_PROP.ID_PROPUESTA AS PROPUESTA,PRS.ID_PERSONA AS ID_REF_EXTERNO\n" + "FROM PERSONA_PROPUESTA PRS_PROP \n" + "INNER JOIN PERSONA PRS\n" + "ON PRS_PROP.ID_PERSONA=PRS.ID_PERSONA\n" + "INNER JOIN TIPO_PERSONA TP_PRS\n" + "ON PRS_PROP.ID_TIPO_PERSONA=TP_PRS.ID_TIPO_PERSONA\n" + "WHERE TP_PRS.NOMBRE_TIPO_PERSONA='REFERENTE EXTERNO') TB_EXTERNO\n" + "ON TB_INTERNO.PROPUESTA=TB_EXTERNO.PROPUESTA) TB_PERSONAS\n" + "\n" + "ON TB_CONVENIO.ID_PROPUESTA=TB_PERSONAS.PROPUESTA WHERE ID_PROPUESTA=" + id; try { Query q = getSessionFactory().getCurrentSession().createSQLQuery(sql) .addScalar("NOMBRE_PROPUESTA", new StringType()) .addScalar("FINALIDAD_PROPUESTA", new StringType()).addScalar("TIPO_CONVENIO", new StringType()) .addScalar("NOMBRE_ESTADO", new StringType()).addScalar("ID_PROPUESTA", new IntegerType()) .addScalar("SOLICITANTE", new StringType()).addScalar("INTERNO", new StringType()) .addScalar("EXTERNO", new StringType()).addScalar("PROPUESTA", new IntegerType()) .addScalar("VIGENCIA", new DateType()).addScalar("ID_SOLICITANTE", new IntegerType()) .addScalar("ID_REF_INTERNO", new IntegerType()).addScalar("ID_REF_EXTERNO", new IntegerType()) .addScalar("ID_ESTADO", new IntegerType()).addScalar("FECHA_INGRESO", new DateType()) .setResultTransformer(Transformers.aliasToBean(PojoPropuestaConvenio.class)); return (PojoPropuestaConvenio) q.uniqueResult(); } catch (Exception e) { e.printStackTrace(); } return null; } /** * Metodo que devuelve la entidad de propuesta de convenio en base al id * * @return */ public PropuestaConvenio getPropuestaCovenioByID(int idPropuesta) { try { Query q = getSessionFactory().getCurrentSession() .createQuery("SELECT p FROM PropuestaConvenio p WHERE p.idPropuesta=:id"); q.setParameter("id", idPropuesta); return (PropuestaConvenio) q.uniqueResult(); } catch (Exception e) { e.printStackTrace(); } return null; } /** * Metodo que devuelve los convenios con sus estados. * * @return */ public List<PojoConvenioEstado> getConveioWithEstado() { try { String sql = "SELECT \n" + "P_CONV.ID_PROPUESTA id_propuesta,\n" + "P_CONV.NOMBRE_PROPUESTA nombre_propuesta,\n" + "P_CONV.VIGENCIA vigencia,\n" + "P_ESTAD.FECHA fecha_cambio_estado,\n" + "EST.ID_ESTADO id_estado,\n" + "EST.NOMBRE_ESTADO nombre_estado,\n" + "EST.TIPO_ESTADO tipo_estado\n" + "FROM PROPUESTA_CONVENIO P_CONV \n" + "INNER JOIN PROPUESTA_ESTADO P_ESTAD \n" + "ON P_ESTAD.ID_PROPUESTA=P_CONV.ID_PROPUESTA\n" + "INNER JOIN ESTADO EST\n" + "ON P_ESTAD.ID_ESTADO=EST.ID_ESTADO\n" + "AND P_CONV.VIGENCIA IS NOT NULL"; Query q = getSessionFactory().getCurrentSession().createSQLQuery(sql) .addScalar("id_propuesta", new IntegerType()).addScalar("nombre_propuesta", new StringType()) .addScalar("vigencia", new DateType()).addScalar("fecha_cambio_estado", new DateType()) .addScalar("id_estado", new IntegerType()).addScalar("nombre_estado", new StringType()) .addScalar("tipo_estado", new IntegerType()) .setResultTransformer(Transformers.aliasToBean(PojoConvenioEstado.class)); if (q.list() != null) { return q.list(); } else { return null; } } catch (Exception e) { e.printStackTrace(); } return null; } /** * Metodo que devuelve las propuestas convenios con sus estados. * * @return */ public List<PojoConvenioEstado> getPropuestasConvenioWithEstado() { try { String sql = "SELECT \n" + "P_CONV.ID_PROPUESTA id_propuesta,\n" + "P_CONV.NOMBRE_PROPUESTA nombre_propuesta,\n" + "P_CONV.VIGENCIA vigencia,\n" + "P_ESTAD.FECHA fecha_cambio_estado,\n" + "EST.ID_ESTADO id_estado,\n" + "EST.NOMBRE_ESTADO nombre_estado,\n" + "EST.TIPO_ESTADO tipo_estado\n" + "FROM PROPUESTA_CONVENIO P_CONV \n" + "INNER JOIN PROPUESTA_ESTADO P_ESTAD \n" + "ON P_ESTAD.ID_PROPUESTA=P_CONV.ID_PROPUESTA\n" + "INNER JOIN ESTADO EST\n" + "ON P_ESTAD.ID_ESTADO=EST.ID_ESTADO\n " + "AND P_CONV.VIGENCIA IS NULL"; Query q = getSessionFactory().getCurrentSession().createSQLQuery(sql) .addScalar("id_propuesta", new IntegerType()).addScalar("nombre_propuesta", new StringType()) .addScalar("vigencia", new DateType()).addScalar("fecha_cambio_estado", new DateType()) .addScalar("id_estado", new IntegerType()).addScalar("nombre_estado", new StringType()) .addScalar("tipo_estado", new IntegerType()) .setResultTransformer(Transformers.aliasToBean(PojoConvenioEstado.class)); if (q.list() != null) { return q.list(); } else { return null; } } catch (Exception e) { e.printStackTrace(); } return null; } public List<RptConveniosPorAnioPojo> getconveniosPorAnio(Integer desde, Integer hasta) { String query = "SELECT tp.NOMBRE_PROPUESTA_CONVENIO as tipoConvenio,p.NOMBRE_PROPUESTA as nombreConvenio, \n" + "p.FINALIDAD_PROPUESTA as finalidad, p.FECHA_INGRESO as fechaIngreso, p.VIGENCIA as vigencia from \n" + "PROPUESTA_CONVENIO p join TIPO_PROPUESTA_CONVENIO tp on (p.ID_TIPO_PROPUESTA_CONVENIO=tp.ID_TIPO_PROPUESTA) \n" + "join PROPUESTA_ESTADO pe on (p.ID_PROPUESTA=pe.ID_PROPUESTA) where p.VIGENCIA IS NOT NULL AND pe.ID_ESTADO=10 \n" + "AND YEAR(p.FECHA_INGRESO) BETWEEN \n" + desde + " AND " + hasta + " ORDER BY p.FECHA_INGRESO asc"; Query q = getSessionFactory().getCurrentSession().createSQLQuery(query) .addScalar("tipoConvenio", new StringType()).addScalar("nombreConvenio", new StringType()) .addScalar("finalidad", new StringType()).addScalar("fechaIngreso", new DateType()) .addScalar("vigencia", new DateType()) .setResultTransformer(Transformers.aliasToBean(RptConveniosPorAnioPojo.class)); return q.list(); } public List<PojoConvenioEstado> getPropuestasConvenioWithEstado(Integer desde, Integer hasta) { try { String sql = "SELECT \n" + "P_CONV.ID_PROPUESTA id_propuesta,\n" + "P_CONV.NOMBRE_PROPUESTA nombre_propuesta,\n" + "P_CONV.VIGENCIA vigencia,\n" + "P_ESTAD.FECHA fecha_cambio_estado,\n" + "EST.ID_ESTADO id_estado,\n" + "EST.NOMBRE_ESTADO nombre_estado,\n" + "EST.TIPO_ESTADO tipo_estado\n" + "FROM PROPUESTA_CONVENIO P_CONV \n" + "INNER JOIN PROPUESTA_ESTADO P_ESTAD \n" + "ON P_ESTAD.ID_PROPUESTA=P_CONV.ID_PROPUESTA\n" + "INNER JOIN ESTADO EST\n" + "ON P_ESTAD.ID_ESTADO=EST.ID_ESTADO\n " + "AND P_CONV.VIGENCIA IS NULL"; Query q = getSessionFactory().getCurrentSession().createSQLQuery(sql) .addScalar("id_propuesta", new IntegerType()).addScalar("nombre_propuesta", new StringType()) .addScalar("vigencia", new DateType()).addScalar("fecha_cambio_estado", new DateType()) .addScalar("id_estado", new IntegerType()).addScalar("nombre_estado", new StringType()) .addScalar("tipo_estado", new IntegerType()) .setResultTransformer(Transformers.aliasToBean(PojoConvenioEstado.class)); if (q.list() != null) { return q.list(); } else { return null; } } catch (Exception e) { e.printStackTrace(); } return null; } /** * Metodo que devuelve la entidad de propuesta de convenio en base al id * * @return */ public PropuestaConvenio getByIDPropuestaWithPersona(int idPropuesta) { try { getSessionFactory().getCurrentSession().flush(); getSessionFactory().getCurrentSession().clear(); Query q = getSessionFactory().getCurrentSession().createQuery( "SELECT p FROM PropuestaConvenio p JOIN FETCH p.personaPropuestaList pe WHERE p.idPropuesta=:id"); q.setParameter("id", idPropuesta); return (PropuestaConvenio) q.uniqueResult(); } catch (Exception e) { e.printStackTrace(); } return null; } public Integer conteoPropuestasEnRevision() { String query = "Select p From PropuestaEstado p where p.estado.idEstado=11"; Query q = getSessionFactory().getCurrentSession().createQuery(query); return q.list().size(); } // conteo de todos los tipos de propuestas public List<RptConteoConveniosPorTipoPojo> conteoPropuestaConvenioByTipoPropuesta(Integer desde, Integer hasta) { try { String sql = "select tipo.NOMBRE_PROPUESTA_CONVENIO as tipoConvenio, sum(pc.ID_PROPUESTA) as suma from PROPUESTA_CONVENIO pc inner join TIPO_PROPUESTA_CONVENIO tipo on (pc.ID_TIPO_PROPUESTA_CONVENIO=ID_TIPO_PROPUESTA) WHERE YEAR(pc.FECHA_INGRESO) BETWEEN \n" + desde + " AND " + hasta + " GROUP BY tipo.ID_TIPO_PROPUESTA,pc.ID_PROPUESTA"; Query q = getSessionFactory().getCurrentSession().createSQLQuery(sql) .addScalar("tipoConvenio", new StringType()).addScalar("suma", new IntegerType()) .setResultTransformer(Transformers.aliasToBean(RptConteoConveniosPorTipoPojo.class)); return q.list(); } catch (Exception e) { e.printStackTrace(); } return null; } // retorna los estados que tiene cada convenio o propuesta public List<RptBitacoraEstadosPojo> estadosPropuestaConvenioBitacora(Integer desde, Integer hasta) { try { String sql = "SELECT pc.NOMBRE_PROPUESTA AS Nombre,\n" + "(SELECT be.FECHA_DE_CAMBIO FROM BITACORA_ESTADO be WHERE be.ID_PROPUESTA=pc.ID_PROPUESTA AND be.ID_ESTADO=6) AS Fiscalia,\n" + "(SELECT be.FECHA_DE_CAMBIO FROM BITACORA_ESTADO be WHERE be.ID_PROPUESTA=pc.ID_PROPUESTA AND be.ID_ESTADO=7) AS CSU,\n" + "(SELECT be.FECHA_DE_CAMBIO FROM BITACORA_ESTADO be WHERE be.ID_PROPUESTA=pc.ID_PROPUESTA AND be.ID_ESTADO=8) as AGU,\n" + "(SELECT be.FECHA_DE_CAMBIO FROM BITACORA_ESTADO be WHERE be.ID_PROPUESTA=pc.ID_PROPUESTA AND be.ID_ESTADO=10) AS Firmado,\n" + "pc.FINALIDAD_PROPUESTA AS Finalidad\n" + "FROM `PROPUESTA_CONVENIO` pc WHERE YEAR(pc.FECHA_INGRESO) BETWEEN \n" + desde + " AND " + hasta + " ORDER BY pc.ID_PROPUESTA DESC"; Query q = getSessionFactory().getCurrentSession().createSQLQuery(sql) .addScalar("Nombre", new StringType()).addScalar("Fiscalia", new DateType()) .addScalar("CSU", new DateType()).addScalar("AGU", new DateType()) .addScalar("Firmado", new DateType()).addScalar("Finalidad", new StringType()) .setResultTransformer(Transformers.aliasToBean(RptBitacoraEstadosPojo.class)); return q.list(); } catch (Exception e) { e.printStackTrace(); } return null; } public List<PropuestaConvenio> getConvenioVigentes() { try { Query q = getSessionFactory().getCurrentSession() .createQuery("SELECT a FROM PropuestaConvenio a WHERE a.vigencia is not null"); return q.list(); } catch (Exception e) { e.printStackTrace(); } return null; } public int deletePropuestas(int propuesta) { try { String sql = "DELETE FROM DOCUMENTO WHERE ID_PROPUESTA =" + propuesta; Query q = getSessionFactory().getCurrentSession().createSQLQuery(sql); getSessionFactory().getCurrentSession().flush(); getSessionFactory().getCurrentSession().clear(); int executeUpdate = q.executeUpdate(); return executeUpdate; } catch (Exception e) { e.printStackTrace(); } return 0; } }