public static LinkedHashMap<String, Long> getTopData(List<ProcessTime> models, int top) {
    // 同一命令只留最耗时的命令
    models = mini(models);

    LinkedHashMap<Long, ProcessTime> LinkedHashMap = new LinkedHashMap<>();
    // 将日志数据转换为统计报表数据
    for (ProcessTime item : models) {
      LinkedHashMap.put(item.getProcessTime(), item);
    }
    Collection<Long> keys = LinkedHashMap.keySet();
    List<Long> list = new ArrayList<>();
    for (Long key : keys) {
      list.add(key);
    }
    Collections.sort(list);
    Collections.reverse(list);
    LinkedHashMap<String, Long> result = new LinkedHashMap<>();
    int i = 0;
    for (Long processTime : list) {
      String newKey =
          DateTypeConverter.toDefaultDateTime(LinkedHashMap.get(processTime).getStartTime())
              + ", "
              + LinkedHashMap.get(processTime).getResource();
      result.put(newKey, processTime);
      i++;
      if (i >= top) {
        break;
      }
    }
    return result;
  }
  private static LinkedHashMap<String, Long> getSequenceTimeData(
      List<ProcessTime> models, String format) {
    LinkedHashMap<String, ProcessTime> temp = new LinkedHashMap<>();
    // 将日志数据转换为统计报表数据
    for (ProcessTime item : models) {
      String key = new SimpleDateFormat(format).format(item.getStartTime());
      ProcessTime value = temp.get(key);
      if (value == null) {
        value = item;
      } else {
        value = value.getProcessTime() > item.getProcessTime() ? value : item;
      }

      temp.put(key, value);
    }
    LinkedHashMap<String, Long> LinkedHashMap = new LinkedHashMap<>();
    for (String key : temp.keySet()) {
      LinkedHashMap.put(key + ", " + temp.get(key).getResource(), temp.get(key).getProcessTime());
    }
    return LinkedHashMap;
  }
  public static LinkedHashMap<String, Long> getUserTimeData(List<ProcessTime> models) {
    LinkedHashMap<String, Long> temp = new LinkedHashMap<>();
    // 将日志数据转换为统计报表数据
    for (ProcessTime item : models) {
      User user = item.getOwnerUser();
      String username = "******";
      if (user != null) {
        username = user.getUsername();
      }

      Long value = temp.get(username);
      if (value == null) {
        value = item.getProcessTime();
      } else {
        value += item.getProcessTime();
      }

      temp.put(username, value);
    }
    return temp;
  }
 /**
  * 同一命令只留最耗时的命令
  *
  * @param models
  * @return
  */
 private static List<ProcessTime> mini(List<ProcessTime> models) {
   LinkedHashMap<String, ProcessTime> LinkedHashMap = new LinkedHashMap<>();
   for (ProcessTime item : models) {
     ProcessTime value = LinkedHashMap.get(item.getResource());
     if (value == null) {
       value = item;
     } else {
       value = value.getProcessTime() > item.getProcessTime() ? value : item;
     }
     LinkedHashMap.put(item.getResource(), value);
   }
   List<ProcessTime> list = new ArrayList<>();
   for (ProcessTime item : LinkedHashMap.values()) {
     list.add(item);
   }
   return list;
 }
  public static LinkedHashMap<String, Long> getProcessRate(List<ProcessTime> models) {
    Collections.sort(
        models,
        new Comparator() {

          @Override
          public int compare(Object o1, Object o2) {
            ProcessTime p1 = (ProcessTime) o1;
            ProcessTime p2 = (ProcessTime) o2;
            return (int) (p1.getStartTime().getTime() - p2.getStartTime().getTime());
          }
        });
    LinkedHashMap<String, Long> data = new LinkedHashMap<>();
    if (models.size() < 1) {
      return data;
    }
    ProcessTime first = models.get(0);
    ProcessTime latest = models.get(models.size() - 1);
    log.debug("首次请求时间:" + DateTypeConverter.toDefaultDateTime(first.getStartTime()));
    log.debug("最后请求时间:" + DateTypeConverter.toDefaultDateTime(latest.getEndTime()));
    long totalTime = latest.getEndTime().getTime() - first.getStartTime().getTime();
    log.debug(
        "系统总时间:"
            + latest.getEndTime().getTime()
            + "-"
            + first.getStartTime().getTime()
            + "="
            + totalTime);
    long processTime = 0;
    for (ProcessTime item : models) {
      log.debug("      增加请求处理时间:" + item.getProcessTime());
      processTime += item.getProcessTime();
    }
    log.debug("处理请求时间:" + processTime);
    long waitTime = totalTime - processTime;
    log.debug("系统空闲时间:" + waitTime);
    data.put("处理请求时间", processTime);
    data.put("系统空闲时间", -waitTime);

    return data;
  }