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;