Example usage for org.hibernate.transform AliasToEntityMapResultTransformer INSTANCE

List of usage examples for org.hibernate.transform AliasToEntityMapResultTransformer INSTANCE

Introduction

In this page you can find the example usage for org.hibernate.transform AliasToEntityMapResultTransformer INSTANCE.

Prototype

AliasToEntityMapResultTransformer INSTANCE

To view the source code for org.hibernate.transform AliasToEntityMapResultTransformer INSTANCE.

Click Source Link

Usage

From source file:com.scopix.periscope.qualitycontrol.dao.QualityControlHibernateDAOImpl.java

License:Open Source License

private List<ObservedMetricResultDTO> addProofToResult(FilteringData filter,
        List<ObservedMetricResultDTO> listParam) throws ScopixException {
    log.debug("start");
    Session session = null;//from   w  w w .  j a  v a2s  .c  o  m
    try {
        //Buscar los proofs y agregarselos a la evidencia correspondiente
        StringBuilder sql = new StringBuilder();
        sql.append("SELECT DISTINCT  ");
        sql.append("p.proof_date,  ");
        sql.append("p.id as proof_id,  ");
        sql.append("p.path_with_marks,  ");
        sql.append("p.path_without_marks,  ");
        sql.append("p.proof_order, ee.id as evidence_evaluation_id,  ");
        sql.append("om.id as observed_metric_id,  ");
        sql.append("ee.pending_evaluation_id,   ");
        sql.append("p.evidence_id, ");
        sql.append("p.proof_result ");
        sql.append("FROM  ");
        sql.append("proof p, ");
        sql.append("evidence_evaluation ee, ");
        sql.append("observed_metric om, ");
        sql.append("metric m, ");
        sql.append("place a ");
        sql.append("WHERE m.id = om.metric_id ");
        sql.append("AND ee.observed_metric_id = om.id ");
        sql.append("AND a.id = m.area_id ");
        sql.append("AND p.evidence_evaluation_id = ee.id ");
        sql.append("AND ee.rejected = false ");
        if (filter != null) {
            if (filter.getDate() != null) {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                sql.append(" AND om.observed_metric_date = '");
                sql.append(sdf.format(filter.getDate()));
                sql.append("'");
            }
            if (filter.getArea() != null) {
                sql.append(" AND a.id = ");
                sql.append(filter.getArea());
            }
            if (filter.getStore() != null) {
                sql.append(" AND a.store_id = ");
                sql.append(filter.getStore());
            }
        }
        sql.append(" ORDER BY om.id, p.evidence_id");
        session = this.getSession();

        Query query = session.createSQLQuery(sql.toString());
        query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
        List<Map<String, Object>> list = query.list();
        Collections.sort(listParam);
        for (Map m : list) {
            Integer omId = (Integer) m.get("observed_metric_id");
            Integer evidenceId = (Integer) m.get("evidence_id");
            ProofDTO proofDTO = new ProofDTO();
            proofDTO.setProofId((Integer) m.get("proof_id"));
            proofDTO.setOrder((Integer) m.get("proof_order"));
            proofDTO.setPathWithMarks((String) m.get("path_with_marks"));
            proofDTO.setPathWithoutMarks((String) m.get("path_without_marks"));
            proofDTO.setProofResult((Integer) m.get("proof_result"));

            ObservedMetricResultDTO omrdto = new ObservedMetricResultDTO();
            omrdto.setObservedMetricId(omId);
            int index = Collections.binarySearch(listParam, omrdto);
            if (index >= 0) {
                omrdto = listParam.get(index);
                List<EvidenceDTO> evidences = omrdto.getEvidences();
                Collections.sort(listParam);
                EvidenceDTO evidenceDTO = new EvidenceDTO();
                evidenceDTO.setEvidenceId(evidenceId);
                index = Collections.binarySearch(evidences, evidenceDTO);
                if (index >= 0) {
                    evidenceDTO = evidences.get(index);
                    evidenceDTO.getProofs().add(proofDTO);
                }
            }
        }
    } catch (Exception e) {
        log.error("error = " + e, e);
        //"periscopeexception.list.error", new String[]{
        throw new ScopixException("label.evidence", e);
    } finally {
        try {
            this.releaseSession(session);
        } catch (Exception e) {
            log.error("Error " + e, e);
        }
    }
    log.debug("end, result = " + listParam);
    return listParam;
}

