package com.xzzn.ems.service;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.xzzn.ems.domain.EmsEnergyPriceConfig;
import com.xzzn.ems.domain.vo.EnergyPriceVo;

/**
 * 电价配置Service接口
 *
 * @author xzzn
 * @date 2025-09-28
 */
public interface IEmsEnergyPriceConfigService
{
    /**
     * 查询电价配置
     *
     * @param id 电价配置主键
     * @return 电价配置
     */
    public EnergyPriceVo selectEmsEnergyPriceConfigById(Long id);

    /**
     * 查询电价配置列表
     *
     * @return 电价配置集合
     */
    public List<EnergyPriceVo> selectEmsEnergyPriceConfigList(String siteId, String startTime,String endTime);

    /**
     * 新增电价配置-按月
     *
     * @param priceVo 电价配置
     * @return 结果
     */
    public int insertEmsEnergyPriceConfig(EnergyPriceVo priceVo);

    /**
     * 修改电价配置
     *
     * @param priceVo 电价配置
     * @return 结果
     */
    public int updateEmsEnergyPriceConfig(EnergyPriceVo priceVo);

    /**
     * 批量删除电价配置
     *
     * @param ids 需要删除的电价配置主键集合
     * @return 结果
     */
    public int deleteEmsEnergyPriceConfigByIds(Long[] ids);

    /**
     * 删除电价配置信息
     *
     * @param id 电价配置主键
     * @return 结果
     */
    public int deleteEmsEnergyPriceConfigById(Long id);

    // 初始化当月电价
    public void initCurrentMonthPrice();
    // 获取指定站点的当月电价
    public EnergyPriceVo getCurrentMonthPrice(String siteId);
    // 获取指定站点的总收益和当日实时收益
    public Map<String, BigDecimal> getDayRevenueMap(String siteId);
}
