package cn.superdesk.uniorder.service.invoice.customer.fundrestream;

import cn.superdesk.uniorder.common.rest.response.R;
import cn.superdesk.uniorder.common.exception.UnifiedOrderRuntimeException;
import cn.superdesk.uniorder.dao.entity.invoice.customer.fundrestream.InvoiceBankStatement;
import cn.superdesk.uniorder.dto.param.invoice.common.InvoiceBankCriteria;
import cn.superdesk.uniorder.dto.vo.unified.UnifiedInvOrderCount;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

public interface InvoiceBankStatementService {


	/****************************************** extends BaseService 部分 start ******************************************/

	@Deprecated
	void addObj(InvoiceBankStatement entity);

	@Deprecated
	void updateObj(InvoiceBankStatement entity);

	@Deprecated
	void deleteObj(Long id);

	@Deprecated
	InvoiceBankStatement findById(Long id);

	@Deprecated
	PageInfo<InvoiceBankStatement> findByPaging(Map<String, Object> conditions, Integer pageNun, Integer pageSize);

	@Deprecated
	List<InvoiceBankStatement> findAll(Map<String, Object> queryMap);

	/****************************************** extends BaseService 部分   end ******************************************/


	void addInvoiceBankStatement(InvoiceBankStatement entity);

	void updateInvoiceBankStatement(InvoiceBankStatement entity);

	void deleteInvoiceBankStatement(Long id);

	InvoiceBankStatement findInvoiceBankStatementById(Long id);

	R<List<InvoiceBankStatement>> pageQuery(Map<String, Object> conditions, int pageNun, int pageSize);

	/******************************************  start ******************************************/

	R<List<InvoiceBankStatement>> findViewByPage(InvoiceBankCriteria fromVO, int pageNum, int pageSize) throws UnifiedOrderRuntimeException;

	void importBankStatementExcel(String token, List<InvoiceBankStatement> list) throws UnifiedOrderRuntimeException;

	void delete(Map<String, Object> params) throws UnifiedOrderRuntimeException;

	void deleteBackRegister(Map<String, Object> params) throws UnifiedOrderRuntimeException;

	List<UnifiedInvOrderCount> getInvOrderCount(Long id);

	List<InvoiceBankStatement> getBankByApplyId(Map<String, Object> params) throws UnifiedOrderRuntimeException;

	void backRegister(Map<String, Object> params) throws UnifiedOrderRuntimeException;
}