From source file:com.scopix.periscope.qualitycontrol.dao.QualityControlHibernateDAOImpl.java

License:Open Source License

@Override
public List<EvidenceFinishedDTO> getEvidenceFinishedList(Date start, Date end, boolean rejected)
        throws ScopixException {
    List<EvidenceFinishedDTO> listResult = new ArrayList<EvidenceFinishedDTO>();
    Session session = null;//  w w  w.  j  av a  2s  .com
    //        PreparedStatement st = null;
    //        ResultSet rs = null;
    //        Connection con = null;
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    try {
        StringBuilder sql = new StringBuilder();
        sql.append("select distinct ");
        sql.append("p.description as area , ");
        sql.append("e.evidence_date, ");
        sql.append("ee.evidence_result, ");
        sql.append("ee.cant_do_reason, ");
        sql.append("om.id as metric_id, ");
        sql.append("e.evidence_path, ");
        sql.append("ep.description as camera, ");
        sql.append("mt.metric_type_element, ");
        sql.append("mt.evaluation_instruction, ");
        sql.append("ee.evaluation_user, ");
        sql.append("ee.rejected, ");
        sql.append("ee.evaluation_date, ");
        sql.append("ee.id AS evidence_evaluation_id, ");
        sql.append("ee.init_evaluation, ");
        sql.append("ee.end_evaluation, ");
        sql.append("ee.evaluation_time_in_seconds, ");
        sql.append("store.description AS store_name ");
        sql.append("from evidence_evaluation ee, ");
        sql.append("evidence e, ");
        sql.append("observed_metric om, ");
        sql.append("metric m, ");
        sql.append("metric_template mt, ");
        sql.append("place p, ");
        sql.append("place store, ");
        sql.append("rel_evidence_request_evidence rel, ");
        sql.append("evidence_request er, ");
        sql.append("evidence_provider ep, ");
        sql.append("rel_evidence_evaluation_evidence reee ");
        sql.append("where reee.evidence_id = e.id ");
        sql.append("and reee.evidence_evaluation_id = ee.id ");
        sql.append("and ee.observed_metric_id = om.id ");
        sql.append("and om.metric_id = m.id ");
        sql.append("and m.metric_template_id = mt.id ");
        sql.append("and m.area_id = p.id ");
        sql.append("and rel.evidence_id = e.id ");
        sql.append("and rel.evidence_request_id = er.id ");
        sql.append("and er.evidence_provider_id = ep.id ");
        sql.append("and e.evidence_date >= '");
        sql.append(sdf.format(start));
        sql.append(" 00:00:00' ");
        sql.append("and e.evidence_date <= '");
        sql.append(sdf.format(end));
        sql.append(" 23:59:59' ");
        sql.append("and m.store_id = store.id ");

        if (!rejected) {
            sql.append("and ee.rejected = false ");
        }
        session = this.getSession();

        Query query = session.createSQLQuery(sql.toString());
        query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
        List<Map<String, Object>> list = query.list();
        Set<Integer> eeId = new HashSet<Integer>();
        for (Map m : list) {
            if (!eeId.contains((Integer) m.get("evidence_evaluation_id"))) {
                EvidenceFinishedDTO dto = new EvidenceFinishedDTO();
                dto.setArea((String) m.get("area"));
                dto.setEvidenceDate((Date) m.get("evidence_date"));
                dto.setEvidenceEvaluationResult((Integer) m.get("evidence_result"));
                dto.setCantDoReason((String) m.get("cant_do_reason"));
                dto.setObservedMetricId((Integer) m.get("metric_id"));
                dto.setEvidencePath((String) m.get("evidence_path"));
                dto.setProvider((String) m.get("camera"));
                dto.setMetricType(MetricType.valueOf((String) m.get("metric_type_element")));
                dto.setEvaluationInstruction((String) m.get("evaluation_instruction"));
                dto.setUserName((String) m.get("evaluation_user"));
                dto.setRejected((Boolean) m.get("rejected"));
                dto.setEvaluationDate((Date) m.get("evaluation_date"));
                dto.setInitEvaluationDate((Date) m.get("init_evaluation"));
                dto.setEndEvaluationDate((Date) m.get("end_evaluation"));
                dto.setEvaluationTimeInSeconds(m.get("evaluation_time_in_seconds") == null ? null
                        : ((BigInteger) m.get("evaluation_time_in_seconds")).longValue());
                dto.setStoreName((String) m.get("store_name"));
                listResult.add(dto);

                eeId.add((Integer) m.get("evidence_evaluation_id"));
            }
        }
    } catch (Exception e) {
        log.error("Error " + e, e);
        //"periscopeexception.list.error", new String[]{
        throw new ScopixException("tab.qualitycontrol.summary", e);
    } finally {
        try {
            this.releaseSession(session);
        } catch (Exception e) {
            log.error("Error " + e.getMessage(), e);
        }
    }
    log.debug("end, result = " + listResult);

    return listResult;
}

