1 package compbio.controllers;
3 import java.text.ParseException;
4 import java.text.SimpleDateFormat;
5 import java.util.Calendar;
10 import org.springframework.stereotype.Controller;
11 import org.springframework.web.bind.annotation.RequestMapping;
12 import org.springframework.web.bind.annotation.RequestMethod;
13 import org.springframework.web.bind.annotation.RequestParam;
16 import compbio.cassandra.DataBase;
17 import compbio.statistic.CassandraRequester;
18 import compbio.statistic.StatisticsProt;
21 * @author Alexander Sherstnev
22 * @author Natasha Sherstneva
25 public class DayStatisticsController {
27 @RequestMapping(value = "/stat", method = RequestMethod.GET)
28 public String initFindForm(Map<String, Object> model) {
29 return "queryJobStatistics";
32 @RequestMapping(value = "/stat/query", method = RequestMethod.GET)
33 public String findJobsInPeriod(@RequestParam("date1") String date1, @RequestParam("date2") String date2,
34 @RequestParam("option") String option, Map<String, Object> model) {
35 final long startTime = System.currentTimeMillis();
37 CassandraRequester cr = new CassandraRequester();
38 if (option.equals("AllDates,off")) {
39 Calendar cal = Calendar.getInstance();
40 date1 = StatisticsProt.DateFormatYYMMDD(cr.earliestDate());
41 date2 = cal.get(Calendar.YEAR) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.DAY_OF_MONTH);
43 model.put("data1", date1);
44 model.put("data2", date2);
45 List<DataBase> res = cr.countJobs(date1, date2);
46 model.put("result", res);
47 final long endTime = System.currentTimeMillis();
48 model.put("timeExecution", (endTime - startTime));
49 model.put("flag", option);
50 return "/reportJobStatistics";
53 @RequestMapping(value = "/stat/oneday", method = RequestMethod.GET)
54 public String findJobsInOneDay(@RequestParam("date") String date, Map<String, Object> model) throws ParseException {
55 final long startTime = System.currentTimeMillis();
57 final SimpleDateFormat formaterDDMMYY = new SimpleDateFormat("dd/MM/yyyy");
58 final SimpleDateFormat formaterYYMMDD = new SimpleDateFormat("yyyy/MM/dd");
59 String date1 = formaterYYMMDD.format(new Date(formaterDDMMYY.parse(date).getTime()));
61 CassandraRequester cr = new CassandraRequester();
62 //List<DataBase> r1 = cr.countJobs(date1, date1);
63 List<DataBase> r = cr.readJobByDay(date);
64 model.put("results", r);
65 model.put("njobs", r.size());
66 model.put("date", date1);
67 final long endTime = System.currentTimeMillis();
68 model.put("timeExecution", (endTime - startTime));
69 System.out.println("Request for date = " + date1 + ": " + r.size() + " jobs found");
70 return "/reportJobStatisticsOneDay";