Recent reports overview jdev_excrep-stable
authorJakub Lehotsky <jlehotsky@netbeans.org>
Fri, 08 Apr 2016 12:48:50 +0200
branchjdev_excrep-stable
changeset 631753bd1f4d7832
parent 6316 192c0112a2bc
child 6318 2fc5c064a51c
child 6319 ba0df6d6d760
Recent reports overview
logger/uihandlerserver/src/java/org/netbeans/web/action/OverseeAction.java
     1.1 --- a/logger/uihandlerserver/src/java/org/netbeans/web/action/OverseeAction.java	Fri Apr 08 10:37:56 2016 +0200
     1.2 +++ b/logger/uihandlerserver/src/java/org/netbeans/web/action/OverseeAction.java	Fri Apr 08 12:48:50 2016 +0200
     1.3 @@ -44,14 +44,14 @@
     1.4          "  from Exceptions e\n" +
     1.5          "group by e.reportId";
     1.6      
     1.7 +    String exceptionsStr = 
     1.8 +        "select e from Exceptions e\n"
     1.9 +        + "where e.reportdate > :reportDateFrom and e.reportdate < :reportDateTo\n";
    1.10 +    
    1.11      @Override
    1.12      public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
    1.13          
    1.14 -        // TODO: construct list that I want ...
    1.15 -        // First step: for each record type (JDEV, SRG), return the age of the most recent report
    1.16 -        
    1.17          List<OverseeItem> items = new ArrayList<>();
    1.18 -     
    1.19          
    1.20          EntityManager em = (EntityManager) request.getAttribute(EntityManagerFilter.ENTITY_MANAGER);
    1.21          Query query = em.createQuery(queryStr);
    1.22 @@ -140,9 +140,47 @@
    1.23          
    1.24          request.setAttribute("watchitems", items);
    1.25          
    1.26 +        request.setAttribute("exceptions0", queryExceptions(em,0));
    1.27 +        request.setAttribute("exceptions1", queryExceptions(em,-1));
    1.28 +        request.setAttribute("exceptions2", queryExceptions(em,-2));
    1.29 +        request.setAttribute("exceptions3", queryExceptions(em,-3));
    1.30 +        request.setAttribute("exceptions4", queryExceptions(em,-4));
    1.31 +        request.setAttribute("exceptions5", queryExceptions(em,-5));
    1.32 +        
    1.33          return mapping.findForward(SUCCESS);
    1.34      }
    1.35      
    1.36 +    private static void setParameter(Query query, String name, Object value) {
    1.37 +        if (value != null) {
    1.38 +            if (!(value instanceof String && value.toString().length() == 0)) {
    1.39 +                query.setParameter(name, value);
    1.40 +            }
    1.41 +        }
    1.42 +    }
    1.43 +
    1.44 +    private Object queryExceptions(EntityManager em, int i) {
    1.45 +        Calendar toCal = new GregorianCalendar();
    1.46 +        toCal.add(Calendar.DATE, i);
    1.47 +        toCal.set(Calendar.HOUR_OF_DAY, 23);
    1.48 +        toCal.set(Calendar.MINUTE, 59);
    1.49 +        toCal.set(Calendar.SECOND, 59);
    1.50 +        toCal.set(Calendar.MILLISECOND, 999);
    1.51 +
    1.52 +        Calendar fromCal = new GregorianCalendar();
    1.53 +        fromCal.add(Calendar.DATE, i);
    1.54 +        fromCal.set(Calendar.HOUR_OF_DAY, 0);
    1.55 +        fromCal.set(Calendar.MINUTE, 0);
    1.56 +        fromCal.set(Calendar.SECOND, 0);
    1.57 +        fromCal.set(Calendar.MILLISECOND, 0);
    1.58 +        
    1.59 +        Query query = em.createQuery(exceptionsStr);
    1.60 +        setParameter(query, "reportDateFrom", fromCal.getTime());
    1.61 +        setParameter(query, "reportDateTo", toCal.getTime());
    1.62 +        
    1.63 +        return query.getResultList();
    1.64 +
    1.65 +    }
    1.66 +    
    1.67      public class OverseeItem {
    1.68  
    1.69          String category;