From f900c6f9daa80945415cd5728e99cf2c02a3f6ad Mon Sep 17 00:00:00 2001 From: "3067418132@qq.com" Date: Thu, 21 May 2026 17:42:32 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E9=A6=96=E9=A1=B5=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=86=B7=E6=BA=90=E7=B3=BB=E7=BB=9F=E5=AE=9E=E6=97=B6EER?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../comprehensive/ProOverviewController.java | 9 ++ .../system/mapper/energy/OverviewMapper.java | 16 ++++ .../service/overview/IProOverviewService.java | 2 + .../overview/impl/ProOverviewServiceImpl.java | 83 ++++++++++++++++++- 4 files changed, 107 insertions(+), 3 deletions(-) diff --git a/mh-admin/src/main/java/com/mh/web/controller/comprehensive/ProOverviewController.java b/mh-admin/src/main/java/com/mh/web/controller/comprehensive/ProOverviewController.java index a7956aa..bc779a8 100644 --- a/mh-admin/src/main/java/com/mh/web/controller/comprehensive/ProOverviewController.java +++ b/mh-admin/src/main/java/com/mh/web/controller/comprehensive/ProOverviewController.java @@ -105,4 +105,13 @@ public class ProOverviewController extends BaseController { public TableDataInfo ersDatas(@RequestParam("systemType") String systemType) { return getDataTable(proOverviewService.ersDatas(systemType)); } + + /** + * 查询能耗系数 + * @return + */ + @GetMapping("/getCoe") + public TableDataInfo getCoe(){ + return getDataTable(proOverviewService.getCoe()); + } } diff --git a/mh-system/src/main/java/com/mh/system/mapper/energy/OverviewMapper.java b/mh-system/src/main/java/com/mh/system/mapper/energy/OverviewMapper.java index 3615743..4bde37c 100644 --- a/mh-system/src/main/java/com/mh/system/mapper/energy/OverviewMapper.java +++ b/mh-system/src/main/java/com/mh/system/mapper/energy/OverviewMapper.java @@ -12,6 +12,7 @@ import org.apache.ibatis.annotations.Select; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; +import java.util.Map; /** * @author LJF @@ -88,5 +89,20 @@ public interface OverviewMapper { BigDecimal queryHourData(@Param("deviceNums") List accumulatedHeat, @Param("table") String table, @Param("date") String date); + + @Select("") + List> selectLastCap(); } diff --git a/mh-system/src/main/java/com/mh/system/service/overview/IProOverviewService.java b/mh-system/src/main/java/com/mh/system/service/overview/IProOverviewService.java index 258b6c2..a159086 100644 --- a/mh-system/src/main/java/com/mh/system/service/overview/IProOverviewService.java +++ b/mh-system/src/main/java/com/mh/system/service/overview/IProOverviewService.java @@ -22,4 +22,6 @@ public interface IProOverviewService { List mainParams(); List ersDatas(String systemType); + + List getCoe(); } diff --git a/mh-system/src/main/java/com/mh/system/service/overview/impl/ProOverviewServiceImpl.java b/mh-system/src/main/java/com/mh/system/service/overview/impl/ProOverviewServiceImpl.java index f3abf25..8d9d74b 100644 --- a/mh-system/src/main/java/com/mh/system/service/overview/impl/ProOverviewServiceImpl.java +++ b/mh-system/src/main/java/com/mh/system/service/overview/impl/ProOverviewServiceImpl.java @@ -15,15 +15,12 @@ import com.mh.system.mapper.SysDictDataMapper; import com.mh.system.mapper.device.CollectionParamsManageMapper; import com.mh.system.mapper.energy.OverviewMapper; import com.mh.system.service.overview.IProOverviewService; -import lombok.Getter; -import lombok.Setter; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; import java.time.LocalDateTime; -import java.time.ZoneId; import java.time.temporal.TemporalAdjusters; import java.util.*; import java.util.concurrent.CompletableFuture; @@ -93,6 +90,86 @@ public class ProOverviewServiceImpl implements IProOverviewService { // return null; // } + + @Override + public List getCoe() { + //todo 系统能效系数、主机能效、冷冻泵输送系数、冷却泵输送系数、冷却塔输送系数 + List> instantData = overviewMapper.selectLastCap(); + //筛选系统用电量 + BigDecimal cap = new BigDecimal(0); + BigDecimal sysEle = new BigDecimal(0); + BigDecimal chillerEle = new BigDecimal(0); + BigDecimal chillPumpEle = new BigDecimal(0); + BigDecimal coolPumpEle = new BigDecimal(0); + BigDecimal towerEle = new BigDecimal(0); + + for (Map val : instantData) { + String name = (String) val.get("name"); + if (name == null) { + continue; + } + BigDecimal value = (BigDecimal) val.get("value"); + if (value == null) { + continue; + } + Date time = (Date) val.get("time"); + boolean today = DateUtils.isToday(time); + if (!today) { + continue; + } + if (name.contains("系统")) { + // 系统 + sysEle = sysEle.add(value); + } else if (name.contains("主机")) { + // 主机 + chillerEle = chillerEle.add(value); + } else if (name.contains("冷冻泵")) { + // 冷冻泵 + chillPumpEle = chillPumpEle.add(value); + } else if (name.contains("冷却泵")) { + // 冷却泵 + coolPumpEle = coolPumpEle.add(value); + } else if (name.contains("冷却塔")) { + // 冷却塔 + towerEle = towerEle.add(value); + } + } + Map resultMap = new HashMap<>(); + if (sysEle.compareTo(BigDecimal.ZERO) == 0) { + resultMap.put("sysCoe", 0); + } + if (chillerEle.compareTo(BigDecimal.ZERO) == 0) { + resultMap.put("chillerCoe", 0); + } + if (chillPumpEle.compareTo(BigDecimal.ZERO) == 0) { + resultMap.put("chillPumpCoe", 0); + } + if (coolPumpEle.compareTo(BigDecimal.ZERO) == 0) { + resultMap.put("coolPumpCoe", 0); + } + if (towerEle.compareTo(BigDecimal.ZERO) == 0) { + resultMap.put("towerCoe", 0); + } + + if (sysEle.compareTo(BigDecimal.ZERO) != 0) { + resultMap.put("sysCoe", cap.divide(sysEle, 2, RoundingMode.HALF_UP)); + } + if (chillerEle.compareTo(BigDecimal.ZERO) != 0) { + resultMap.put("chillerCoe", cap.divide(chillerEle, 2, RoundingMode.HALF_UP)); + } + if (chillPumpEle.compareTo(BigDecimal.ZERO) != 0) { + resultMap.put("chillPumpCoe", cap.divide(chillPumpEle, 2, RoundingMode.HALF_UP)); + } + if (coolPumpEle.compareTo(BigDecimal.ZERO) != 0) { + resultMap.put("coolPumpCoe", cap.divide(coolPumpEle, 2, RoundingMode.HALF_UP)); + } + if (towerEle.compareTo(BigDecimal.ZERO) != 0) { + resultMap.put("towerCoe", cap.divide(towerEle, 2, RoundingMode.HALF_UP)); + } + + return List.of(resultMap); + } + @Override public List ersDatas(String systemType) { // 从collection_params_manage、device_ledger中查询数据,获取device_ledger.device_name,order_num,system_type,device_type