From source file:com.scopix.periscope.queuemanagement.dao.QueueManagementHibernateDAO.java

License:Open Source License

/**
 *
 * @param filter Filtros para retornar lista
 * @return List<PendingEvaluationDTO> generada para filtros
 * @throws ScopixException Excepcion en caso de error
 *//*from   www.  java2 s .c  o  m*/
public List<PendingEvaluationDTO> getPendingEvaluationList(FilteringData filter) throws ScopixException {
    log.info("start");
    List<PendingEvaluationDTO> pendingEvaluationDTOs = new ArrayList<PendingEvaluationDTO>();
    Session session = null;
    try {
        StringBuilder sql = new StringBuilder();
        sql.append("SELECT DISTINCT   ");
        sql.append(" pe.id AS pendingEvaluationId,    ");
        sql.append(" pe.user_name AS userName,    ");
        sql.append(" st.name AS situationTemplate,    ");
        sql.append(" st.id AS situationTemplateId,    ");
        sql.append(" a.description AS area,    ");
        sql.append(" a.id AS areaId,    ");
        sql.append(" mt.description AS description,    ");
        sql.append(" mt.metric_type_element AS type,    ");
        sql.append(" e.evidence_date AS date,    ");
        sql.append(" os.id AS observedSituationId,    ");
        sql.append(" pe.evaluation_state AS state,    ");
        sql.append(" pe.evaluation_queue AS queue,    ");
        sql.append(" pe.priority AS priority,    ");
        sql.append(" store.description AS store_description,     ");
        //sql.append(" e.id AS evidenceId,    ");
        sql.append(" e.evidence_date AS evidenceDate,    ");
        sql.append(" p.description  AS product,  ");
        sql.append(" m.metric_order   ");
        sql.append("FROM  ");
        sql.append("pending_evaluation pe, ");
        sql.append("observed_situation os,  ");
        sql.append("situation s, ");
        sql.append("situation_template st, ");
        sql.append("observed_metric om, ");
        sql.append("metric m, ");
        sql.append("metric_template mt, ");
        sql.append("product p, ");
        sql.append("place a, ");
        sql.append("place store, ");
        sql.append("evidence e, ");
        sql.append("rel_observed_metric_evidence rel ");
        sql.append("where  ");
        sql.append("os.id = pe.observed_situation_id ");
        sql.append("and s.id = os.situation_id ");
        sql.append("and st.id = s.situation_template_id ");
        sql.append("and om.observed_situation_id = os.id ");
        sql.append("and m.id = om.metric_id ");
        sql.append("and mt.id = m.metric_template_id ");
        sql.append("and a.id = m.area_id ");
        sql.append("and store.id = m.store_id ");
        sql.append("and p.id = st.product_id ");
        sql.append("and rel.observed_metric_id = om.id ");
        sql.append("and e.id = rel.evidence_id ");
        if (filter != null) {
            if (filter.getDate() != null) {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                sql.append(" AND os.observed_situation_date = '").append(sdf.format(filter.getDate()))
                        .append("'");
            }
            if (filter.getArea() != null && filter.getArea() > 0) {
                sql.append(" AND a.id = ").append(filter.getArea());
            }
            if (filter.getQueue() != null && filter.getQueue().length() > 0) {
                sql.append(" AND pe.evaluation_queue = '").append(EvaluationQueue.valueOf(filter.getQueue()))
                        .append("'");
            }
            if (filter.getStore() != null && filter.getStore() > 0) {
                sql.append(" AND a.store_id = ").append(filter.getStore());
            }
            if (filter.getStatus() != null && filter.getStatus().length() > 0) {
                sql.append(" AND pe.evaluation_state = '").append(EvaluationState.valueOf(filter.getStatus()))
                        .append("'");
            }
            if (filter.getQueueNameId() != null
                    && (filter.getQueueNameId() > 0 || filter.getQueueNameId() == -1)) {
                sql.append(" AND pe.operator_queue_id = ").append(filter.getQueueNameId());
            } else {
                sql.append(" AND pe.operator_queue_id is null");
            }
        }
        sql.append(" ORDER BY pe.priority, pe.id, m.metric_order ASC");
        session = this.getSession();

        Query query = session.createSQLQuery(sql.toString());
        query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
        List<Map<String, Object>> list = query.list();

        int id = 0;
        PendingEvaluationDTO dto = null;
        for (Map m : list) {
            if (id != (Integer) m.get("pendingevaluationid")) {
                id = (Integer) m.get("pendingevaluationid");
                dto = new PendingEvaluationDTO();
                dto.setPendingEvaluationId(id);
                dto.setSituationTemplate((String) m.get("situationtemplate"));
                dto.setUserName((String) m.get("username"));
                dto.setSituationTemplateId((Integer) m.get("situationtemplateid"));
                dto.setArea((String) m.get("area"));
                dto.setAreaId((Integer) m.get("areaid"));
                dto.setDescription((String) m.get("description"));
                dto.setType((String) m.get("type"));
                dto.setDate((Date) m.get("date"));
                dto.setObservedSituationId((Integer) m.get("observedsituationid"));
                dto.setState(EvaluationState.valueOf((String) m.get("state")));
                dto.setQueue(EvaluationQueue.valueOf((String) m.get("queue")));
                dto.setPriority((Integer) m.get("priority"));
                //dto.setEvidenceId(rs.getInt("evidenceId"));
                dto.setEvidenceDate((Date) m.get("evidencedate"));
                dto.setProduct((String) m.get("product"));
                dto.setStore((String) m.get("store_description"));
                pendingEvaluationDTOs.add(dto);
            } else {
                dto.setDescription(dto.getDescription() + "<br>" + (String) m.get("description"));
                dto.setType(dto.getType() + "<br>" + (String) m.get("type"));
            }
        }

    } catch (Exception e) {
        log.error("Error " + e, e);
        //"periscopeexception.list.error", new String[]{
        throw new ScopixException("tab.queueManagement.pending");
    } finally {
        try {
            this.releaseSession(session);
        } catch (Exception e) {
            log.error("Error " + e.getMessage(), e);
        }
    }
    log.info("end, result = " + pendingEvaluationDTOs);
    return pendingEvaluationDTOs;
}

