package cn.superdesk.uniorder.dubbo.facade.invoice.customer.invoiced;


import cn.superdesk.uniorder.common.rest.response.R;
import cn.superdesk.uniorder.common.security.dto.LoginSysUser;
import cn.superdesk.uniorder.dao.entity.invoice.customer.invoiced.InvoiceInvoiced;
import cn.superdesk.uniorder.dto.param.invoice.customer.invoiced.*;
import cn.superdesk.uniorder.dto.param.invoice.excel.*;
import cn.superdesk.uniorder.dto.vo.invoice.customer.invoiced.InvoiceInvoicedExcelExportVo;
import cn.superdesk.uniorder.dto.vo.invoice.customer.invoiced.InvoiceInvoicedHeadSum;
import com.github.pagehelper.PageInfo;

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

/**
 * @Description:
 * @Author: linjinyu
 * @Email linjinyu@avic-s.com
 * @CreateDate: 2021-03-16 17:29:47
 * @UpdateUser: linjinyu
 * @UpdateDate: 2021-03-16 17:29:47
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
public interface DubboInvoiceInvoicedService {

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

	@Deprecated
	void addObj(InvoiceInvoicedParam param);

	@Deprecated
	void updateObj(InvoiceInvoicedParam param);

	@Deprecated
	void deleteObj(Long id);

	@Deprecated
	InvoiceInvoiced findById(Long id);

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

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

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


	void addInvoiceInvoiced(InvoiceInvoicedParam param);

	void updateInvoiceInvoiced(InvoiceInvoicedParam param);

	void updateInvoiceInvoiced(InvoiceInvoiced entity);

	void updateInvoiceInvoicedByPrimaryKeySelective(InvoiceInvoiced entity);

	void updateOpFields(InvoiceInvoicedOpUpdateFieldsForm form, LoginSysUser loginSysUser);

	void updateOpRemark(InvoiceInvoicedOpUpdateFieldRamarkForm form, LoginSysUser loginSysUser);

	void batchUpdateFields(InvoiceInvoicedOpBatchUpdateFieldsForm form, LoginSysUser loginSysUser);


	void deleteInvoiceInvoiced(Long id);

	InvoiceInvoiced findInvoiceInvoicedById(Long id);

	InvoiceInvoiced findInvoiceInvoicedByInvoiceNumber(String invoiceNumber);

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

	R<List<InvoiceInvoicedExcelExportVo>> pageQueryByCriteria(InvoiceInvoicedQueryCriteria criteria);

	List<InvoiceInvoicedExcelExportVo> queryByCriteria(InvoiceInvoicedQueryCriteria criteria);

	String exportInvoiceInvoiceds(InvoiceInvoicedQueryCriteria criteria, LoginSysUser loginSysUser);

	R<InvoiceInvoicedHeadSum> headSumInvoiceInvoiceds(InvoiceInvoicedQueryCriteria criteria);


	/****************************************** excel import start ******************************************/

	void saveOrUpdate4ThirdPartTaxationSzhtxxE6ExcelRowByInvoiceNumber(TaxationSzhtxxE6ExcelRow param, LoginSysUser loginSysUser);

	void saveOrUpdate4ThirdPartTaxationSzhtxxE6ExcelRowListByInvoiceNumber(List<TaxationSzhtxxE6ExcelRow> taxationAisinoE6ExcelRowParamList, LoginSysUser loginSysUser);

	void saveOrUpdate4ThirdPartTaxationYqzs17WinV30ExcelRowByInvoiceNumber(TaxationYqzs17WinV30ExcelRow param, LoginSysUser loginSysUser);

	void saveOrUpdate4ThirdPartTaxationYqzs17WinV30ExcelRowListByInvoiceNumber(List<TaxationYqzs17WinV30ExcelRow> taxationYqzs17WinV30ExcelRowParamList, LoginSysUser loginSysUser);

	void saveOrUpdate4SuperdeskFinanceArtificial001ExcelRowByInvoiceNumber(SuperdeskFinanceArtificial001ExcelRow param, LoginSysUser loginSysUser);

	void saveOrUpdate4SuperdeskFinanceArtificial001ExcelRowListByInvoiceNumber(List<SuperdeskFinanceArtificial001ExcelRow> superdeskFinanceArtificial001RowParamList, LoginSysUser loginSysUser);


	void saveOrUpdate4InvoiceInvoicedHistoryExcelRowByInvoiceNumber(InvoiceInvoicedHistoryExcelRow excelRow, LoginSysUser loginSysUser);

	void saveOrUpdate4InvoiceInvoicedHistoryExcelRowListByInvoiceNumber(List<InvoiceInvoicedHistoryExcelRow> excelRowList, LoginSysUser loginSysUser);

	void saveOrUpdate4InvoiceInvoicedNormalExcelRowByInvoiceNumber(InvoiceInvoicedNormalExcelRow excelRow, LoginSysUser loginSysUser);

	void saveOrUpdate4InvoiceInvoicedNormalExcelRowListByInvoiceNumber(List<InvoiceInvoicedNormalExcelRow> excelRowList, LoginSysUser loginSysUser);


}
