feat(ems): 新增能耗统计分析功能

- 新增环比分析、同比分析接口与实现
- 支持按设备、能源类型、区域(含子区域)过滤统计
- 实现日、周、月、年维度的数据汇总与对比计算
- 扩展 Mapper 层支持带设备列表的时间区间查询
- 新增多个 VO 类用于封装分析结果数据结构
- 完善 Controller 接口接收过滤参数并调用服务层
-优化区域递归查找逻辑以支持层级结构查询
- 提供工具方法处理空值与比率计算
- 添加新的 BO 类用于传递查询与范围参数
- 更新配置文件注释但未启用新路由规则
This commit is contained in:
JR
2025-09-30 18:46:57 +08:00
parent 29c0c7bb73
commit c927ce247b
14 changed files with 562 additions and 27 deletions

View File

@@ -2,11 +2,14 @@ package com.klp.ems.service;
import com.klp.ems.domain.vo.EmsEnergyConsumptionVo;
import com.klp.ems.domain.bo.EmsEnergyConsumptionBo;
import com.klp.ems.domain.bo.EmsEnergyConsumptionQueryBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.klp.ems.domain.vo.EnergyChainRatioVo;
import com.klp.ems.domain.vo.SummaryDailyVo;
import com.klp.ems.domain.vo.SummaryMonthlyVo;
import com.klp.ems.domain.vo.YearOnYearVo;
import com.klp.ems.domain.vo.ChainAnalysisVo;
import java.util.Collection;
import java.util.List;
@@ -49,9 +52,25 @@ public interface IEmsEnergyConsumptionService {
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
EnergyChainRatioVo getEnergyChainRatio();
List<SummaryDailyVo> getEnergySummaryDaily(String month);
List<SummaryMonthlyVo> getEnergySummaryMonthly(String year);
/**
* 过滤版:按能耗类型/设备/区域(含子区域)聚合
*/
EnergyChainRatioVo getEnergyChainRatioFiltered(EmsEnergyConsumptionQueryBo queryBo);
/**
* 近期能耗趋势过滤版month 按天、year 按月
*/
List<SummaryDailyVo> getEnergySummaryDailyFiltered(EmsEnergyConsumptionQueryBo queryBo);
List<SummaryMonthlyVo> getEnergySummaryMonthlyFiltered(EmsEnergyConsumptionQueryBo queryBo);
/** 同比分析:传入 year返回当年与上一年逐月汇总可过滤 */
YearOnYearVo getYearOnYear(EmsEnergyConsumptionQueryBo queryBo);
/** 环比分析periodType=day/week/month/year + dateKey可过滤 */
ChainAnalysisVo getChainAnalysis(EmsEnergyConsumptionQueryBo queryBo);
}