package com.zcxk.rmcp.web.service;

import com.zcxk.core.mysql.pageing.Pagination;
import com.zcxk.rmcp.api.dto.measurementsettlement.*;

import java.util.List;

/**
 *
 * @author heyumin
 * @date 2021-07-30 9:44
 */
public interface MeasurementSettlementService {
    /**结算计划查询
      * @param pageDto
     * @description
     * @author hym
     * @updateTime 2021/8/3 9:39
     * @return com.zcxk.core.mysql.pageing.Pagination<com.zcxk.rmcp.api.dto.measurementsettlement.MeasurementSettlementDto>
     * @throws
     */
    Pagination<MeasurementSettlementDto> pageMeasurementSettlement(MeasurementSettlementPageDto pageDto);
    /**结算记录查询
      * @param pageDto
     * @description
     * @author hym
     * @updateTime 2021/8/3 9:40
     * @return com.zcxk.core.mysql.pageing.Pagination<com.zcxk.rmcp.api.dto.measurementsettlement.MeasurementSettlementDto>
     * @throws
     */
    Pagination<MeasurementSettlementDto> pageMeasurementSettlementRecord(MeasurementSettlementPageDto pageDto);
    /**添加计划
      * @param measurementSettlementDto
     * @description
     * @author hym
     * @updateTime 2021/8/3 9:40
     * @return void
     * @throws
     */
    void addPlan(MeasurementSettlementDto measurementSettlementDto);
   /**更改计划
     * @param measurementSettlementDto
    * @description
    * @author hym
    * @updateTime 2021/8/3 9:40
    * @return void
    * @throws
    */
    void updatePlan(MeasurementSettlementDto measurementSettlementDto);
    /**删除计划
      * @param ids
     * @description
     * @author hym
     * @updateTime 2021/8/3 9:41
     * @return void
     * @throws
     */
    void deletePlan(List<MeasurementSettlementDto> ids);
   /**删除所有计划
     * @param 
    * @description
    * @author hym
    * @updateTime 2021/8/3 9:41
    * @return void
    * @throws
    */
    void deleteAll();
  /**查询记录详情
    * @param pageDto
   * @description
   * @author hym
   * @updateTime 2021/8/3 9:41
   * @return com.zcxk.core.mysql.pageing.Pagination<com.zcxk.rmcp.api.dto.measurementsettlement.MeasurementRecordDto>
   * @throws
   */
    Pagination<MeasurementRecordDto> pageMeasurementRecord(MeasurementRecordPageDto pageDto);
    /**审核水量
      * @param ids
     * @description
     * @author hym
     * @updateTime 2021/8/3 9:42
     * @return void
     * @throws
     */
    void auditWater(List<MeasurementRecordDto> ids);
    /**审核所有表的用水量
      * @param planId
     * @description
     * @author hym
     * @updateTime 2021/8/3 9:42
     * @return void
     * @throws
     */
    void auditAllWater(Integer planId);
   /**更改用水量
     * @param waterConsumptionUpdateDto
    * @description
    * @author hym
    * @updateTime 2021/8/3 9:42
    * @return void
    * @throws
    */
    void modifyTheAmountOfWater(WaterConsumptionUpdateDto waterConsumptionUpdateDto);
    /**设置账期
      * @param measurementSettlementDto
     * @description
     * @author hym
     * @updateTime 2021/8/3 9:58
     * @return void
     * @throws
     */
    void setBillingPeriod(MeasurementSettlementDto measurementSettlementDto);
}
