package com.zcxk.rmcp.web.service;

import com.zcxk.core.common.pojo.PageResult;
import com.zcxk.rmcp.api.dto.meterreadrecord.MeterReadRecordDeviceDto;
import com.zcxk.rmcp.api.dto.meterreadrecord.MeterReadRecordDto;
import com.zcxk.rmcp.api.dto.meterreadrecord.MeterReadRecordUpdateDto;
import com.zcxk.rmcp.api.vo.MeterReadRecordVo;
import com.zcxk.rmcp.core.mongo.MeterReadRecord;

import java.util.List;

/**
 * @author Andy
 * @version V1.0
 * @description: 抄表记录
 * @date 2021/7/21
 **/
public interface MeterReadRecordService {


    /**
    * 保存抄表记录
    * @author Andy
    * @date 14:53 2021/8/3
    * @param readRecord:
    * @return void
    **/
    void saveMeterReadRecord(MeterReadRecord readRecord);

    /**
    * 更新读数
    * @author Andy
    * @date 14:53 2021/8/3
    * @param dto:
    * @return long
    **/
    long updateReadData(MeterReadRecordUpdateDto dto);

    /**
    * 分页查询当前登录账号的抄表记录
    * @author Andy
    * @date 14:53 2021/8/3
    * @param dto:
    * @return com.zcxk.core.common.pojo.PageResult<com.zcxk.rmcp.api.vo.MeterReadRecordVo>
    **/
    PageResult<MeterReadRecordVo> pageMeterReadRecord(MeterReadRecordDto dto);

    /**
    * 查询当前登录账号的抄表记录
    * @author Andy
    * @date 14:54 2021/8/3
    * @param dto:
    * @return java.util.List<com.zcxk.rmcp.api.vo.MeterReadRecordVo>
    **/
    List<MeterReadRecordVo> listMeterReadRecord(MeterReadRecordDto dto);

    /**
    * 查询单个设备在某一段时间的用水量
    * @author Andy
    * @date 14:54 2021/8/3
    * @param dto:
    * @return java.util.List<com.zcxk.rmcp.core.mongo.MeterReadRecord>
    **/
    List<MeterReadRecordVo> listSingleDeviceTimeWaterConsumption(MeterReadRecordDeviceDto dto);
}
