From 50d5d68a7523cb8f43e72ef44e0167d6633cb22d Mon Sep 17 00:00:00 2001 From: jiang Date: Thu, 24 Jul 2025 13:32:32 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8A=82=E8=83=BD=E5=87=8F=E6=8E=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DeviceEnergyAnalysisController.java | 28 ++++++++ .../screen/domain/EnergySavingMeasure.java | 68 +++++++++++++++++++ .../mapper/DeviceEnergyAnalysisMapper.java | 28 ++++++++ .../service/DeviceEnergyAnalysisService.java | 28 ++++++++ .../impl/DeviceEnergyAnalysisServiceImpl.java | 37 ++++++++++ .../mapper/DeviceEnergyAnalysisMapper.xml | 20 ++++++ 6 files changed, 209 insertions(+) create mode 100644 securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/EnergySavingMeasure.java diff --git a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/controller/DeviceEnergyAnalysisController.java b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/controller/DeviceEnergyAnalysisController.java index 3d461b9..e3ecf37 100644 --- a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/controller/DeviceEnergyAnalysisController.java +++ b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/controller/DeviceEnergyAnalysisController.java @@ -2,6 +2,7 @@ package com.securitycontrol.screen.controller; import com.securitycontrol.common.core.web.domain.AjaxResult; import com.securitycontrol.screen.domain.DeviceEnergyAnalysis; +import com.securitycontrol.screen.domain.EnergySavingMeasure; import com.securitycontrol.screen.service.DeviceEnergyAnalysisService; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -63,4 +64,31 @@ public class DeviceEnergyAnalysisController { public AjaxResult selectAnomalyByDateRange(@RequestBody DeviceEnergyAnalysis entity) { return service.selectAnomalyByDateRange(entity); } + + /** + * 查询最新统计日期下的所有节能减排措施数据。 + *

+ * 功能说明: + * 本接口接收客户端传入的查询条件(封装在 EnergySavingMeasure 实体中), + * 并调用 service 层方法,从数据库中获取“最新统计日期”对应的节能减排措施记录列表。 + * 通常用于前端页面展示最近一期的节能数据概览。 + *

+ * 请求方式: + * POST /selectLatestAll + *

+ * 请求参数: + * + * @return AjaxResult 封装的查询结果: + * @RequestBody EnergySavingMeasure entity + * - 可选字段示例: + * - measureName: 节能措施名称(用于精确筛选) + * - siteId / projectId: 工地或项目编号(如表中定义) + *

+ * 响应结果: + */ + @PostMapping("selectLatestAll") + public AjaxResult selectLatestAll(@RequestBody EnergySavingMeasure entity) { + return service.selectLatestAll(entity); + } + } diff --git a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/EnergySavingMeasure.java b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/EnergySavingMeasure.java new file mode 100644 index 0000000..a960c96 --- /dev/null +++ b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/EnergySavingMeasure.java @@ -0,0 +1,68 @@ +package com.securitycontrol.screen.domain; + +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * EnergySavingMeasure 类表示某个统计周期下的节能减排措施信息。 + * 用于记录措施名称、覆盖率、统计日期等信息,并追踪创建与更新时间。 + * 可用于节能数据展示、趋势分析、覆盖率评估等场景。 + */ +@Data +public class EnergySavingMeasure { + + /** + * 主键ID,自增唯一标识符。 + */ + private Long id; + + /** + * 节能减排措施名称,例如 "照明节能"、"空调温控"、"智能设备管控" 等。 + * 用于识别该措施的类型。 + */ + private String measureName; + + /** + * 覆盖率(coverage rate),表示该措施在工地范围内的实施比例。 + * 取值范围为 0~1,通常以百分比展示(例如 0.85 表示 85%)。 + */ + private BigDecimal coverageRate; + + /** + * 统计日期,表示该数据记录对应的时间周期(如某天、某周、某月)。 + * 一般按日为单位进行统计。 + */ + private LocalDate statDate; + + /** + * 创建时间,表示该数据记录的创建时间戳。 + * 由系统自动生成,用于数据追踪。 + */ + private LocalDateTime createdAt; + + /** + * 更新时间,表示该数据记录的最近一次更新时间戳。 + * 由系统自动维护,用于记录数据变动历史。 + */ + private LocalDateTime updatedAt; + + /** + * 查询条件:开始时间(非数据库字段) + * 用于按时间段筛选数据 + */ + private String startDate; + + /** + * 查询条件:结束时间(非数据库字段) + * 用于按时间段筛选数据 + */ + private String endDate; + /** + * 工程ID(项目标识) + * 用于区分所属工程,可作为查询过滤条件 + */ + private String proId; +} diff --git a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/mapper/DeviceEnergyAnalysisMapper.java b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/mapper/DeviceEnergyAnalysisMapper.java index 654155c..ae68acd 100644 --- a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/mapper/DeviceEnergyAnalysisMapper.java +++ b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/mapper/DeviceEnergyAnalysisMapper.java @@ -1,6 +1,7 @@ package com.securitycontrol.screen.mapper; import com.securitycontrol.screen.domain.DeviceEnergyAnalysis; +import com.securitycontrol.screen.domain.EnergySavingMeasure; import org.apache.ibatis.annotations.MapKey; import org.springframework.stereotype.Repository; @@ -74,4 +75,31 @@ public interface DeviceEnergyAnalysisMapper { * @return List 查询到的异常能耗记录列表 */ List selectAnomalyByDateRange(DeviceEnergyAnalysis entity); + + /** + * 查询最新统计日期下的所有节能减排措施记录。 + *

+ * 功能说明: + * 该方法根据传入的查询条件(如项目编号、设备类型等),从 energy_saving_measures 表中查询 + * 最新统计日期(stat_date 最大值)对应的全部数据记录,用于展示当前工地节能措施覆盖情况。 + *

+ * 查询逻辑: + * 1. 确定当前表中最大的 stat_date(即最新的数据日期); + * 2. 在该日期下筛选所有匹配查询条件的记录; + * 3. 返回按条件过滤的所有记录列表。 + *

+ * 示例用途: + * - 首页或概览页展示最近的节能覆盖数据; + * - 周期性报表数据展示; + *

+ * 参数: + * + * @param entity 查询条件封装实体,可包含以下字段(可选): + * - measureName: 按措施名称过滤; + * - projectId / siteId(如果扩展了这些字段):按项目或施工地过滤; + *

+ * 返回值: + * @return List 最新日期下的所有匹配节能措施记录列表。 + */ + List 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; + +