Browse Source

优化单设备在线路接口

develop
zhaoxianglong 10 months ago
parent
commit
a0cb61db6c
  1. 24
      zc-business/src/main/java/com/zc/business/controller/StatusController.java

24
zc-business/src/main/java/com/zc/business/controller/StatusController.java

@ -1,4 +1,5 @@
package com.zc.business.controller;
import com.github.pagehelper.util.StringUtil;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
@ -21,7 +22,10 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.stream.Collectors;
@ -130,19 +134,27 @@ public class StatusController extends BaseController {
List<Status> listStatus = statusService.deviceStatusListById(status);
// Calculate average successRate by day
Map<Integer, Double> averageSuccessRateByDay = listStatus.stream()
.collect(Collectors.groupingBy(s -> s.getTime().getDayOfMonth(),
Map<String, Double> averageSuccessRateByDay = listStatus.stream()
.collect(Collectors.groupingBy(s -> {
// 使用 DateTimeFormatter 格式化日期
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDate = s.getTime().format(formatter);
return formattedDate;
},
Collectors.averagingDouble(s -> Double.parseDouble(s.getSuccessRate().replace("%", "")))));
if (averageSuccessRateByDay.isEmpty()) {
return AjaxResult.success("暂无数据");
}
// Round average successRate to two decimal places
Map<Integer, Double> roundedAverageSuccessRateByDay = averageSuccessRateByDay.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey, entry -> Math.round(entry.getValue() * 100.0) / 100.0));
averageSuccessRateByDay.keySet().forEach(item -> {
BigDecimal bigDecimal = new BigDecimal(averageSuccessRateByDay.get(item));
averageSuccessRateByDay.put(item, bigDecimal.setScale(2, RoundingMode.HALF_UP).doubleValue());
});
return AjaxResult.success(roundedAverageSuccessRateByDay);
return AjaxResult.success(new TreeMap<>(averageSuccessRateByDay));
}
//按类型划分设备

Loading…
Cancel
Save