From ff058dceaff2f30f73b99104113a7e4a869d44b6 Mon Sep 17 00:00:00 2001 From: mashili Date: Wed, 13 Aug 2025 23:41:34 +0800 Subject: [PATCH] =?UTF-8?q?20250808=E4=BC=98=E5=8C=96-=E5=8D=95=E4=BD=93?= =?UTF-8?q?=E7=94=B5=E6=B1=A0=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ems/EmsSiteMonitorController.java | 24 +++++++++++-- .../core/controller/BaseController.java | 23 ++++++++++++ .../ems/domain/vo/SiteBatteryDataList.java | 36 +++++++++++++++++++ .../ems/mapper/EmsDevicesSettingMapper.java | 3 ++ .../xzzn/ems/service/ISingleSiteService.java | 4 ++- .../service/impl/SingleSiteServiceImpl.java | 28 +++++++++++---- .../mapper/ems/EmsDevicesSettingMapper.xml | 12 +++++++ 7 files changed, 120 insertions(+), 10 deletions(-) create mode 100644 ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteBatteryDataList.java diff --git a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsSiteMonitorController.java b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsSiteMonitorController.java index 700677c..8964915 100644 --- a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsSiteMonitorController.java +++ b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsSiteMonitorController.java @@ -3,14 +3,17 @@ package com.xzzn.web.controller.ems; import com.xzzn.common.core.controller.BaseController; import com.xzzn.common.core.domain.AjaxResult; import com.xzzn.common.core.page.TableDataInfo; +import com.xzzn.ems.domain.vo.BMSBatteryDataList; import com.xzzn.ems.domain.vo.BatteryDataStatsListVo; import com.xzzn.ems.domain.vo.DateSearchRequest; +import com.xzzn.ems.domain.vo.SiteBatteryDataList; import com.xzzn.ems.service.IEmsSiteService; import com.xzzn.ems.service.IEmsStatsReportService; import com.xzzn.ems.service.ISingleSiteService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.Arrays; import java.util.List; /** @@ -141,11 +144,26 @@ public class EmsSiteMonitorController extends BaseController{ * 获取电池簇下面的单体电池数据 */ @GetMapping("/getClusterDataInfoList") - public TableDataInfo getClusterDataInfoList(@RequestParam String clusterDeviceId,@RequestParam String siteId) + public TableDataInfo getClusterDataInfoList(@RequestParam String clusterDeviceId,@RequestParam String siteId,@RequestParam String stackDeviceId) { startPage(); - List list = iSingleSiteService.getClusterDataInfoList(clusterDeviceId,siteId); - return getDataTable2(list); + SiteBatteryDataList siteBatteryDataList = new SiteBatteryDataList(); + // 簇最大最小单体id数据 + List clusterBatteryDataList = iSingleSiteService.getClusterBatteryList(siteId,stackDeviceId,clusterDeviceId); + siteBatteryDataList.setClusterList(clusterBatteryDataList); + // 单体电池数据 + List List = iSingleSiteService.getClusterDataInfoList(clusterDeviceId,siteId,stackDeviceId); + // 对batteryList进行分页处理 + List batteryList = paginateList(List); + siteBatteryDataList.setBatteryList(batteryList); + + // 封装分页信息 + TableDataInfo pageInfo = new TableDataInfo(); + pageInfo.setTotal(List.size()); + pageInfo.setRows(Arrays.asList(siteBatteryDataList)); + pageInfo.setCode(0); + pageInfo.setMsg("查询成功"); + return pageInfo; } /** diff --git a/ems-common/src/main/java/com/xzzn/common/core/controller/BaseController.java b/ems-common/src/main/java/com/xzzn/common/core/controller/BaseController.java index 2eb7f8f..dd96aa1 100644 --- a/ems-common/src/main/java/com/xzzn/common/core/controller/BaseController.java +++ b/ems-common/src/main/java/com/xzzn/common/core/controller/BaseController.java @@ -232,4 +232,27 @@ public class BaseController rspData.setTotal(list.size()); return rspData; } + + /** + * 通用分页工具方法 + */ + protected List paginateList(List sourceList) { + if (sourceList == null || sourceList.isEmpty()) { + return new ArrayList<>(); + } + // 分页梳理 + PageDomain pageDomain = TableSupport.buildPageRequest(); + int pageNum = pageDomain.getPageNum(); + int pageSize = pageDomain.getPageSize(); + int startIndex = 0; + int endIndex = sourceList.size(); + if (pageNum > 0 && pageSize > 0) { + // 计算起始索引(处理页码小于1的情况) + startIndex = Math.max((pageNum - 1) * pageSize, 0); + // 计算结束索引(处理超出列表长度的情况) + endIndex = Math.min(startIndex + pageSize, sourceList.size()); + } + // 截取分页数据 + return sourceList.subList(startIndex, endIndex); + } } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteBatteryDataList.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteBatteryDataList.java new file mode 100644 index 0000000..aed6e02 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteBatteryDataList.java @@ -0,0 +1,36 @@ +package com.xzzn.ems.domain.vo; + +import com.xzzn.common.annotation.Excel; + +import java.util.List; + +/** + * 单站监控-单体电池返回数据 + * + */ +public class SiteBatteryDataList { + + // 簇相关单体最大最小值list + @Excel(name = "簇单体最大最小值list") + List clusterList; + + // 单体电池list + @Excel(name = "单体电池list") + List batteryList; + + public List getClusterList() { + return clusterList; + } + + public void setClusterList(List clusterList) { + this.clusterList = clusterList; + } + + public List getBatteryList() { + return batteryList; + } + + public void setBatteryList(List batteryList) { + this.batteryList = batteryList; + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDevicesSettingMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDevicesSettingMapper.java index 80fa7cc..1f451de 100644 --- a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDevicesSettingMapper.java +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDevicesSettingMapper.java @@ -84,4 +84,7 @@ public interface EmsDevicesSettingMapper public List> getLoadNameList(String siteId); public EmsDevicesSetting getDeviceBySiteAndDeviceId(@Param("deviceId")String deviceId, @Param("siteId")String siteId); + + public List> getClusterIdsByFuzzyQuery(@Param("siteId")String siteId, @Param("deviceCategory")String deviceCategory, + @Param("parentId")String parentId); } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/ISingleSiteService.java b/ems-system/src/main/java/com/xzzn/ems/service/ISingleSiteService.java index 398e12b..acfb411 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/ISingleSiteService.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/ISingleSiteService.java @@ -27,7 +27,7 @@ public interface ISingleSiteService public List getCoolingDataList(String siteId); - public List getClusterDataInfoList(String clusterDeviceId,String siteId); + public List getClusterDataInfoList(String clusterDeviceId,String siteId,String stackDeviceId); public AmmeterDataResponse getAmmeterDataList(String siteId); @@ -36,4 +36,6 @@ public interface ISingleSiteService public SiteMonitorRuningInfoVo getRunningGraphBatterySoc(String siteId); public SiteMonitorRuningInfoVo getRunningGraphBatteryTemp(String siteId); + + public List getClusterBatteryList(String siteId, String stackDeviceId, String clusterDeviceId); } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java index 43d4d80..22e76ca 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java @@ -270,8 +270,10 @@ public class SingleSiteServiceImpl implements ISingleSiteService { BeanUtils.copyProperties(stackData, bmsOverViewVo); } // 下面簇列表数据 + List batteryDataLists = new ArrayList<>(); if (!StringUtils.isEmpty(stackId)) { - getBMSClusterListInfo(siteId,stackId,bmsOverViewVo); + batteryDataLists = getBMSClusterListInfo(siteId,stackId,null); + bmsOverViewVo.setBatteryDataList(batteryDataLists); } bmsOverViewVoList.add(bmsOverViewVo); } @@ -279,10 +281,18 @@ public class SingleSiteServiceImpl implements ISingleSiteService { return bmsOverViewVoList; } - private void getBMSClusterListInfo(String siteId, String stackId, BMSOverViewVo bmsOverViewVo) { + private List getBMSClusterListInfo(String siteId, String stackId, String clusterDeviceId) { List batteryDataList = new ArrayList(); - List> clusterIds = emsDevicesSettingMapper.getDeviceInfoByParentId(siteId, stackId); + List> clusterIds = new ArrayList<>(); + if (StringUtils.isEmpty(clusterDeviceId)) { + clusterIds = emsDevicesSettingMapper.getClusterIdsByFuzzyQuery(siteId, DeviceCategory.CLUSTER.getCode(),stackId); + } else { + Map map = new HashMap<>(); + map.put("id", clusterDeviceId); + clusterIds.add(map); + } + for (Map clusterDevice : clusterIds) { BMSBatteryDataList bmsBatteryDataList= new BMSBatteryDataList(); // 从redis取单个簇的详细数据 @@ -295,7 +305,7 @@ public class SingleSiteServiceImpl implements ISingleSiteService { batteryDataList.add(bmsBatteryDataList); } - bmsOverViewVo.setBatteryDataList(batteryDataList); + return batteryDataList; } // 获取BMS电池簇数据 @@ -373,11 +383,11 @@ public class SingleSiteServiceImpl implements ISingleSiteService { * @return */ @Override - public List getClusterDataInfoList(String clusterDeviceId,String siteId) { + public List getClusterDataInfoList(String clusterDeviceId,String siteId,String stackDeviceId) { List batteryDataStatsListVo = new ArrayList<>(); List> clusterIds = new ArrayList<>(); if (StringUtils.isEmpty(clusterDeviceId)) { - clusterIds = emsDevicesSettingMapper.getDeviceInfosBySiteIdAndCategory(siteId, DeviceCategory.CLUSTER.getCode()); + clusterIds = emsDevicesSettingMapper.getClusterIdsByFuzzyQuery(siteId, DeviceCategory.CLUSTER.getCode(),stackDeviceId); } else { Map map = new HashMap<>(); map.put("id", clusterDeviceId); @@ -402,6 +412,12 @@ public class SingleSiteServiceImpl implements ISingleSiteService { return sortedList; } + // 获取单站的最大最小温度和电压单体数据id + @Override + public List getClusterBatteryList(String siteId, String stackDeviceId, String clusterDeviceId) { + return getBMSClusterListInfo(siteId, stackDeviceId,clusterDeviceId); + } + /** * 电表数据信息 * @param siteId diff --git a/ems-system/src/main/resources/mapper/ems/EmsDevicesSettingMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsDevicesSettingMapper.xml index 750d7db..fd7bb73 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsDevicesSettingMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsDevicesSettingMapper.xml @@ -198,4 +198,16 @@ + + \ No newline at end of file