From 29c5ffc15ca55f8b7410162318f73e138c8aa4f6 Mon Sep 17 00:00:00 2001 From: mashili Date: Wed, 9 Jul 2025 16:57:41 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5-=E6=95=B0=E6=8D=AE=E6=A6=82?= =?UTF-8?q?=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ems/EmsHomePageController.java | 8 +++-- .../xzzn/ems/domain/vo/AlarmGradeList.java | 34 ++++++++++--------- .../xzzn/ems/domain/vo/ElectricIndexList.java | 6 ++-- .../ems/domain/vo/SystemEfficiencyList.java | 6 ++-- .../ems/mapper/EmsAlarmRecordsMapper.java | 7 ++++ .../impl/EmsStatsReportServiceImpl.java | 4 ++- .../ems/service/impl/HomePageServiceImpl.java | 34 +++++++++++++++++++ .../mapper/ems/EmsAlarmRecordsMapper.xml | 4 +++ .../resources/mapper/ems/EmsPcsDataMapper.xml | 25 ++++++++------ 9 files changed, 92 insertions(+), 36 deletions(-) diff --git a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsHomePageController.java b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsHomePageController.java index 6aa2e3f..23cca2d 100644 --- a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsHomePageController.java +++ b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsHomePageController.java @@ -34,9 +34,13 @@ public class EmsHomePageController extends BaseController{ * 首页看板数据 */ @GetMapping("/dataList") - public AjaxResult list() + public AjaxResult list() throws Exception { - return success(homePageService.getHomePageDataList()); + try { + return success(homePageService.getHomePageDataList()); + } catch (Exception e) { + return error(e.getMessage()); + } } /** diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/AlarmGradeList.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/AlarmGradeList.java index 50e9bd0..8378a40 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/AlarmGradeList.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/AlarmGradeList.java @@ -1,5 +1,7 @@ package com.xzzn.ems.domain.vo; +import java.math.BigDecimal; + /** * 首页看板数据概览-告警等级分布 */ @@ -7,39 +9,39 @@ public class AlarmGradeList { /** * 告警等级 */ - private String grade; + private String level; /** * 数据一 */ - private int num1; + private int dataNum; /** - * 数据三 + * 数据占比 */ - private int num2; + private BigDecimal percent; - public String getGrade() { - return grade; + public String getLevel() { + return level; } - public void setGrade(String grade) { - this.grade = grade; + public void setLevel(String level) { + this.level = level; } - public int getNum1() { - return num1; + public int getDataNum() { + return dataNum; } - public void setNum1(int num1) { - this.num1 = num1; + public void setDataNum(int dataNum) { + this.dataNum = dataNum; } - public int getNum2() { - return num2; + public BigDecimal getPercent() { + return percent; } - public void setNum2(int num2) { - this.num2 = num2; + public void setPercent(BigDecimal percent) { + this.percent = percent; } } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/ElectricIndexList.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/ElectricIndexList.java index 78d2df5..4047b09 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/ElectricIndexList.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/ElectricIndexList.java @@ -9,7 +9,7 @@ public class ElectricIndexList { /** * 月份 */ - private int dateMonth; + private String dateMonth; /** * 充电量 @@ -21,11 +21,11 @@ public class ElectricIndexList { */ private BigDecimal disChargeEnergy; - public int getDateMonth() { + public String getDateMonth() { return dateMonth; } - public void setDateMonth(int dateMonth) { + public void setDateMonth(String dateMonth) { this.dateMonth = dateMonth; } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/SystemEfficiencyList.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SystemEfficiencyList.java index 7fe89f8..6fe7c40 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/SystemEfficiencyList.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SystemEfficiencyList.java @@ -9,18 +9,18 @@ public class SystemEfficiencyList { /** * 月份 */ - private int dateMonth; + private String dateMonth; /** * 系统效率 */ private BigDecimal systemEfficiency; - public int getDateMonth() { + public String getDateMonth() { return dateMonth; } - public void setDateMonth(int dateMonth) { + public void setDateMonth(String dateMonth) { this.dateMonth = dateMonth; } diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAlarmRecordsMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAlarmRecordsMapper.java index f6b7c86..9f42370 100644 --- a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAlarmRecordsMapper.java +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAlarmRecordsMapper.java @@ -78,5 +78,12 @@ public interface EmsAlarmRecordsMapper */ public List getDeviceAlarmPropList(); + /** + * 获取设备等级分布 + * + */ + public List getAlarmGradeList(); + + public List getAlarmRecordDetailList(AlarmRecordListRequestVo requestVo); } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsStatsReportServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsStatsReportServiceImpl.java index 925d874..dbc7e66 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsStatsReportServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsStatsReportServiceImpl.java @@ -81,13 +81,15 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService // 计算单天的效率 BigDecimal dailyEfficiency = new BigDecimal(0); - if ( siteMonitorDataVo.getDisChargedCap().compareTo(BigDecimal.ZERO)>0){ + if ( siteMonitorDataVo.getChargedCap().compareTo(BigDecimal.ZERO)>0){ dailyEfficiency = siteMonitorDataVo.getDisChargedCap().divide(siteMonitorDataVo.getChargedCap(), 2, RoundingMode.HALF_UP); + dailyEfficiency = dailyEfficiency.multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); } siteMonitorDataVo.setDailyEfficiency(dailyEfficiency); } if ( totalCharge.compareTo(BigDecimal.ZERO)>0){ efficiency = totalDischarge.divide(totalCharge, 2, RoundingMode.HALF_UP); + efficiency = efficiency.multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); } electricDataInfoVo.setSevenDayDisChargeStats(dataList); electricDataInfoVo.setTotalDisChargedCap(totalDischarge); diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/HomePageServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/HomePageServiceImpl.java index 744645a..48f1f4a 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/HomePageServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/HomePageServiceImpl.java @@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; /** @@ -122,6 +123,26 @@ public class HomePageServiceImpl implements IHomePageService List electricDataList = emsPcsDataMapper.getElectDataList(); homePageDataViewVo.setElecDataList(electricDataList); // 系统效率 + List systemEfficiencyLists = new ArrayList<>(); + if (electricDataList != null && !electricDataList.isEmpty()) { + for (ElectricIndexList electricIndexList : electricDataList) { + SystemEfficiencyList systemEfficiency = new SystemEfficiencyList(); + systemEfficiency.setDateMonth(electricIndexList.getDateMonth()); + + BigDecimal dailyEfficiency = new BigDecimal(0); + BigDecimal chargeEnergy = electricIndexList.getChargeEnergy(); + BigDecimal disChargeEnergy = electricIndexList.getDisChargeEnergy(); + if (chargeEnergy != null && disChargeEnergy != null + && chargeEnergy.compareTo(BigDecimal.ZERO) > 0 + && disChargeEnergy.compareTo(BigDecimal.ZERO) >= 0) { + dailyEfficiency = electricIndexList.getDisChargeEnergy().divide(electricIndexList.getChargeEnergy(), 2, RoundingMode.HALF_UP); + dailyEfficiency = dailyEfficiency.multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); + } + systemEfficiency.setSystemEfficiency(dailyEfficiency); + systemEfficiencyLists.add(systemEfficiency); + } + } + homePageDataViewVo.setSysEfficList(systemEfficiencyLists); // 告警趋势 List alarmTrendList = alarmRecordsMapper.getAlarmTrendList(); homePageDataViewVo.setAlarmDataList(alarmTrendList); @@ -129,6 +150,19 @@ public class HomePageServiceImpl implements IHomePageService List deviceAlarmPropList = alarmRecordsMapper.getDeviceAlarmPropList(); homePageDataViewVo.setDeviceAlarmList(deviceAlarmPropList); // 告警等级分布 + List alarmLevelList = alarmRecordsMapper.getAlarmGradeList(); + if (alarmLevelList != null && !alarmLevelList.isEmpty()) { + BigDecimal total = new BigDecimal(alarmLevelList.size()); + for (AlarmGradeList alarmGradeList : alarmLevelList) { + if (alarmGradeList.getDataNum() != 0 + && total.compareTo(BigDecimal.ZERO) > 0) { + BigDecimal percent = new BigDecimal(alarmGradeList.getDataNum()).divide(total, 2, RoundingMode.HALF_UP) + .multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); + alarmGradeList.setPercent(percent); + } + } + } + homePageDataViewVo.setAlarmLevelList(alarmLevelList); return homePageDataViewVo; } diff --git a/ems-system/src/main/resources/mapper/ems/EmsAlarmRecordsMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsAlarmRecordsMapper.xml index 1ad3fbd..0c83cd3 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsAlarmRecordsMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsAlarmRecordsMapper.xml @@ -133,6 +133,10 @@ group by device_type + + select CONCAT(t.date_month,'/',t.date_day) as statisDate,