Commit 7b95a7a4988032985787e39b751b5ca7b81353d0

Authored by xp.Huang
1 parent 252a387f

fix: 数据查询出来后,对数据的总量进行排序(大->小),防止数组下标越界

... ... @@ -329,8 +329,16 @@ public class TkReportGenerateRecordServiceImpl
329 329 String deviceName,
330 330 List<List<String>> heads,
331 331 List<List<Object>> values) {
332   - int firstKey = 0;
  332 + Map<String,List<BasicData>> valuesMap = new HashMap<>();
333 333 for (String key : result.keySet()) {
  334 + List<BasicData> basicData = result.get(key);
  335 + valuesMap.put(key,basicData);
  336 + }
  337 + int firstKey = 0;
  338 + //排序后进行循环
  339 + for (Map.Entry<String, List<BasicData>> map:sortMap(valuesMap))
  340 + {
  341 + String key = map.getKey();
334 342 List<String> headValue = new ArrayList<>();
335 343 headValue.add(deviceName);
336 344 headValue.add(key + "采集值");
... ... @@ -339,7 +347,7 @@ public class TkReportGenerateRecordServiceImpl
339 347 tsValue.add(key + "采集时间");
340 348 heads.add(headValue);
341 349 heads.add(tsValue);
342   - List<BasicData> basicData = result.get(key);
  350 + List<BasicData> basicData = map.getValue();
343 351 for (int i = 0; i < basicData.size(); i++) {
344 352 BasicData item = basicData.get(i);
345 353 List<Object> listValue;
... ... @@ -402,4 +410,10 @@ public class TkReportGenerateRecordServiceImpl
402 410 saveOrUpdateReportGenerateRecord(recordDTO);
403 411 }
404 412 }
  413 +
  414 + private List<Map.Entry<String, List<BasicData>>> sortMap(Map<String,List<BasicData>> sortedMap){
  415 + List<Map.Entry<String, List<BasicData>>> sortedList = new ArrayList<>(sortedMap.entrySet());
  416 + Collections.sort(sortedList, (o1, o2) -> o2.getValue().size() - o1.getValue().size());
  417 + return sortedList;
  418 + }
405 419 }
... ...