selectLatestAll(EnergySavingMeasure entity);
}
diff --git a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/service/DeviceEnergyAnalysisService.java b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/service/DeviceEnergyAnalysisService.java
index 9f58d80..1559ce2 100644
--- a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/service/DeviceEnergyAnalysisService.java
+++ b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/service/DeviceEnergyAnalysisService.java
@@ -2,6 +2,7 @@ package com.securitycontrol.screen.service;
import com.securitycontrol.common.core.web.domain.AjaxResult;
import com.securitycontrol.screen.domain.DeviceEnergyAnalysis;
+import com.securitycontrol.screen.domain.EnergySavingMeasure;
import java.util.List;
@@ -44,4 +45,31 @@ public interface DeviceEnergyAnalysisService {
* @return AjaxResult 封装的查询结果:
*/
AjaxResult selectAnomalyByDateRange(DeviceEnergyAnalysis entity);
+
+ /**
+ * 查询最新统计日期下的所有节能减排措施记录。
+ *
+ * 功能说明:
+ * 该方法根据传入的查询条件(如项目编号、设备类型等),从 energy_saving_measures 表中查询
+ * 最新统计日期(stat_date 最大值)对应的全部数据记录,用于展示当前工地节能措施覆盖情况。
+ *
+ * 查询逻辑:
+ * 1. 确定当前表中最大的 stat_date(即最新的数据日期);
+ * 2. 在该日期下筛选所有匹配查询条件的记录;
+ * 3. 返回按条件过滤的所有记录列表。
+ *
+ * 示例用途:
+ * - 首页或概览页展示最近的节能覆盖数据;
+ * - 周期性报表数据展示;
+ *
+ * 参数:
+ *
+ * @param entity 查询条件封装实体,可包含以下字段(可选):
+ * - measureName: 按措施名称过滤;
+ * - projectId / siteId(如果扩展了这些字段):按项目或施工地过滤;
+ *
+ * 返回值:
+ * @return AjaxResult 封装的查询结果:
+ */
+ AjaxResult selectLatestAll(EnergySavingMeasure entity);
}
diff --git a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/service/impl/DeviceEnergyAnalysisServiceImpl.java b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/service/impl/DeviceEnergyAnalysisServiceImpl.java
index da66386..8c888d4 100644
--- a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/service/impl/DeviceEnergyAnalysisServiceImpl.java
+++ b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/service/impl/DeviceEnergyAnalysisServiceImpl.java
@@ -2,6 +2,7 @@ package com.securitycontrol.screen.service.impl;
import com.securitycontrol.common.core.web.domain.AjaxResult;
import com.securitycontrol.screen.domain.DeviceEnergyAnalysis;
+import com.securitycontrol.screen.domain.EnergySavingMeasure;
import com.securitycontrol.screen.mapper.DeviceEnergyAnalysisMapper;
import com.securitycontrol.screen.service.DeviceEnergyAnalysisService;
import lombok.extern.slf4j.Slf4j;
@@ -80,4 +81,40 @@ public class DeviceEnergyAnalysisServiceImpl implements DeviceEnergyAnalysisServ
return AjaxResult.error("查询能耗异常分析失败");
}
}
+
+ /**
+ * 查询最新统计日期下的所有节能减排措施记录。
+ *
+ * 功能说明:
+ * 该方法根据传入的查询条件(如项目编号、设备类型等),从 energy_saving_measures 表中查询
+ * 最新统计日期(stat_date 最大值)对应的全部数据记录,用于展示当前工地节能措施覆盖情况。
+ *
+ * 查询逻辑:
+ * 1. 确定当前表中最大的 stat_date(即最新的数据日期);
+ * 2. 在该日期下筛选所有匹配查询条件的记录;
+ * 3. 返回按条件过滤的所有记录列表。
+ *
+ * 示例用途:
+ * - 首页或概览页展示最近的节能覆盖数据;
+ * - 周期性报表数据展示;
+ *
+ * 参数:
+ *
+ * @param entity 查询条件封装实体,可包含以下字段(可选):
+ * - measureName: 按措施名称过滤;
+ * - projectId / siteId(如果扩展了这些字段):按项目或施工地过滤;
+ *
+ * 返回值:
+ * @return AjaxResult 封装的查询结果:
+ */
+ @Override
+ public AjaxResult selectLatestAll(EnergySavingMeasure entity) {
+ try {
+ List maps = mapper.selectLatestAll(entity);
+ return AjaxResult.success(maps);
+ } catch (Exception e) {
+ log.error("查询失败: {}", e.getMessage(), e);
+ return AjaxResult.error("查询失败");
+ }
+ }
}
diff --git a/securitycontrol-model/securitycontrol-screen/src/main/resources/mapper/DeviceEnergyAnalysisMapper.xml b/securitycontrol-model/securitycontrol-screen/src/main/resources/mapper/DeviceEnergyAnalysisMapper.xml
index fbab46c..ca13586 100644
--- a/securitycontrol-model/securitycontrol-screen/src/main/resources/mapper/DeviceEnergyAnalysisMapper.xml
+++ b/securitycontrol-model/securitycontrol-screen/src/main/resources/mapper/DeviceEnergyAnalysisMapper.xml
@@ -44,6 +44,26 @@
stat_date ASC;