package com.klp.ems.service; import com.klp.ems.domain.EmsEnergyRate; import com.klp.ems.domain.vo.EmsEnergyRateVo; import com.klp.ems.domain.vo.EmsRateTierVo; import com.klp.ems.domain.vo.EmsRateTimePeriodLinkVo; import com.klp.ems.domain.bo.EmsEnergyRateBo; import com.klp.ems.domain.bo.EmsRateTierBo; import com.klp.ems.domain.bo.EmsRateTimePeriodLinkBo; import com.klp.ems.domain.bo.EmsRateTierPeriodLinkBo; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; import java.util.Collection; import java.util.List; /** * 能源费率Service接口 * 支持:固定费率、峰谷分时、阶梯电价、峰谷+阶梯组合 * * @author Joshi * @date 2025-09-28 */ public interface IEmsEnergyRateService { /** * 查询能源费率 */ EmsEnergyRateVo queryById(Long energyRateId); /** * 查询能源费率列表 */ TableDataInfo queryPageList(EmsEnergyRateBo bo, PageQuery pageQuery); /** * 查询能源费率列表 */ List queryList(EmsEnergyRateBo bo); /** * 新增能源费率(包括梯度和时段费率) */ Boolean insertByBo(EmsEnergyRateBo bo); /** * 修改能源费率(包括梯度和时段费率) */ Boolean updateByBo(EmsEnergyRateBo bo); /** * 删除能源费率(级联删除梯度和时段费率) */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); /** * 获取费率的梯度费率列表 */ List getRateTiers(Long energyRateId); /** * 获取费率的时段费率列表 */ List getRateTimePeriods(Long energyRateId); /** * 保存梯度费率,返回保存后的梯度列表(包含tierId) */ List saveTiers(Long energyRateId, List tiers); /** * 保存时段费率 */ Boolean saveTimePeriods(Long energyRateId, List timePeriods); /** * 获取梯度的峰谷时段费率(用于梯度+峰谷组合模式) */ List getTierPeriodLinks(Long tierId); /** * 保存梯度-时段关联费率(用于梯度+峰谷组合模式) */ Boolean saveTierPeriodLinks(Long tierId, List tierPeriodLinks); }