package com.ruoyi.ss.meterReadingRecord.service;

import com.ruoyi.ss.meterReadingRecord.domain.SmMeterReadingRecord;
import com.ruoyi.ss.meterReadingRecord.domain.SmMeterReadingRecordQuery;
import com.ruoyi.ss.meterReadingRecord.domain.SmMeterReadingRecordVo;

import java.util.List;

/**
 * 抄记录Service接口
 *
 * @author ruoyi
 * @date 2024-03-28
 */
public interface ISmMeterReadingRecordService
{
    /**
     * 查询抄记录
     *
     * @param recordId 抄记录主键
     * @return 抄记录
     */
    public SmMeterReadingRecordVo selectSmMeterReadingRecordByRecordId(Long recordId);

    /**
     * 查询抄记录列表
     *
     * @param smMeterReadingRecord 抄记录
     * @return 抄记录集合
     */
    public List<SmMeterReadingRecordVo> selectSmMeterReadingRecordList(SmMeterReadingRecordQuery smMeterReadingRecord);

    /**
     * 新增抄记录
     *
     * @param smMeterReadingRecord 抄记录
     * @return 结果
     */
    public int insertSmMeterReadingRecord(SmMeterReadingRecord smMeterReadingRecord);

    /**
     * 修改抄记录
     *
     * @param smMeterReadingRecord 抄记录
     * @return 结果
     */
    public int updateSmMeterReadingRecord(SmMeterReadingRecord smMeterReadingRecord);

    /**
     * 批量删除抄记录
     *
     * @param recordIds 需要删除的抄记录主键集合
     * @return 结果
     */
    public int deleteSmMeterReadingRecordByRecordIds(Long[] recordIds);

    /**
     * 删除抄记录信息
     *
     * @param recordId 抄记录主键
     * @return 结果
     */
    public int deleteSmMeterReadingRecordByRecordId(Long recordId);

    /**
     * 查询最后一条数据，可分组
     */
    List<SmMeterReadingRecordVo> selectLatest(SmMeterReadingRecordQuery dto);

    /**
     * 对指定设备进行抄表，为空则全部设备抄表
     * @param deviceIds 设备id列表
     */
    boolean record(List<Long> deviceIds);

    /**
     * 查询统计
     */
    List<SmMeterReadingRecordVo> selectCount(SmMeterReadingRecordQuery dto);
}