From source file:com.scopix.periscope.queuemanagement.dao.QueueManagementHibernateDAO.java

License:Open Source License

/**
 *
 * @param quantity//from w w  w.  j  a v a 2 s . c  om
 * @param queueNameId
 * @return
 * @throws PeriscopeException
 */
public List<PendingEvaluationDTO> getNFirstElementOfQueue(int quantity, Integer queueNameId)
        throws ScopixException {
    log.info("start");
    List<PendingEvaluationDTO> pendingEvaluationDTOs = new ArrayList<PendingEvaluationDTO>();
    Session session = null;
    try {
        StringBuilder sql = new StringBuilder();

        sql.append("SELECT DISTINCT ");
        sql.append("st.name AS situationTemplate, ");
        sql.append("a.description AS area, ");
        sql.append("prod.description AS product, ");
        sql.append("pe.priority AS priority, ");
        sql.append("min(e.evidence_date) AS evidenceDate, ");
        sql.append("store.description AS store ");
        sql.append("FROM ");
        sql.append("pending_evaluation pe, ");
        sql.append("evidence e, ");
        sql.append("observed_situation os, ");
        sql.append("situation s, ");
        sql.append("metric m, ");
        sql.append("observed_metric om, ");
        sql.append("place a, ");
        sql.append("place store, ");
        sql.append("situation_template st, ");
        sql.append("product prod, ");
        sql.append("rel_observed_metric_evidence rel ");
        sql.append("WHERE ");
        sql.append("pe.evaluation_queue = 'OPERATOR' ");
        sql.append("AND pe.evaluation_state = 'ENQUEUED' ");
        sql.append("AND os.id = pe.observed_situation_id ");
        sql.append("and os.id = om.observed_situation_id ");
        sql.append("AND s.id = os.situation_id ");
        sql.append("AND s.id = m.situation_id ");
        sql.append("AND a.id = m.area_id ");
        sql.append("AND st.id = s.situation_template_id ");
        sql.append("AND store.id = m.store_id ");
        sql.append("AND m.id = om.metric_id ");
        sql.append("AND om.id = rel.observed_metric_id ");
        sql.append("AND e.id = rel.evidence_id ");
        sql.append("AND prod.id = st.product_id ");
        if (queueNameId != null && (queueNameId > 0 || queueNameId == -1)) {
            sql.append("AND pe.operator_queue_id = ").append(queueNameId).append(" ");
        } else {
            sql.append("AND pe.operator_queue_id is null ");
        }
        sql.append(
                "group by pe.id, st.name, st.id, a.description, a.id, prod.description, os.id, pe.evaluation_state, ");
        sql.append("pe.evaluation_queue, pe.priority, store.description, store.id ");
        sql.append("ORDER BY pe.priority ASC LIMIT ").append(quantity);

        session = this.getSession();

        Query query = session.createSQLQuery(sql.toString());
        query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
        List<Map<String, Object>> list = query.list();

        int id = 0;
        PendingEvaluationDTO dto = null;
        for (Map m : list) {
            dto = new PendingEvaluationDTO();
            dto.setPendingEvaluationId(id);
            dto.setSituationTemplate((String) m.get("situationtemplate"));
            dto.setProduct((String) m.get("product"));
            dto.setArea((String) m.get("area"));
            dto.setPriority((Integer) m.get("priority"));
            dto.setEvidenceDate((Date) m.get("evidencedate"));
            dto.setDate(dto.getEvidenceDate());
            dto.setStore((String) m.get("store"));

            pendingEvaluationDTOs.add(dto);
        }

    } catch (Exception e) {
        log.error("Error " + e.getMessage(), e);
        //"periscopeexception.list.error", new String[]{
        throw new ScopixException("tab.queueManagement.pending");
    } finally {
        try {
            this.releaseSession(session);
        } catch (Exception e) {
            log.error("Error " + e.getMessage(), e);
        }
    }
    log.info("end, result = " + pendingEvaluationDTOs);
    return pendingEvaluationDTOs;
}

