From cc1968351b7a9526dcec76b1cc2dd3a11019b43f Mon Sep 17 00:00:00 2001 From: zhaoxianglong Date: Thu, 21 Mar 2024 11:20:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9F=A5=E8=AF=A2=E5=8D=95?= =?UTF-8?q?=E4=B8=AA=E8=AE=BE=E5=A4=87=E5=9C=A8=E7=BA=BF=E7=8E=87=E8=AF=B7?= =?UTF-8?q?=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/controller/StatusController.java | 28 +++++++++---------- .../com/zc/business/mapper/StatusMapper.java | 1 + .../business/service/impl/StatusService.java | 3 ++ .../mapper/business/StatusMapper.xml | 13 +++++++++ 4 files changed, 30 insertions(+), 15 deletions(-) diff --git a/zc-business/src/main/java/com/zc/business/controller/StatusController.java b/zc-business/src/main/java/com/zc/business/controller/StatusController.java index ba211c23..00d235f4 100644 --- a/zc-business/src/main/java/com/zc/business/controller/StatusController.java +++ b/zc-business/src/main/java/com/zc/business/controller/StatusController.java @@ -13,10 +13,7 @@ import com.zc.business.service.impl.StatusService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.time.LocalDateTime; @@ -99,9 +96,8 @@ public class StatusController extends BaseController { @ApiOperation("根据设备Id查询折线图数据") - @GetMapping("/deviceStatusList") - public AjaxResult getDeviceStatusList(Long deviceId) { - + @GetMapping("/deviceStatusList/{deviceId}") + public AjaxResult getDeviceStatusList(@PathVariable Long deviceId) { LocalDateTime thirtyDaysAgo = LocalDateTime.now().minusDays(30); LocalDateTime currentTime = LocalDateTime.now(); @@ -110,20 +106,22 @@ public class StatusController extends BaseController { status.setTime(currentTime); status.setDeviceId(deviceId); - List listStatus = statusService.list(status); + List listStatus = statusService.deviceStatusListById(status); - // Group by day and calculate average successRate with two decimal places - Map averageSuccessRateByDay = listStatus.stream() + // Calculate average successRate by day + Map averageSuccessRateByDay = listStatus.stream() .collect(Collectors.groupingBy(s -> s.getTime().getDayOfMonth(), - Collectors.collectingAndThen( - Collectors.averagingDouble(s -> Double.parseDouble(s.getSuccessRate().replace("%", ""))), - avg -> Math.round(Float.parseFloat(String.format("%.2f", avg))) - ))); + Collectors.averagingDouble(s -> Double.parseDouble(s.getSuccessRate().replace("%", ""))))); + if (averageSuccessRateByDay.isEmpty()) { return AjaxResult.success("暂无数据"); } - return AjaxResult.success(averageSuccessRateByDay); + // Round average successRate to two decimal places + Map roundedAverageSuccessRateByDay = averageSuccessRateByDay.entrySet().stream() + .collect(Collectors.toMap(Map.Entry::getKey, entry -> Math.round(entry.getValue() * 100.0) / 100.0)); + + return AjaxResult.success(roundedAverageSuccessRateByDay); } //按类型划分设备 diff --git a/zc-business/src/main/java/com/zc/business/mapper/StatusMapper.java b/zc-business/src/main/java/com/zc/business/mapper/StatusMapper.java index 1980b0c8..9626befa 100644 --- a/zc-business/src/main/java/com/zc/business/mapper/StatusMapper.java +++ b/zc-business/src/main/java/com/zc/business/mapper/StatusMapper.java @@ -17,5 +17,6 @@ public interface StatusMapper { int Add(@Param("status")Status status); List listStatus(@Param("status")Status status); + List deviceStatusListById(@Param("status")Status status); } diff --git a/zc-business/src/main/java/com/zc/business/service/impl/StatusService.java b/zc-business/src/main/java/com/zc/business/service/impl/StatusService.java index f1e4ef64..93c42b31 100644 --- a/zc-business/src/main/java/com/zc/business/service/impl/StatusService.java +++ b/zc-business/src/main/java/com/zc/business/service/impl/StatusService.java @@ -30,4 +30,7 @@ public class StatusService { return list; } + public List deviceStatusListById(Status status) { + return statusMapper.deviceStatusListById(status); + } } diff --git a/zc-business/src/main/resources/mapper/business/StatusMapper.xml b/zc-business/src/main/resources/mapper/business/StatusMapper.xml index 2f303a32..cc5d9b16 100644 --- a/zc-business/src/main/resources/mapper/business/StatusMapper.xml +++ b/zc-business/src/main/resources/mapper/business/StatusMapper.xml @@ -109,4 +109,17 @@ + +