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; /** * 能耗记录Service接口 * * @author Joshi * @date 2025-09-28 */ public interface IEmsEnergyConsumptionService { /** * 查询能耗记录 */ EmsEnergyConsumptionVo queryById(Long energyConsumptionId); /** * 查询能耗记录列表 */ TableDataInfo queryPageList(EmsEnergyConsumptionBo bo, PageQuery pageQuery); /** * 查询能耗记录列表 */ List queryList(EmsEnergyConsumptionBo bo); /** * 新增能耗记录 */ Boolean insertByBo(EmsEnergyConsumptionBo bo); /** * 修改能耗记录 */ Boolean updateByBo(EmsEnergyConsumptionBo bo); /** * 校验并批量删除能耗记录信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); List getEnergySummaryDaily(String month); List getEnergySummaryMonthly(String year); /** * 过滤版:按能耗类型/设备/区域(含子区域)聚合 */ EnergyChainRatioVo getEnergyChainRatioFiltered(EmsEnergyConsumptionQueryBo queryBo); /** * 近期能耗趋势(过滤版):month 按天、year 按月 */ List getEnergySummaryDailyFiltered(EmsEnergyConsumptionQueryBo queryBo); List getEnergySummaryMonthlyFiltered(EmsEnergyConsumptionQueryBo queryBo); /** 同比分析:传入 year,返回当年与上一年逐月汇总(可过滤) */ YearOnYearVo getYearOnYear(EmsEnergyConsumptionQueryBo queryBo); /** 环比分析:periodType=day/week/month/year + dateKey;可过滤 */ ChainAnalysisVo getChainAnalysis(EmsEnergyConsumptionQueryBo queryBo); }