From source file:com.scopix.periscope.queuemanagement.dao.QueueManagementHibernateDAO.java

License:Open Source License

/**
 *
 * @param queueName//from   w ww  .  j  a v  a 2s .  c  om
 * @return
 */
public int getFirstElementOfQueueId(String queueName) {
    log.info("start [queueName:" + queueName + "]");

    Integer peId = null;
    Session session = null;

    try {
        StringBuilder sql = new StringBuilder();
        //            sql.append("select pe.id, pe.priority ");
        //            sql.append("from pending_evaluation pe ");
        //            sql.append("where ");
        //            sql.append("pe.evaluation_queue = 'OPERATOR' ");
        //            sql.append("and pe.evaluation_state = 'ENQUEUED' ");
        //            if (queueName != null && queueName.length() > 0) {
        //                sql.append("and pe.operator_queue_id = (select id from operator_queue op where op.activo = true ");
        //                sql.append("and op.name = '").append(queueName).append("') ");
        //            } else {
        //                sql.append("and pe.operator_queue_id is null ");
        //            }
        //            sql.append("order by pe.priority ");
        //            sql.append("limit 1 ");
        boolean forQueue = queueName != null && queueName.length() > 0;
        sql.append("select pe.id, pe.priority, os.evidence_date ");
        sql.append("from pending_evaluation pe, observed_situation os, situation s, ");
        sql.append("situation_template st, observed_metric om, metric m, place store ");
        if (forQueue) {
            //add to table
            sql.append(", operator_queue oq ");
        }
        sql.append("where ");
        sql.append("pe.evaluation_queue = 'OPERATOR' ");
        sql.append("and pe.evaluation_state = 'ENQUEUED' ");
        if (forQueue) {
            //                sql.append("and pe.operator_queue_id = (select id from operator_queue op where op.activo = true ");
            //                sql.append("and op.name = '").append(queueName).append("') ");
            sql.append("and pe.operator_queue_id = oq.id ");
            sql.append("and oq.activo = true ");
            sql.append("and oq.name = '").append(queueName).append("' ");
        } else {
            sql.append("and pe.operator_queue_id is null ");
        }
        sql.append("and os.id = pe.observed_situation_id ");
        /**
         * add where for return pending evaluation not expired in situation live
         */
        sql.append("and s.id = os.situation_id ");
        sql.append("and st.id = s.situation_template_id ");
        sql.append("and om.observed_situation_id = os.id ");
        sql.append("and m.id = om.metric_id ");
        sql.append("and store.id = m.store_id ");
        sql.append("and  ");
        sql.append("   case  ");
        sql.append("      when (st.live = true) then ");
        sql.append(
                "      os.evidence_date >= ( cast((now() AT TIME ZONE store.time_zone_id) as timestamp without time zone) - interval '1 minute' * st.delay_in_minutes) ");
        sql.append("      else true ");
        sql.append("      end ");
        sql.append("order by pe.priority , os.evidence_date desc ");
        sql.append("limit 1");

        session = this.getSession();

        Query query = session.createSQLQuery(sql.toString());
        query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
        List<Map<String, Object>> list = query.list();

        if (list == null || list.isEmpty()) {
            peId = 0;
        } else {
            peId = ((Integer) ((Map) list.get(0)).get("id"));
        }
        log.debug("peId: " + peId);
    } catch (DataAccessResourceFailureException e) {
        log.error("Error " + e.getMessage(), e);
    } catch (IllegalStateException e) {
        log.error("Error " + e.getMessage(), e);
    } catch (HibernateException e) {
        log.error("Error " + e.getMessage(), e);
    } finally {
        try {
            this.releaseSession(session);
        } catch (Exception e) {
            log.error("Error " + e.getMessage(), e);
        }
    }
    log.info("end [result:" + peId + "]");
    return peId;
}

