package com.ruoyi.ems.service;

import com.ruoyi.ems.domain.EnergyMeter;
import com.ruoyi.ems.domain.ElecMeterH;
import com.ruoyi.ems.model.QueryMeter;

import java.util.List;

/**
 * 用电计量-小时Service接口
 *
 * @author ruoyi
 * @date 2024-12-03
 */
public interface IElecMeterHService {
    /**
     * 统计日用电
     * @param queryMeter 查询条件
     * @return
     */
    List<ElecMeterH> staMeterDayList(QueryMeter queryMeter);

    /**
     * 计算时间范围内日平均
     * @param queryMeter 支持areaCode、deviceCode、date范围筛选
     * @return ElecMeter
     */
    EnergyMeter selectElecDayAvg(QueryMeter queryMeter);

    /**
     * 查询最近的一条记录
     *
     * @param deviceCode 设备编码
     * @return 用电计量-小时集合
     */
    ElecMeterH selectLatelyItem(String deviceCode);

    /**
     * 新增用电计量-小时
     *
     * @param elecMeterH 用电计量-小时
     * @return 结果
     */
    int insertElecMeterH(ElecMeterH elecMeterH);

    /**
     * 新增用电计量-小时
     *
     * @param list 用电计量-小时
     * @return 结果
     */
    int insertBatch(List<ElecMeterH> list);

    /**
     * 修改用电计量-小时
     *
     * @param elecMeterH 用电计量-小时
     * @return 结果
     */
    int updateElecMeterH(ElecMeterH elecMeterH);

    /**
     * 删除用电计量-小时信息
     *
     * @param date 日期
     * @return 结果
     */
    int deleteElecMeterHByDate(String date);

    EnergyMeter qryElecMeterByDate(String date, String areaCode);

    List<ElecMeterH> qryTimeIndexElecMeterByDay(String dateRange, Integer timeIndex);

    List<ElecMeterH> qryDateElecMeterByDate(String dateRange);

    List<ElecMeterH> qryDateElecMeterByYear(String dataRange);

    List<ElecMeterH> qryDeviceTypeElecMeterByDay(ElecMeterH elecMeterH);
}
