2025-09-28 09:54:42 +08:00
|
|
|
|
package com.klp.ems.service;
|
|
|
|
|
|
|
|
|
|
|
|
import com.klp.ems.domain.vo.EmsEnergyConsumptionVo;
|
|
|
|
|
|
import com.klp.ems.domain.bo.EmsEnergyConsumptionBo;
|
2025-09-30 18:46:57 +08:00
|
|
|
|
import com.klp.ems.domain.bo.EmsEnergyConsumptionQueryBo;
|
2025-09-28 09:54:42 +08:00
|
|
|
|
import com.klp.common.core.page.TableDataInfo;
|
|
|
|
|
|
import com.klp.common.core.domain.PageQuery;
|
2025-09-28 23:51:47 +08:00
|
|
|
|
import com.klp.ems.domain.vo.EnergyChainRatioVo;
|
|
|
|
|
|
import com.klp.ems.domain.vo.SummaryDailyVo;
|
|
|
|
|
|
import com.klp.ems.domain.vo.SummaryMonthlyVo;
|
2025-09-30 18:46:57 +08:00
|
|
|
|
import com.klp.ems.domain.vo.YearOnYearVo;
|
|
|
|
|
|
import com.klp.ems.domain.vo.ChainAnalysisVo;
|
2025-09-28 09:54:42 +08:00
|
|
|
|
|
|
|
|
|
|
import java.util.Collection;
|
|
|
|
|
|
import java.util.List;
|
2025-12-07 17:23:47 +08:00
|
|
|
|
import java.util.Map;
|
2025-09-28 09:54:42 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 能耗记录Service接口
|
|
|
|
|
|
*
|
|
|
|
|
|
* @author Joshi
|
|
|
|
|
|
* @date 2025-09-28
|
|
|
|
|
|
*/
|
|
|
|
|
|
public interface IEmsEnergyConsumptionService {
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 查询能耗记录
|
|
|
|
|
|
*/
|
|
|
|
|
|
EmsEnergyConsumptionVo queryById(Long energyConsumptionId);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 查询能耗记录列表
|
|
|
|
|
|
*/
|
|
|
|
|
|
TableDataInfo<EmsEnergyConsumptionVo> queryPageList(EmsEnergyConsumptionBo bo, PageQuery pageQuery);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 查询能耗记录列表
|
|
|
|
|
|
*/
|
|
|
|
|
|
List<EmsEnergyConsumptionVo> queryList(EmsEnergyConsumptionBo bo);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 新增能耗记录
|
|
|
|
|
|
*/
|
|
|
|
|
|
Boolean insertByBo(EmsEnergyConsumptionBo bo);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 修改能耗记录
|
|
|
|
|
|
*/
|
|
|
|
|
|
Boolean updateByBo(EmsEnergyConsumptionBo bo);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 校验并批量删除能耗记录信息
|
|
|
|
|
|
*/
|
|
|
|
|
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
2025-09-28 23:51:47 +08:00
|
|
|
|
|
|
|
|
|
|
List<SummaryDailyVo> getEnergySummaryDaily(String month);
|
|
|
|
|
|
|
|
|
|
|
|
List<SummaryMonthlyVo> getEnergySummaryMonthly(String year);
|
2025-09-30 18:46:57 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 过滤版:按能耗类型/设备/区域(含子区域)聚合
|
|
|
|
|
|
*/
|
|
|
|
|
|
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);
|
2025-12-07 17:23:47 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取设备的上次抄表记录(用于自动填充起始数据)
|
|
|
|
|
|
* @param meterId 设备ID
|
|
|
|
|
|
* @return 上次抄表记录,如果没有则返回null
|
|
|
|
|
|
*/
|
|
|
|
|
|
EmsEnergyConsumptionVo getLastReadingForMeter(Long meterId);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取设备本月的累计消耗量
|
|
|
|
|
|
* @param meterId 设备ID
|
|
|
|
|
|
* @return 本月累计消耗量,如果没有则返回0
|
|
|
|
|
|
*/
|
|
|
|
|
|
Double getMonthlyConsumption(Long meterId);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取能耗统计信息
|
|
|
|
|
|
* @param bo 查询条件
|
|
|
|
|
|
* @return 统计信息(总记录数、总消耗量、平均消耗量、最大消耗量等)
|
|
|
|
|
|
*/
|
|
|
|
|
|
Map<String, Object> getStatistics(EmsEnergyConsumptionBo bo);
|
2025-09-28 09:54:42 +08:00
|
|
|
|
}
|