package cn.iocoder.yudao.module.energy.service.bill;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.energy.controller.admin.bill.vo.*;
import cn.iocoder.yudao.module.energy.controller.admin.detail.vo.HydrogenDetailRespVO;
import cn.iocoder.yudao.module.energy.dal.dataobject.bill.EnergyBillDO;
import java.util.List;
import java.util.Map;

public interface EnergyBillService {
    Long generateBill(EnergyBillGenerateReqVO reqVO);
    List<Long> batchGenerateBills(List<EnergyBillGenerateReqVO> reqVOs);
    Map<String, Integer> batchGenerateByPeriod(String billPeriod);
    PageResult<EnergyBillDO> getBillPage(EnergyBillPageReqVO reqVO);
    EnergyBillDO getBill(Long id);
    void updateBill(EnergyBillSaveReqVO reqVO);
    void deleteBill(Long id);
    void auditBill(Long id, Boolean approved, String remark);
    Long createAdjustment(EnergyBillAdjustmentSaveReqVO reqVO);
    void deleteAdjustment(Long adjustmentId);
    List<HydrogenDetailRespVO> getBillDetailList(Long billId);
    List<EnergyBillAdjustmentRespVO> getAdjustmentList(Long billId);
}