From source file:com.scopix.periscope.queuemanagement.dao.QueueManagementHibernateDAO.java

License:Open Source License

/**
 *
 * @return @throws PeriscopeException/*from w  ww  . ja  v a  2s .  c om*/
 */
public List<OperatorQueueDTO> getOperatorQueues() throws ScopixException {
    log.info("start");
    List<OperatorQueueDTO> operatorQueueDTOs = new ArrayList<OperatorQueueDTO>();
    Session session = null;

    try {
        String sql = "SELECT DISTINCT name, id FROM operator_queue where activo = true ";

        session = this.getSession();

        Query query = session.createSQLQuery(sql.toString());
        query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
        List<Map<String, Object>> list = query.list();

        OperatorQueueDTO dto = null;
        for (Map m : list) {
            dto = new OperatorQueueDTO();
            dto.setId((Integer) m.get("id"));
            dto.setName((String) m.get("name"));

            operatorQueueDTOs.add(dto);
        }
    } catch (Exception e) {
        log.error("Error " + e.getMessage(), e);
    } finally {
        try {
            this.releaseSession(session);
        } catch (Exception e) {
            log.error("Error " + e.getMessage(), e);
        }
    }
    log.info("end, result = " + operatorQueueDTOs);
    return operatorQueueDTOs;
}

