Exemple #1
0
  public void buildTrendGraph(Model model, Payload payload) {
    Date start = payload.getHistoryStartDate();
    Date end = payload.getHistoryEndDate();
    String type = payload.getType();
    String name = payload.getName();
    String display = name != null ? name : type;
    int size = (int) ((end.getTime() - start.getTime()) * 12 / TimeUtil.ONE_HOUR);
    String queryType = payload.getReportType();
    List<Map<String, double[]>> allDatas = new ArrayList<Map<String, double[]>>();
    long step = TimeUtil.ONE_MINUTE * 5;

    if (queryType.equalsIgnoreCase("day")) {
      Map<String, double[]> currentGraph = getGraphDatasForHour(start, end, model, payload);
      Map<String, double[]> lastDayGraph =
          getGraphDatasForHour(
              new Date(start.getTime() - TimeUtil.ONE_DAY),
              new Date(end.getTime() - TimeUtil.ONE_DAY),
              model,
              payload);
      Map<String, double[]> lastWeekGraph =
          getGraphDatasForHour(
              new Date(start.getTime() - TimeUtil.ONE_WEEK),
              new Date(end.getTime() - TimeUtil.ONE_WEEK),
              model,
              payload);

      allDatas.add(currentGraph);
      allDatas.add(lastDayGraph);
      allDatas.add(lastWeekGraph);
    } else if (queryType.equalsIgnoreCase("week")) {
      Map<String, double[]> currentGraph = getGraphDatasForHour(start, end, model, payload);
      Map<String, double[]> lastWeek =
          getGraphDatasForHour(
              new Date(start.getTime() - TimeUtil.ONE_WEEK),
              new Date(end.getTime() - TimeUtil.ONE_WEEK),
              model,
              payload);

      allDatas.add(currentGraph);
      allDatas.add(lastWeek);
    } else if (queryType.equalsIgnoreCase("month")) {
      size = (int) ((end.getTime() - start.getTime()) / TimeUtil.ONE_DAY);
      step = TimeUtil.ONE_DAY;
      Map<String, double[]> graphData = getGraphDatasFromDaily(start, end, model, payload);

      allDatas.add(graphData);
    } else {
      throw new RuntimeException("Error graph query type");
    }

    LineChart item = buildTotal(allDatas, start, size, step, display, queryType);
    model.setHitTrend(item.getJsonString());

    item = buildFail(allDatas, start, size, step, display, queryType);
    model.setFailureTrend(item.getJsonString());
  }