From source file:com.scopix.periscope.queuemanagement.dao.QueueManagementHibernateDAO.java

License:Open Source License

/**
 * Looks on the database for available evidences to be processed the result is mapped on map and each key will be equivalent
 * to the queue name and the value is a Integer representing the total of evidences available to be processed for that
 * specific queue//  w w  w. j a  va  2s. co m
 *
 * @return Map<String, Integer> ex DSO,9
 * @throws PeriscopeException
 */
public Map<String, Integer> countAvailableEvidencesByQueue() throws ScopixException {
    log.info("start countAvailableEvidencesByQueue()");

    Session session = null;
    Map<String, Integer> resultMap = new HashMap<String, Integer>();

    try {
        StringBuilder sql = new StringBuilder();
        sql.append("select count(1) as total, data.name as queuename ");
        sql.append(" from ");
        sql.append("(");
        sql.append("  select distinct pe.id, oq.name ");
        sql.append("   from operator_queue oq, pending_evaluation pe, observed_situation os, ");
        sql.append("   situation s, situation_template st, observed_metric om, metric m, place store ");
        sql.append("   where ");
        sql.append("   oq.activo = true ");
        sql.append("   and pe.operator_queue_id = oq.id ");
        sql.append("   and pe.evaluation_state ='ENQUEUED' ");
        sql.append("   and pe.evaluation_queue = 'OPERATOR' ");
        sql.append("   and os.id = pe.observed_situation_id ");
        sql.append("   and s.id = os.situation_id ");
        sql.append("   and st.id = s.situation_template_id ");
        sql.append("   and st.active = true   ");
        sql.append("   and om.observed_situation_id = os.id ");
        sql.append("   and m.id = om.metric_id ");
        sql.append("   and store.id = m.store_id ");
        sql.append("   and st.live = true ");
        sql.append(
                "   and os.evidence_date >= (cast((now() AT TIME ZONE store.time_zone_id) as timestamp without time zone) - interval '1 minute' * st.delay_in_minutes) ");
        sql.append(") as data ");
        sql.append(" group by data.name ");
        sql.append(" union all");
        sql.append("  select count(1) as total, oq.name as queuename ");
        sql.append("   from operator_queue oq, pending_evaluation pe, observed_situation os, ");
        sql.append("   situation s, situation_template st");
        sql.append("   where ");
        sql.append("   oq.activo = true ");
        sql.append("   and pe.operator_queue_id = oq.id ");
        sql.append("   and pe.evaluation_state ='ENQUEUED' ");
        sql.append("   and pe.evaluation_queue = 'OPERATOR' ");
        sql.append("   and os.id = pe.observed_situation_id ");
        sql.append("   and s.id = os.situation_id ");
        sql.append("   and st.id = s.situation_template_id ");
        sql.append("   and st.active = true ");
        sql.append("   and st.live = false");
        sql.append(" group by oq.name");

        //            sql.append("select count(1) as total, data.name as queuename ");
        //            sql.append(" from ");
        //            sql.append("(");
        //            sql.append("  select distinct pe.id, oq.name ");
        //            sql.append("   from operator_queue oq, pending_evaluation pe, observed_situation os, ");
        //            sql.append("   situation s, situation_template st, observed_metric om, metric m, place store ");
        //            sql.append("   where ");
        //            sql.append("   oq.activo = true ");
        //            sql.append("   and pe.operator_queue_id = oq.id ");
        //            sql.append("   and pe.evaluation_state ='ENQUEUED' ");
        //            sql.append("   and pe.evaluation_queue = 'OPERATOR' ");
        //            sql.append("   and os.id = pe.observed_situation_id ");
        //            sql.append("   and s.id = os.situation_id ");
        //            sql.append("   and st.id = s.situation_template_id ");
        //            sql.append("   and om.observed_situation_id = os.id ");
        //            sql.append("   and m.id = om.metric_id ");
        //            sql.append("   and store.id = m.store_id ");
        //            sql.append("  and ");
        //            sql.append("    case ");
        //            sql.append("      when (st.live = true) then ");
        //            sql.append("      os.evidence_date >= (cast((now() AT TIME ZONE store.time_zone_id) as timestamp without time zone) - interval '1 minute' * st.delay_in_minutes) ");
        //            sql.append("      else true ");
        //            sql.append("     end ");
        //            sql.append(") as data ");
        //            sql.append(" group by data.name");
        //            sql.append("select count(1) as total, oq.name as queuename ");
        //            sql.append("from operator_queue oq, pending_evaluation pe ");
        //            sql.append("where ");
        //            sql.append("oq.activo = true ");
        //            sql.append("and pe.operator_queue_id = oq.id ");
        //            sql.append("and pe.evaluation_state ='ENQUEUED' ");
        //            sql.append("and pe.evaluation_queue = 'OPERATOR' ");
        //            sql.append("group by oq.name ");
        session = this.getSession();

        Query query = session.createSQLQuery(sql.toString());
        query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
        List<Map<String, Object>> queueCountlist = query.list();

        if (queueCountlist != null && !queueCountlist.isEmpty()) {
            for (Map<String, Object> queueCount : queueCountlist) {
                resultMap.put((String) queueCount.get("queuename"),
                        ((BigInteger) queueCount.get("total")).intValue());
            }
        }
        log.debug("results processed");
    } catch (Exception e) {
        log.error("Error " + e.getMessage(), e);
        throw new ScopixException(e);
    } finally {
        try {
            this.releaseSession(session);
        } catch (Exception e) {
            log.error("Error " + e.getMessage(), e);
        }
    }
    log.info("end [results retrieved from database:" + resultMap.size() + "]");
    return resultMap;
}

From source file:eu.europa.ec.fisheries.uvms.spatial.service.dao.AbstractAreaDao.java

License:Open Source License

public List<Map<String, Object>> findSelectedAreaColumns(String namedQueryString, List<Long> gids) {
    Query query = getEntityManager().unwrap(Session.class).getNamedQuery(namedQueryString);
    query.setParameterList("ids", gids);
    query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
    return query.list();
}

From source file:ispyb.server.biosaxs.services.core.analysis.abInitioModelling.AbInitioModelling3ServiceBean.java

License:Open Source License

private List<Map<String, Object>> getAll(String mySQLQuery) {
    Session session = (Session) this.entityManager.getDelegate();
    SQLQuery query = session.createSQLQuery(mySQLQuery);
    query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
    @SuppressWarnings("unchecked")
    List<Map<String, Object>> aliasToValueMapList = query.list();
    return aliasToValueMapList;
}

From source file:ispyb.server.biosaxs.services.core.analysis.abInitioModelling.AbInitioModelling3ServiceBean.java

License:Open Source License

@Override
public List<Map<String, Object>> getAnalysisCalibrationByProposalId(int experimentId) {
    String mySQLQuery = SQLQueryKeeper.getAnalysisCalibrationByProposalId(experimentId);
    Session session = (Session) this.entityManager.getDelegate();
    SQLQuery query = session.createSQLQuery(mySQLQuery);
    query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
    @SuppressWarnings("unchecked")
    List<Map<String, Object>> aliasToValueMapList = query.list();
    return aliasToValueMapList;
}